日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Servlet】Servlet体系结构

發(fā)布時間:2025/3/15 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Servlet】Servlet体系结构 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Servlet

Servlet是基于Java語言的Web服務(wù)器端編程技術(shù),按照Java EE規(guī)范定義,Servlet是運行在Servlet容器中的Java類,它能處理Web客戶的HTTP請求,并產(chǎn)生HTTP響應(yīng)。

Servlet運行在服務(wù)器端,由Servlet容器所管理,Servlet容器也叫Servlet引擎,是Web服務(wù)器或應(yīng)用服務(wù)器的一部分,用于在發(fā)送的請求和響應(yīng)之上提供網(wǎng)絡(luò)服務(wù)、解碼基于MIME的請求、格式化基于MIME的響應(yīng)。

Servlet是使用Servlet API及相關(guān)類和方法的Java程序。

Servlet API包含兩個軟件包:

  • javax.servlet:定義了所有Servlet類都必須實現(xiàn)或繼承的通用接口和類。
  • javax.servlet.http:定義了采用HTTP協(xié)議通信的HttpServlet類。

Servlet API的主要接口和類之間的關(guān)系

Servlet接口

定義如下:

package javax.servlet;import java.io.IOException;public interface Servlet {public void init(ServletConfig config) throws ServletException;public ServletConfig getServletConfig();public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException;public String getServletInfo();public void destroy(); }
  • Servlet接口規(guī)定了必須由Servlet類實現(xiàn)并且由Servlet引擎識別和管理的方法集。
  • Servlet接口的基本目標是提供與Servlet生命周期相關(guān)的方法,如:init()、service()和destroy()等。

主要方法說明:

方法名稱方法描述
init(ServletConfig config)Servlet初始化方法。在Servlet實例化后,容器調(diào)用該方法進行Servlet的初始化。
init()方法只能被調(diào)用一次,如果此方法沒有正常結(jié)束,就會拋出一個ServletException異常。
一旦拋出該異常,Servlet將不再執(zhí)行,隨后對其進行再次調(diào)用,容器會重新載入并再次運行init()方法。
service(ServletRequest req,ServletResponse resp)Servlet的服務(wù)方法。當用戶對Servlet發(fā)出請求時容器會調(diào)用該方法處理用戶的請求。
destroy()Servlet的銷毀方法。容器在終止Servlet服務(wù)前調(diào)用此方法。
容器調(diào)用此方法前必須給service()線程足夠時間來結(jié)束執(zhí)行,
因此接口規(guī)定當service()正在執(zhí)行時,destroy()不被執(zhí)行。
getServletConfig()此方法可以讓Servlet在任何時候獲得ServletConfig對象。
getServletInfo()此方法返回一個String對象,該對象包含Servlet的信息,例如:開發(fā)者、創(chuàng)建日期、描述信息等。
該方法也可用于容器。

GenericServlet抽象類

  • GenericServlet是一個通用的協(xié)議無關(guān)的Servlet,它實現(xiàn)了Servlet和ServletConfig接口。
  • GenericServlet繼承自Servlet,應(yīng)該重寫service()方法。

主要方法說明:

方法名稱方法描述
public void init(ServletConfig config)調(diào)用Servlet接口中的init()方法。
此方法還有一無參的重載方法,其功能與此方法相同。
public String getInitParameter(String name)返回名稱為name的初始化參數(shù)的值。
public ServletContext getServletContext()返回ServletContext對象的引用。

HttpServlet類

HttpServlet指能夠處理HTTP請求的Servlet,它在原有Servlet接口上添加了對HTTP協(xié)議的處理,它比Servlet接口的功能更為強大。

主要方法說明:

方法名稱方法描述
service(HttpServletRequest req, HttpServletResponse resp)HttpServlet在實現(xiàn)Servlet接口時,重寫了service()方法,該方法會自動判斷用戶的請求方式。
若為GET請求,則調(diào)用HttpServlet的doGet()方法;
若為POST請求,則調(diào)用doPost()方法。
因此,開發(fā)人員在編寫Servlet時,通常只需要重寫doGet()或doPost()方法,而不要去重寫service方法。
如果Servlet收到一個HTTP請求而你沒有重載相應(yīng)的do方法,它就返回一個說明此方法對本資源不可用的標準HTTP錯誤。
doGet(HttpServletRequest req, HttpServletResponse resp)此方法被本類的service()方法調(diào)用,用來處理一個HTTP GET 操作。
doPost(HttpServletRequest req, HttpServletResponse resp)此方法被本類的service()方法調(diào)用,用來處理一個HTTP POST 操作。

HttpServlet作為HTTP請求的分發(fā)器,除了提供對GET和POST請求的處理外,對于其他請求類型也提供了相應(yīng)的處理方法(如:doHead()、doOptions()、doDelete()、doPut()、doTrace())

總結(jié)

以上是生活随笔為你收集整理的【Servlet】Servlet体系结构的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。