1. 程式人生 > >什麽是servlet?

什麽是servlet?

需要 頁面 特性 例如 程序 generic png 啟動 fig

一、servlet是什麽?

是用java編寫的應用在服務端的程序,具有獨立於平臺和協議的特性,主要功能在於交互式地瀏覽和修改數據,生成動態Web內容,例如頁面等等。從實現上講,Servlet可以響應任何類型的請求,但絕大多數情況下Servlet只用來擴展基於HTTP協議的Web服務器。

二、工作原理、流程

1、原理

Servlet容器將Servlet類載入內存,並產生Servlet實例和調用它具體的方法。但是要註意的是,在一個應用程序中,每種Servlet類型只能有一個實例。

2、servlet接口

public interface Servlet {
    void
init(ServletConfig var1) throws ServletException; ServletConfig getServletConfig(); void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException; String getServletInfo(); void destroy(); }

init():很明顯,servlet的初始化,依賴於servletConfig對象。當Servlet第一次被請求時,Servlet容器就會開始調用這個方法來初始化一個Servlet對象出來,但是這個方法在後續請求中不會在被Servlet容器調用。

getServletConfig():返回由Servlet容器傳給init()方法的ServletConfig對象。

service():每當請求Servlet時,Servlet容器就會調用這個方法。

getServletInfo():返回Servlet的一段描述,可以返回一段字符串。

destroy():卸載應用程序或者關閉Servlet容器時,Servlet容器就會調用這個方法銷毀Servlet。

3、實現類

Servlet接口SUN公司定義了兩個默認實現類,分別為:GenericServlet、HttpServlet。

  HttpServlet指能夠處理HTTP請求的servlet,它在原有Servlet接口上添加了一些與HTTP協議處理方法,它比Servlet接口的功能更為強大。因此開發人員在編寫Servlet時,通常應繼承這個類,而避免直接去實現Servlet接口。

  HttpServlet在實現Servlet接口時,覆寫了service方法,該方法體內的代碼會自動判斷用戶的請求方式,如為GET請求,則調用HttpServlet的doGet方法,如為Post請求,則調用doPost方法。因此,開發人員在編寫Servlet時,通常只需要覆寫doGet或doPost方法,而不要去覆寫service方法。

4、示例

技術分享圖片

技術分享圖片

選擇要實現的方法

技術分享圖片

技術分享圖片

註意上面servlet使用了@WebServlet註解,因此就不需要在web.xml中進行配置。

啟動tomcat,效果如下:

技術分享圖片

或者去掉@WebServlet註解,配置web.xml

技術分享圖片

工作流程:

  • 客戶端發送請求至服務器端;
  • 服務器將請求信息發送至 Servlet;
  • Servlet 生成響應內容並將其傳給服務器。響應內容動態生成,通常取決於客戶端的請求;
  • 服務器將響應返回給客戶端。

最常用的Tomcat就是實現了servlet規範的servlet容器,servlet規範中定義了一些應用容器的職責、規範、約束等等。

tomcat簡單的工作流程圖:

技術分享圖片

什麽是servlet?