Servlet接口有哪些

本篇內(nèi)容主要講解“Servlet接口有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Servlet接口有哪些”吧!

創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、芮城網(wǎng)絡(luò)推廣、微信平臺(tái)小程序開發(fā)、芮城網(wǎng)絡(luò)營(yíng)銷、芮城企業(yè)策劃、芮城品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供芮城建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:muchs.cn

Servlet接口:
public interface Servlet
它的生命周期由javax.Servlet.Servlet接口定義。當(dāng)你在寫Servlet的時(shí)候必須直接或間接的實(shí)現(xiàn)這個(gè)接口。一般趨向于間接實(shí)現(xiàn):通過從javax.Servlet.GenericServlet或javax.Servlet.http.HttpServlet派生。在實(shí)現(xiàn)Servlet接口時(shí)必須實(shí)現(xiàn)它的五個(gè)方法:

1.init():
public void init(ServletConfig config) throws ServletException
一旦對(duì)Servlet實(shí)例化后,容器就調(diào)用此方法。容器把一個(gè)ServletConfig對(duì)象傳統(tǒng)給此方法,這樣Servlet的實(shí)例就可以把與容器相關(guān)的配置數(shù)據(jù)保存起來供以后使用。如果此方法沒有正常結(jié)束就會(huì)拋出一個(gè)ServletException。一旦拋出該異常,Servlet就不再執(zhí)行,而隨后對(duì)它的調(diào)用會(huì)導(dǎo)致容器對(duì)它重新載入并再次運(yùn)行此方法。接口規(guī)定對(duì)任何Servlet實(shí)例,此方法只能被調(diào)用一次,在任何請(qǐng)求傳遞給Servlet之前,此方法可以在不拋出異常的情況下運(yùn)行完畢。

2.service():
public void service(ServletRequest req,ServletResponse res) throws ServletException,IOException
只有成功初始化后此方法才能被調(diào)用處理用戶請(qǐng)求。前一個(gè)參數(shù)提供訪問初始請(qǐng)求數(shù)據(jù)的方法和字段,后一個(gè)提供Servlet構(gòu)造響應(yīng)的方法。

3.destroy():
public void destroy()
容器可以在任何時(shí)候終止Servlet服務(wù)。容器調(diào)用此方法前必須給service()線程足夠時(shí)間來結(jié)束執(zhí)行,因此接口規(guī)定當(dāng)service()正在執(zhí)行時(shí)destroy()不被執(zhí)行。

4.getServletConfig():
public ServletConfig getServletConfig()
在Servlet初始化時(shí),容器傳遞進(jìn)來一個(gè)ServletConfig對(duì)象并保存在Servlet實(shí)例中,該對(duì)象允許訪問兩項(xiàng)內(nèi)容:初始化參數(shù)和ServletContext對(duì)象,前者通常由容器在文件中指定,允許在運(yùn)行時(shí)向sevrlet傳遞有關(guān)調(diào)度信息,后者為Servlet提供有關(guān)容器的信息。此方法可以讓Servlet在任何時(shí)候獲得該對(duì)象及配置信息。

5.getServletInfo():
public String getServletInfo()
此方法返回一個(gè)String對(duì)象,該對(duì)象包含Servlet的信息,例如開發(fā)者、創(chuàng)建日期、描述信息等。該方法也可用于容器。

GenericServlet類
Public abstract class GenericServlet implants Servlet,ServletConfig,Serializable
此類提供了Servlet接口的基本實(shí)現(xiàn)部分,其service()方法被申明為abstract,因此需要被派生。init(ServletConfig conf)方法把ServletConfig對(duì)象存儲(chǔ)在一個(gè)private transient(私有臨時(shí))實(shí)例變量里,getServletConfig()方法返回指向本對(duì)象的指針,如果你重載此方法,將不能使用getServletConfig來獲得ServletConfig對(duì)象,如果確實(shí)想重載,記住要包含對(duì)super.config的調(diào)用。2.1版的API提供一個(gè)重載的沒有參數(shù)的init()方法?,F(xiàn)在在init(ServletConfig)方法結(jié)束時(shí)有一個(gè)對(duì)init()的調(diào)用,盡管目前它是空的。2.1版API里面,此類實(shí)現(xiàn)了ServletConfig接口,這使得開發(fā)者不用獲得ServletConfig對(duì)象情況下直接調(diào)用ServletConfig的方法,這些方法是:getInitParameter(),getInitParameterNames(),getServletContext。此類還包含兩個(gè)寫日志的方法,它們實(shí)際上調(diào)用的是ServletContext上的對(duì)應(yīng)方法。log(String msg)方法將Servlet的名稱和msg參數(shù)寫到容器的日志中,log(String msg,Throwable cause)除了包含Servlet外還包含一個(gè)異常。

HttpServlet類
該類擴(kuò)展了GenericServlet類并對(duì)Servlet接口提供了與HTTP更相關(guān)的實(shí)現(xiàn)。

service():
protected void service(HttpServletRequest req,HttpServletResponse res) throws ServletException,IOException
public void service(HttpServletRequest req,HttpServletResponse res)throws ServletException,IOException
該方法作為HTTP請(qǐng)求的分發(fā)器,這個(gè)方法在任何時(shí)候都不能被重載。當(dāng)請(qǐng)求到來時(shí),service()方法決定請(qǐng)求的類型(GET,POST,HEAD,OPTIONS,DELETE,PUT,TRACE),并把請(qǐng)求分發(fā)給相應(yīng)的處理方法(doGet(),doPost(),doHead(),doOptions(),doDelete(),doPut(),doTrace())每個(gè)do 方法具有和***個(gè)service()相同的形式。為了響應(yīng)特定類型的HTTP請(qǐng)求,我們必須重載相應(yīng)的do方法。如果Servlet收到一個(gè)HTTP請(qǐng)求而你沒有重載相應(yīng)的do方法,它就返回一個(gè)說明此方法對(duì)本資源不可用的標(biāo)準(zhǔn)HTTP錯(cuò)誤。

getLatModified():
protected long getLastModified(HttpServletRequest req)
該方法返回以毫秒為單位的的自GMT時(shí)間1970年1月1日0時(shí)0分0秒依賴的最近一次修改Servlet的時(shí)間,缺省是返回一個(gè)負(fù)數(shù)表示時(shí)間未知。當(dāng)處理GET請(qǐng)求時(shí),調(diào)用此方法可以知道Servlet的最近修改時(shí)間,服務(wù)器就可決定是否把結(jié)果從緩存中去掉。

HttpServletRequest接口
public interface HttpServletRequest extends ServletRequest
所有實(shí)現(xiàn)此接口的對(duì)象(例如從Servlet容器傳遞的HTTP請(qǐng)求對(duì)象)都能讓Servlet通過自己的方法訪問所有請(qǐng)求的數(shù)據(jù)。下面是一些用來獲取表單數(shù)據(jù)的基本方法。

getParameter()
public String getParameter(String key)
此方法試圖將根據(jù)查詢串中的關(guān)鍵字定位對(duì)應(yīng)的參數(shù)并返回其值。如果有多個(gè)值則返回列表中的***個(gè)值。如果請(qǐng)求信息中沒有指定參數(shù),則返回null。

getParametervalues():
public String[] getParametervalues(String key)
如果一個(gè)參數(shù)可以返回多個(gè)值,比如復(fù)選框集合,則可以用此方法獲得對(duì)應(yīng)參數(shù)的所有值。如果請(qǐng)求信息中沒有指定參數(shù),則返回null。

GetParameterNames():
Public Enumeration getParameterNames()
此方法返回一個(gè)Enumeration對(duì)象,包含對(duì)應(yīng)請(qǐng)求的所有參數(shù)名字列表。
HttpServletResponse接口
public interface HttpServletResponse extends ServletResponse
Servlet容器提供一個(gè)實(shí)現(xiàn)該接口的對(duì)象并通過service()方法將它傳遞給Servlet。通過此對(duì)象及其方法,Servlet可以修改響應(yīng)頭并返回結(jié)果。

setContentType():
public void setContentType(String type)
在給調(diào)用者發(fā)回響應(yīng)前,必須用此方法來設(shè)置HTTP響應(yīng)的MIME類型??梢允侨魏斡行У腗IME類型,當(dāng)給瀏覽器返回HTML是就是”text/html”類型。

getWriter():
public PrintWriter getWriter()throws IOException
此方法將返回PrintWriter對(duì)象,把Servlet的結(jié)果作為文本返回給調(diào)用者。PrintWriter對(duì)象自動(dòng)把Java內(nèi)部的UniCode編碼字符轉(zhuǎn)換成正確的編碼以使客戶端能夠閱讀。

getOutputStream():
public ServletOutputStream getOutputStream() throws IOException
此方法返回ServletOutputStream對(duì)象,它是java.io.OutputStream的一個(gè)子類。此對(duì)象向客戶發(fā)送二進(jìn)制數(shù)據(jù)。

setHeader():
public void setHeader(String name,String value)
此方法用來設(shè)置送回給客戶的HTTP響應(yīng)頭。有一些快捷的方法用來改變某些常用的響應(yīng)頭,但有時(shí)也需要直接調(diào)用此方法。
編譯條件
需要從http://java.sun.com/products/Servlet/ 獲得一份JSDK的拷貝,并把Servlet.jar移動(dòng)到JDK安裝目錄下的\jre\lib\ext目錄下。如果是JDK1.1,則移動(dòng)到\lib下,并在CLASSPATH中加入Servlet.jar的絕對(duì)路徑。
運(yùn)行條件
需要Apache Jserv,Jrun Servlet Exec,Java Web Server,Weblogic,WebSphere,Tomcat,Resin等Servlet服務(wù)器端程序。
簡(jiǎn)單范例

  1. import java.io.*;  

  2. import javax.servlet.*;  

  3. import javax.servlet.http.*;  

  4. public class HelloWorld extends HttpServlet {  

  5. public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws IOException, ServletException  

  6. {  

  7. response.setContentType("text/html");  

  8. PrintWriter out = response.getWriter();  

  9. out.println("<html>");  

  10. out.println("<body>");  

  11. out.println("<head>");  

  12. out.println("<title>Hello World!</title>");  

  13. out.println("</head>");  

到此,相信大家對(duì)“Servlet接口有哪些”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

新聞名稱:Servlet接口有哪些
瀏覽路徑:http://muchs.cn/article34/ighepe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、做網(wǎng)站、微信公眾號(hào)、微信小程序、定制網(wǎng)站、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)