java web之servlet入門

Servlet處理Http請求的過程:
1、接收http請求
2、獲取請求信息,包括請求參數
3、完成具體的業務功能
4、跳轉到其他的組件(重定向和請求轉發)
5、生成Http響應

HttpServlet:
繼承自GenericServlet,實現了對於Http協議的封裝,用於處理客戶端的http請求及響應。

主要方法:
init() 初始化時調用
doGet()處理前端頁面的http get請求
doPost( ) 處理前端頁面的 http post請求

Servlet的編寫步驟:
1、創建web工程
2、加入jar包
3、src創建Servlet類,繼承HttpServlet
4、在自定義的servlet類中重寫doGet或者doPost方法,實現業務邏輯
5、需在web.xml配置文件中配置該servlet
1)servlet的聲明
2)servlet的url映射

Servlet的配置方式:
web.xml中配置(各個版本都支持)
1、servlet的聲明
< servlet>標籤,常用的子標籤
< servlet-name> 指定servlet的名字,可以自定義,但一般與類名相同
< servlet-class>指定servlet對應的實現類,使用全限定類名(包名.類名)
< init-param>用於配置該servlet的初始化參數,由以下兩個子標籤指定參數名和參數值
< param-name> 參數名
< param-value> 參數值
< load-on-startup> 用於配置該servlet的加載順序,如果是0或者大於0 ,則容器啓動時就加載。如果不配置,默認客戶端第一次請求該servlet的時候才加載。
2、url的映射
< servlet-mapping> 配置servlet的url映射,常用的子標籤
< servlet-name> 指定要映射的servlet的名字,必須是上面第一步servlet聲明後的名字。
< url-pattern> 指定servlet映射的url路徑,以"/"開頭,可以自定義,但一般用servlet的類名

註解配置:(servlet3.0及之後才支持)
使用@WebServlet進行註解配置,配置屬性如下:

name 指定servlet的名
urlPatterns 指定一組servlet的url匹配項。
value 等價於urlPatterns,但兩者不能同時出現
initParams用於定義初始化參數,結合@WebInitParam來定義。
loadOnStartup 同web.xml中的< load-on-startup>標籤
asyncSupported 是否支持異步,默認爲false
@WebServlet(name=“HelloServlet”,
urlPatterns={"/HelloServlet"},
loadOnStartup=0)

兩種servlet配置方式的優缺點:
註解配置需要servlet3.0及以上版本,Tomcat7及以上,web.xml的配置,則不要求版本
註解配置,代碼量少,可讀性強,便於理解,但是,如果項目中有大量的servlet,不便於查找和修改。
web.xml的配置,集中管理所有的servlet便於查找和修改,但可讀性差。

Servlet的生命週期:
分爲四個階段:
1、實例化
tomcat容器加載並實例化servlet按照如下規則:
如果配置了loadonStartup項,且值大於等於0 ,則容器一啓動時就加載並實例化該servlet
如果沒有上述配置,則容器在第一次請求該servlet的時候加載並實例化
2、初始化
調用init方法,開發者可以在此階段獲取一些初始化參數等操作
3、處理請求
通過doGet或者doPost處理請求及響應
4、銷燬
容器關閉或者需要讓出資源時,會調用destroy方法,銷燬servlet的實例。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章