Servlet淺談

1,什麼是Servlet
2,Servlet有什麼作用
3,Servlet的生命週期
4,Servlet怎麼處理一個請求
5,Servlet與JSP有什麼區別
6,Servlet裏的cookie技術
7,Servlet裏的過濾器
8,Servlet裏的監聽器

 


一,什麼是Servlet?


Servlet是一個Java編寫的程序,此程序是基於Http協議的,在服務器端運行的(如tomcat),

 

是按照Servlet規範編寫的一個Java類。



二,Servlet有什麼作用?


主要是處理客戶端的請求並將其結果發送到客戶端。



三,Servlet的生命週期?


Servlet的生命週期是由Servlet的容器來控制的,它可以分爲3個階段;初始化,運行,銷燬。

初始化階段:


1,Servlet容器加載servlet類,把servlet類的.class文件中的數據讀到內存中。


2,然後Servlet容器創建一個ServletConfig對象。ServletConfig對象包含了Servlet的初始化配置信息。


3,Servlet容器創建一個servlet對象。


4,Servlet容器調用servlet對象的init方法進行初始化。



運行階段:


當servlet容器接收到一個請求時,servlet容器會針對這個請求創建servletRequest和servletResponse對象。

 

然後調用service方法。並把這兩個參數傳遞給service方法。Service方法通過servletRequest對象獲得請求的

 

信息。並處理該請求。再通過servletResponse對象生成這個請求的響應結果。然後銷燬servletRequest和

 

servletResponse對象。我們不管這個請求是post提交的還是get提交的,最終這個請求都會由service方法來處理。

 


銷燬階段:


當Web應用被終止時,servlet容器會先調用servlet對象的destrory方法,然後再銷燬servlet對象,

 

同時也會銷燬與servlet對象相關聯的servletConfig對象。我們可以在destroy方法的實現中,釋放

 

servlet所佔用的資源,如關閉數據庫連接,關閉文件輸入輸出流等。



在這裏該注意的地方:


在servlet生命週期中,servlet的初始化和和銷燬階段只會發生一次,而service方法執行的次數則取決於servlet被客戶

 

端訪問的次數

 

 


四,Servlet怎麼處理一個請求?


當用戶發送一個請求到某個Servlet的時候,Servlet容器會創建一個ServletRequst和ServletResponse對象。

 

在ServletRequst對象中封裝了用戶的請求信息,然後Servlet容器把ServletRequst和ServletResponse對象

 

傳給用戶所請求的Servlet,Servlet把處理好的結果寫在ServletResponse中,然後Servlet容器把響應結果傳

 

給用戶。

 


五,Servlet與JSP有什麼區別?


1,jsp經編譯後就是servlet,也可以說jsp等於servlet。


2,jsp更擅長頁面(表現)。servlet更擅長邏輯編輯。 (最核心的區別)。


3,在實際應用中採用Servlet來控制業務流程,而採用JSP來生成動態網頁.在struts框架中,

 

JSP位於MVC設計模式的視圖層,而Servlet位於控制層。

 


六,Servlet裏的cookie技術?


cookies是一種WEB服務器通過瀏覽器在訪問者的硬盤上存儲信息的手段,是由Netscape公司開發出來的。


cookie技術的好處:


    1,Cookie有效期限未到時,Cookie能使用戶在不鍵入密碼和用戶名的情況下進入曾經瀏覽過的一些站點。


    2,Cookie能使站點跟蹤特定訪問者的訪問次數、最後訪問時間和訪問者進入站點的路徑。
    
創建一個cookie

Java代碼  收藏代碼
  1. //裏面的兩個參數分別是cookie的名和cookie的值  
  2.   
  3. response.addCookie(new Cookie("abc","10000000"));  

 

使用cookie

Java代碼  收藏代碼
  1. Cookie[] cook =request.getCookies();//用一個Cookie數組來接收  
  2.   
  3. for(int j=0;j<cook.length;j++){//通過循環來打印Cookie  
  4.   
  5.         cook[j].getName()://取cookie的名    
  6.         cook[j].getValue()://去cookie的值  
  7.   
  8. }  
 


七,Servlet裏的過濾器?


過濾器的主要作用


1,任何系統或網站都要判斷用戶是否登錄。


2,網絡聊天系統或論壇,功能是過濾非法文字


3,統一解決編碼


(2)怎麼創建一個過濾器:

 

1,生成一個普通的class類,實現Filter接口(javax.servlet.Filter;)。


2,重寫接口裏面的三個方法:init,doFilter,destroy。


3,然後在web.xml配置過濾器。



八,Servlet裏的監聽器?


監聽器的作用:自動執行一些操作。

三種servlet監聽器:

 

對request的監聽。對session的監聽。對application的監聽。

怎麼創建一個session監聽器:


1,生成一個普通的class類,如果是對session的監聽,則實現HttpSessionListener。


2,然後重寫裏面的五個方法:

 

Java代碼  收藏代碼
  1. public void sessionCreated(HttpSessionEvent arg0) {} // 創建  
  2.   
  3. public void sessionDestroyed(HttpSessionEvent arg0) {} // 銷燬  
  4.   
  5. public void attributeAdded(HttpSessionEvent arg0) {} // 增加  
  6.   
  7. public void attributeRemoved(HttpSessionEvent arg0) {} // 刪除  
  8.   
  9. public void attributeReplaced(HttpSessionEvent arg0) {} // 替換
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章