-----------------------------------------
2,Servlet有什么作用
3,Servlet的生命周期
4,Servlet怎么處理一個請求
5,Servlet與JSP有什么區(qū)別
6,Servlet里的cookie技術
7,Servlet里的過濾器
8,Servlet里的監(jiān)聽器
一,什么是Servlet?
Servlet是一個Java編寫的程序,此程序是基于Http協(xié)議的,在服務器端運行的(如tomcat),
是按照Servlet規(guī)范編寫的一個Java類。
二,Servlet有什么作用?
主要是處理客戶端的請求并將其結果發(fā)送到客戶端。
三,Servlet的生命周期?
Servlet的生命周期是由Servlet的容器來控制的,它可以分為3個階段;初始化,運行,銷毀。
初始化階段:
1,Servlet容器加載servlet類,把servlet類的.class文件中的數(shù)據(jù)讀到內(nèi)存中。
2,然后Servlet容器創(chuàng)建一個ServletConfig對象。ServletConfig對象包含了Servlet的初始化配置信息。
3,Servlet容器創(chuàng)建一個servlet對象。
4,Servlet容器調用servlet對象的init方法進行初始化。
運行階段:
當servlet容器接收到一個請求時,servlet容器會針對這個請求創(chuàng)建servletRequest和servletResponse對象。
然后調用service方法。并把這兩個參數(shù)傳遞給service方法。Service方法通過servletRequest對象獲得請求的
信息。并處理該請求。再通過servletResponse對象生成這個請求的響應結果。然后銷毀servletRequest和
servletResponse對象。我們不管這個請求是post提交的還是get提交的,最終這個請求都會由service方法來處理。
web.xml 配置文件找到相應的處理servlet,同時將request、response對象傳遞給它,servlet通過request對象可知道客戶端
的請求 者、請求信息以及其他的信息等,servlet在處理完請求后會把所有需要返回的信息放入response對象中并返回到客戶端,
servlet一旦處理 完請求,servlet容器就會刷新response對象,并把控制權重新返回給web服務器。
銷毀階段:
當Web應用被終止時,servlet容器會先調用servlet對象的destrory方法,然后再銷毀servlet對象,
同時也會銷毀與servlet對象相關聯(lián)的servletConfig對象。我們可以在destroy方法的實現(xiàn)中,釋放
servlet所占用的資源,如關閉數(shù)據(jù)庫連接,關閉文件輸入輸出流等。
在這里該注意的地方:
在servlet生命周期中,servlet的初始化和和銷毀階段只會發(fā)生一次,而service方法執(zhí)行的次數(shù)則取決于servlet被客戶
端訪問的次數(shù)
四,Servlet怎么處理一個請求?
當用戶發(fā)送一個請求到某個Servlet的時候,Servlet容器會創(chuàng)建一個ServletRequst和ServletResponse對象。
在ServletRequst對象中封裝了用戶的請求信息,然后Servlet容器把ServletRequst和ServletResponse對象
傳給用戶所請求的Servlet,Servlet把處理好的結果寫在ServletResponse中,然后Servlet容器把響應結果傳
給用戶。
五,Servlet與JSP有什么區(qū)別?
1,jsp經(jīng)編譯后就是servlet,也可以說jsp等于servlet。
2,jsp更擅長頁面(表現(xiàn))。servlet更擅長邏輯編輯。 (最核心的區(qū)別)。
3,在實際應用中采用Servlet來控制業(yè)務流程,而采用JSP來生成動態(tài)網(wǎng)頁.在struts框架中,
JSP位于MVC設計模式的視圖層,而Servlet位于控制層。
六,Servlet里的cookie技術?
cookies是一種WEB服務器通過瀏覽器在訪問者的硬盤上存儲信息的手段,是由Netscape公司開發(fā)出來的。
cookie技術的好處:
1,Cookie有效期限未到時,Cookie能使用戶在不鍵入密碼和用戶名的情況下進入曾經(jīng)瀏覽過的一些站點。
2,Cookie能使站點跟蹤特定訪問者的訪問次數(shù)、最后訪問時間和訪問者進入站點的路徑。
創(chuàng)建一個cookie
使用cookie
- Cookie[] cook =request.getCookies();//用一個Cookie數(shù)組來接收
- for(int j=0;j<cook.length;j++){//通過循環(huán)來打印Cookie
- cook[j].getName()://取cookie的名
- cook[j].getValue()://去cookie的值
- }
七,Servlet里的過濾器?
過濾器的主要作用
1,任何系統(tǒng)或網(wǎng)站都要判斷用戶是否登錄。
2,網(wǎng)絡聊天系統(tǒng)或論壇,功能是過濾非法文字
3,統(tǒng)一解決編碼
(2)怎么創(chuàng)建一個過濾器:
1,生成一個普通的class類,實現(xiàn)Filter接口(javax.servlet.Filter;)。
2,重寫接口里面的三個方法:init,doFilter,destroy。
3,然后在web.xml配置過濾器。
八,Servlet里的監(jiān)聽器?
監(jiān)聽器的作用:自動執(zhí)行一些操作。
三種servlet監(jiān)聽器:
對request的監(jiān)聽。對session的監(jiān)聽。對application的監(jiān)聽。
怎么創(chuàng)建一個session監(jiān)聽器:
1,生成一個普通的class類,如果是對session的監(jiān)聽,則實現(xiàn)HttpSessionListener。
2,然后重寫里面的五個方法:
- public void sessionCreated(HttpSessionEvent arg0) {} // 創(chuàng)建
- public void sessionDestroyed(HttpSessionEvent arg0) {} // 銷毀
- public void attributeAdded(HttpSessionEvent arg0) {} // 增加
- public void attributeRemoved(HttpSessionEvent arg0) {} // 刪除
- public void attributeReplaced(HttpSessionEvent arg0) {} // 替換