亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Servlet簡介

2019-11-18 12:32:15
字體:
來源:轉載
供稿:網友

  Servlet是對支持java的服務器的一般擴充。它最常見的用途是擴展Web服務器,提供非常安全的、可移植的、易于使用的CGI替代品。它是一種動態加載的模塊,為來自Web服務器的請求提供服務。它完全運行在Java虛擬機上。由于它在服務器端運行,因此它不依靠于瀏覽器的兼容性。
  servlet容器:
  負責處理客戶請求、把請求傳送給servlet并把結果返回給客戶。不同程序的容器實際實現可能有所變化,但容器與servlet之間的接口是由servlet API定義好的,這個接口定義了servlet容器在servlet上要調用的方法及傳遞給servlet的對象類。
  servlet的生命周期:
  1、servlet容器創建servlet的一個實例
  2、容器調用該實例的init()方法
  3、假如容器對該servlet有請求,則調用此實例的service()方法
  4、容器在銷毀本實例前調用它的destroy()方法
  5、銷毀并標記該實例以供作為垃圾收集
  一旦請求了一個servlet,就沒有辦法阻止容器執行一個完整的生命周期。
  容器在servlet首次被調用時創建它的一個實例,并保持該實例在內存中,讓它對所有的請求進行處理。容器可以決定在任何時候把這個實例從內存中移走。在典型的模型中,容器為每個servlet創建一個單獨的實例,容器并不會每接到一個請求就創建一個新線程,而是使用一個線程池來動態的將線程分配給到來的請求,但是這從servlet的觀點來看,效果和為每個請求創建一個新線程的效果相同。
  
  servlet API
  servlet接口:
  public interface Servlet
  它的生命周期由javax.servlet.servlet接口定義。當你在寫servlet的時候必須直接或間接的實現這個接口。一般趨向于間接實現:通過從javax.servlet.GenericServlet或javax.servlet.http.HttpServlet派生。在實現servlet接口時必須實現它的五個方法:
  init():
  public void init(ServletConfig config) throws ServletException
  一旦對servlet實例化后,容器就調用此方法。容器把一個ServletConfig對象傳統給此方法,這樣servlet的實例就可以把與容器相關的配置數據保存起來供以后使用。假如此方法沒有正常結束就會拋出一個ServletException。一旦拋出該異常,servlet就不再執行,而隨后對它的調用會導致容器對它重新載入并再次運行此方法。接口規定對任何servlet實例,此方法只能被調用一次,在任何請求傳遞給servlet之前,此方法可以在不拋出異常的情況下運行完畢。
  service():
  public void service(ServletRequest req,ServletResponse res) throws ServletException,IOException
  只有成功初始化后此方法才能被調用處理用戶請求。前一個參數提供訪問初始請求數據的方法和字段,后一個提供servlet構造響應的方法。
  destroy():
  public void destroy()
  容器可以在任何時候終止servlet服務。容器調用此方法前必須給service()線程足夠時間來結束執行,因此接口規定當service()正在執行時destroy()不被執行。
  getServletConfig():
  public ServletConfig getServletConfig()
  在servlet初始化時,容器傳遞進來一個ServletConfig對象并保存在servlet實例中,該對象答應訪問兩項內容:初始化參數和ServletContext對象,前者通常由容器在文件中指定,答應在運行時向sevrlet傳遞有關調度信息,后者為servlet提供有關容器的信息。此方法可以讓servlet在任何時候獲得該對象及配置信息。
  getServletInfo():
  public String getServletInfo()
  此方法返回一個String對象,該對象包含servlet的信息,例如開發者、創建日期、描述信息等。該方法也可用于容器。
  
  GenericServlet類
  Public abstract class GenericServlet implants Servlet,ServletConfig,Serializable
  此類提供了servlet接口的基本實現部分,其service()方法被申明為abstract,因此需要被派生。init(ServletConfig conf)方法把servletConfig對象存儲在一個PRivate transient(私有臨時)實例變量里,getServletConfig()方法返回指向本對象的指針,假如你重載此方法,將不能使用getServletConfig來獲得ServletConfig對象,假如確實想重載,記住要包含對super.config的調用。2.1版的API提供一個重載的沒有參數的init()方法?,F在在init(ServletConfig)方法結束時有一個對init()的調用,盡管目前它是空的。2.1版API里面,此類實現了ServletConfig接口,這使得開發者不用獲得ServletConfig對象情況下直接調用ServletConfig的方法,這些方法是:getInitParameter(),getInitParameterNames(),getServletContext。此類還包含兩個寫日志的方法,它們實際上調用的是ServletContext上的對應方法。log(String msg)方法將servlet的名稱和msg參數寫到容器的日志中,log(String msg,Throwable cause)除了包含servlet外還包含一個異常。
  
  HttpServlet類
  該類擴展了GenericServlet類并對servlet接口提供了與HTTP更相關的實現。
  service():
  protected void service(HttpServletRequest req,HttpServletResponse res) throws ServletException,IOException
  public void service(HttpServletRequest req,HttpServletResponse res)throws ServletException,IOException
  該方法作為HTTP請求的分發器,這個方法在任何時候都不能被重載。當請求到來時,service()方法決定請求的類型(GET,POST,HEAD,OPTIONS,DELETE,PUT,TRACE),并把請求分發給相應的處理方法(doGet(),doPost(),doHead(),doOptions(),doDelete(),doPut(),doTrace())每個do方法具有和第一個service()相同的形式。為了響應特定類型的HTTP請求,我們必須重載相應的do方法。假如servlet收到一個HTTP請求而你沒有重載相應的do方法,它就返回一個說明此方法對本資源不可用的標準HTTP錯誤。
  getLatModified():
  protected long getLastModified(HttpServletRequest req)
  該方法返回以毫秒為單位的的自GMT時間1970年1月1日0時0分0秒依靠的最近一次修改servlet的時間,缺省是返回一個負數表示時間未知。當處理GET請求時,調用此方法可以知道servlet的最近修改時間,服務器就可決定是否把結果從緩存中去掉。
  
  HttpServletRequest接口
  public interface HttpServletRequest extends ServletRequest
  所有實現此接口的對象(例如從servlet容器傳遞的HTTP請求對象)都能讓servlet通過自己的方法訪問所有請求的數據。下面是一些用來獲取表單數據的基本方法。
  getParameter()
  public String getParameter(String key)
  此方法試圖將根據查詢串中的要害字定位對應的參數并返回其值。假如有多個值則返回列表中的第一個值。假如請求信息中沒有指定參數,則返回null。
  getParametervalues():
  public String[] getParametervalues(String key)
  假如一個參數可以返回多個值,比如復選框集合,則可以用此方法獲得對應參數的所有值。假如請求信息中沒有指定參數,則返回null。
  GetParameterNames():
  Public Enumeration getParameterNames()
  此方法返回一個Enumeration對象,包含對應請求的所有參數名字列表。
  HttpServletResponse接口
  public interface HttpServletResponse extends servletResponse
  servlet容器提供一個實現該接口的對象并通過service()方法將它傳遞給servlet。通過此對象及其方法,servlet可以修改響應頭并返回結果。
  setContentType():
  public void setContentType(String type)
  在給調用者發回響應前,必須用此方法來設置HTTP響應的MIME類型??梢允侨魏斡行У腗IME類型,當給瀏覽器返回Html是就是”text/html”類型。
  getWriter():
  public PrintWriter getWriter()throws IOException
  此方法將返回PrintWriter對象,把servlet的結果作為文本返回給調用者。PrintWriter對象自動把Java內部的UniCode編碼字符轉換成正確的編碼以使客戶端能夠閱讀。
  getOutputStream():
  public ServletOutputStream getOutputStream() throws IOException
  此方法返回ServletOutputStream對象,它是java.io.OutputStream的一個子類。此對象向客戶發送二進制數據。
  setHeader():
  public void setHeader(String name,String value)
  此方法用來設置送回給客戶的HTTP響應頭。有一些快捷的方法用來改變某些常用的響應頭,但有時也需要直接調用此方法。
  編譯條件
  需要從http://java.sun.com/prodUCts/servlet/ 獲得一份JSDK的拷貝,并把servlet.jar移動到JDK安裝目錄下的/jre/lib/ext目錄下。假如是JDK1.1,則移動到/lib下,并在CLASSPATH中加入servlet.jar的絕對路徑。
  運行條件
  需要Apache Jserv,Jrun Servlet Exec,Java Web Server,Weblogic,WebSphere,Tomcat,Resin等servlet服務器端程序。
  簡單范例
  
  import java.io.*;
  import javax.servlet.*;
  import javax.servlet.http.*;
  public class HelloWorld extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response)  throws IOException, ServletException 
   {   
   response.setContentType("text/html");  
    PrintWriter out = response.getWriter();
      out.println("<html>");  
    out.println("<body>");   
   out.println("<head>");   
   out.println("<title>Hello World!</title>");  
    out.println("</head>");

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩成人网| 欧美精品日韩www.p站| 欧美激情性做爰免费视频| 欧美性猛交xxxx乱大交极品| 久久伊人精品天天| 欧美精品在线视频观看| 在线亚洲国产精品网| 亚洲香蕉成人av网站在线观看| 操人视频在线观看欧美| 久久久999国产精品| 亚洲人成在线观看| 欧美一级在线亚洲天堂| 尤物九九久久国产精品的特点| 国产成人午夜视频网址| 亚洲一区二区久久久久久| 久久久久久999| 久久国产加勒比精品无码| 国色天香2019中文字幕在线观看| 国产精品91久久久久久| 一区二区三区四区在线观看视频| 国产精品成人aaaaa网站| 91精品视频大全| 日韩午夜在线视频| 欧洲成人在线视频| 91九色国产社区在线观看| 欧美一区二区三区……| 在线色欧美三级视频| 中文字幕精品一区久久久久| 欧美性受xxxx白人性爽| 中文字幕国产日韩| www.亚洲成人| 欧美裸体男粗大视频在线观看| 亚洲韩国青草视频| 成人免费视频网址| 日韩av理论片| 91久久精品美女高潮| 国产精品国产三级国产aⅴ9色| 国产精品一区二区三| 色噜噜狠狠色综合网图区| 亚洲国产日韩精品在线| 最近中文字幕日韩精品| 91久久久久久国产精品| 日韩成人免费视频| 亚洲精品国产电影| 久久亚洲一区二区三区四区五区高| 精品偷拍各种wc美女嘘嘘| 久热精品视频在线免费观看| 国产精品v日韩精品| 欧美视频第一页| www国产精品视频| 亚洲白虎美女被爆操| 久久天天躁狠狠躁夜夜av| 国产精品小说在线| 91亚洲永久免费精品| 最近2019中文字幕mv免费看| 91在线直播亚洲| 亚洲精品一区二区三区婷婷月| www.欧美免费| 国产成人精品免费视频| 69视频在线播放| 一区二区三区美女xx视频| 国产精品女视频| 亚洲精品一区久久久久久| 精品一区二区三区四区| 欧亚精品在线观看| 国产精品网站入口| 色在人av网站天堂精品| 中国china体内裑精亚洲片| 中文字幕9999| 亚洲一区制服诱惑| 国产午夜精品理论片a级探花| 亚洲精品少妇网址| 国产亚洲精品日韩| 少妇高潮久久77777| 久久影院在线观看| 亚洲男人天堂古典| 日韩成人xxxx| 国产午夜精品一区理论片飘花| 激情亚洲一区二区三区四区| 久久成人免费视频| 97视频在线观看成人| 久久天天躁夜夜躁狠狠躁2022| 欧美成人在线免费视频| 亚洲精品av在线播放| 欧美床上激情在线观看| 98精品在线视频| 中文字幕自拍vr一区二区三区| 亚洲最大福利视频网站| 亚洲中国色老太| 欧美精品中文字幕一区| 97国产精品视频人人做人人爱| 久久精品视频导航| 亚洲片在线资源| 精品一区二区三区四区在线| 国产精品免费观看在线| 午夜精品蜜臀一区二区三区免费| 国产精品久久久久久久久影视| 久久精品国产亚洲精品| 情事1991在线| 日本一区二三区好的精华液| 日本中文字幕不卡免费| 久久福利视频导航| 亚洲精品98久久久久久中文字幕| 色婷婷综合成人av| 日韩不卡在线观看| 亚洲午夜未满十八勿入免费观看全集| 国产视频观看一区| 欧美成人亚洲成人日韩成人| 国模精品视频一区二区三区| 日韩中文字幕在线视频播放| 国产久一一精品| 国产精品久久9| 欧美日韩亚洲一区二区| 久久久久久久久久久免费| 成人激情电影一区二区| 精品高清美女精品国产区| 91在线网站视频| 亚洲国产福利在线| 在线观看久久久久久| 亚洲成人久久电影| 日本成人激情视频| 奇米影视亚洲狠狠色| 亚洲最新中文字幕| 美日韩精品免费视频| 日韩成人小视频| 国产不卡一区二区在线播放| 国产免费一区视频观看免费| 国产一区红桃视频| 欧美激情影音先锋| 日韩激情在线视频| 亚洲欧美日韩国产精品| 久久成人人人人精品欧| 91视频免费在线| 亚洲香蕉成人av网站在线观看| 97精品国产97久久久久久| 伊人亚洲福利一区二区三区| 成人亚洲综合色就1024| 国产日韩欧美一二三区| 日韩久久精品成人| 九九九久久国产免费| 久久久久久高潮国产精品视| 成人动漫网站在线观看| 欧美一级电影久久| 精品中文字幕久久久久久| 91色琪琪电影亚洲精品久久| 日韩小视频在线观看| 2019中文字幕在线免费观看| 久久久女女女女999久久| 日韩欧美在线视频日韩欧美在线视频| 亚洲精品福利视频| 97在线视频免费播放| 国产精品午夜视频| 国产97在线播放| 日韩高清免费在线| 国产欧美日韩中文字幕| 亚洲国产精品女人久久久| 欧美久久精品午夜青青大伊人| 国产在线观看不卡| 亚洲欧洲国产精品| 日韩av免费在线看| 欧美电影免费观看网站| 久久免费视频网| 亚洲最大av网| 国产在线精品成人一区二区三区|