天天看點

servlet介紹

1.首先說Servlet API:servlet的命名:server+applet

Servlet的架構是由兩個Java包組成的:javax.servlet與javax.servlet.http。

在javax.servlet包中定義了所有的Servlet類都必須實作或者擴充的通用接口和類。

在javax.servlet.http包中定義了采用Http協定通信的HttpServlet類。

也就是說,二者有一定的獨立性。開始我始終認為,HttpServletRequest是servlet産生的,但我的項目中沒有用到servlet,又哪來的這個對象呢?當知道二者的獨立性時,就有

點明了了。

2.關于Tomcat:

它實作了servlet API.也就是說,它的内部,定義了servlet中接口的實作類,并且在它運作時,将一些實作類自動地執行個體化。

Tomcat 是Web應用伺服器,是一個Servlet/JSP容器.Tomcat 作為Servlet容器,負責處理客戶請求,把請求傳送給Servlet,并将Servlet的響應傳送回給客戶.而Servlet是一種運作在支援Java語言的伺服器上的元件. Servlet最常見的用途是擴充Java Web伺服器功能,提供非常安全的,可移植的,易于使用的CGI替代品. 它的處理流程如下:

1、Web客戶向Servlet容器(Tomcat)發出Http請求

2、Servlet容器分析客戶的請求資訊

3、Servlet容器建立一個HttpRequest對象,将客戶請求的資訊封裝到這個對象中

4、Servlet容器建立一個HttpResponse對象  

5、Servlet容器調用HttpServlet對象的service方法,把HttpRequest對象與HttpResponse對象作為參數

  傳給 HttpServlet對象

6、HttpServlet調用HttpRequest對象的有關方法,擷取Http請求資訊

7、HttpServlet調用HttpResponse對象的有關方法,生成響應資料

8、Servlet容器把HttpServlet的響應結果傳給Web客戶

看到這個流程了,自然也就知道,雖然我的Struts2中沒有用到servlet,但是由于前四步中,已經産生了HttpServletRequest和response對象,是以,Struts2可以使用了。

對于整體的了解就是這樣了,至于業務邏輯的實作,就是既可以用servlet來實作處理,跳轉,也可以用sturts2的過濾器來來完成。

一個容器中有多個servlet,隻不過是每一個servlet都是單例模式, 并且通過多線程,來處理多個使用者的響應。