index:
1,什麼是Servlet
2,Servlet有什麼做用
3,Servlet的生命週期
4,Servlet怎麼處理一個請求
5,Servlet與JSP有什麼區別
6,Servlet裏的cookie技術
7,Servlet裏的過濾器
8,Servlet裏的監聽器java
一,什麼是Servlet?web
Servlet是一個Java編寫的程序,此程序是基於Http協議的,在服務器端運行的(如tomcat),數據庫
是按照Servlet規範編寫的一個Java類。設計模式
二,Servlet有什麼做用?數組
主要是處理客戶端的請求並將其結果發送到客戶端。瀏覽器
三,Servlet的生命週期?tomcat
Servlet的生命週期是由Servlet的容器來控制的,它能夠分爲3個階段;初始化,運行,銷燬。
初始化階段:服務器
1,Servlet容器加載servlet類,把servlet類的.class文件中的數據讀到內存中。cookie
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的名和cookie的值 response.addCookie(new Cookie("abc","10000000"));
使用cookie
Cookie[] cook =request.getCookies();//用一個Cookie數組來接收 for(int j=0;j<cook.length;j++){//經過循環來打印Cookie cook[j].getName()://取cookie的名 cook[j].getValue()://去cookie的值 }
七,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,而後重寫裏面的五個方法:
public void sessionCreated(HttpSessionEvent arg0) {} // 建立 public void sessionDestroyed(HttpSessionEvent arg0) {} // 銷燬 public void attributeAdded(HttpSessionEvent arg0) {} // 增長 public void attributeRemoved(HttpSessionEvent arg0) {} // 刪除 public void attributeReplaced(HttpSessionEvent arg0) {} // 替換