十七逻谦。Servlet規(guī)范擴(kuò)展-----------------監(jiān)聽(tīng)器接口
1.介紹:
1)一組來(lái)自于Servlet規(guī)范下接口,共有8個(gè)接口旭从。在Tomcat存在servlet-api.jar包
2)監(jiān)聽(tīng)器接口需要由開(kāi)發(fā)人員親自實(shí)現(xiàn)剥懒,Http服務(wù)器提供jar包并沒(méi)有對(duì)應(yīng)的實(shí)現(xiàn)類
3)監(jiān)聽(tīng)器接口用于監(jiān)控【作用域?qū)ο笊芷谧兓瘯r(shí)刻】以及【作用域?qū)ο蠊蚕頂?shù)據(jù)變化時(shí)刻】
2.作用域?qū)ο螅?
1)在Servlet規(guī)范中渔欢,認(rèn)為在服務(wù)端內(nèi)存中可以在某些條件下為兩個(gè)Servlet之間提供
數(shù)據(jù)共享方案的對(duì)象猛拴,被稱為【作用域?qū)ο蟆?
2)Servlet規(guī)范下作用域?qū)ο?
ServletContext: 全局作用域?qū)ο? HttpSession : 會(huì)話作用域?qū)ο? HttpServletRequest:請(qǐng)求作用域?qū)ο?
3.監(jiān)聽(tīng)器接口實(shí)現(xiàn)類開(kāi)發(fā)規(guī)范:三步
1)根據(jù)監(jiān)聽(tīng)的實(shí)際情況,選擇對(duì)應(yīng)監(jiān)聽(tīng)器接口進(jìn)行實(shí)現(xiàn)
2)重寫(xiě)監(jiān)聽(tīng)器接口聲明【監(jiān)聽(tīng)事件處理方法】
3)在web.xml文件將監(jiān)聽(tīng)器接口實(shí)現(xiàn)類注冊(cè)到Http服務(wù)器
4.ServletContextListener接口:
1)作用:通過(guò)這個(gè)接口合法的檢測(cè)全局作用域?qū)ο蟊怀跏蓟瘯r(shí)刻以及被銷毀時(shí)刻
2)監(jiān)聽(tīng)事件處理方法:
public void contextInitlized() :在全局作用域?qū)ο蟊籋ttp服務(wù)器初始化被調(diào)用
public void contextDestory(): 在全局作用域?qū)ο蟊籋ttp服務(wù)器銷毀時(shí)候觸發(fā)調(diào)用
5.ServletContextAttributeListener接口:
1)作用:通過(guò)這個(gè)接口合法的檢測(cè)全局作用域?qū)ο蠊蚕頂?shù)據(jù)變化時(shí)刻
2)監(jiān)聽(tīng)事件處理方法:
public void contextAdd():在全局作用域?qū)ο筇砑庸蚕頂?shù)據(jù)
public void contextReplaced():在全局作用域?qū)ο蟾鹿蚕頂?shù)據(jù)
public void contextRemove():在全局作用域?qū)ο髣h除共享數(shù)據(jù)
6.全局作用域?qū)ο蠊蚕頂?shù)據(jù)變化時(shí)刻
ServletContext application = request.getServletContext();
application.setAttribute("key1",100); //新增共享數(shù)據(jù)
application.setAttribute("key1",200); //更新共享數(shù)據(jù)
application.removeAttribute("key1"); //刪除共享數(shù)據(jù)
十八:Servlet規(guī)范擴(kuò)展-----------------Filter接口(過(guò)濾器接口)
1.介紹:
1)來(lái)自于Servlet規(guī)范下接口霞捡,在Tomcat中存在于servlet-api.jar包
2)Filter接口實(shí)現(xiàn)類由開(kāi)發(fā)人員負(fù)責(zé)提供坐漏,Http服務(wù)器不負(fù)責(zé)提供
3)Filter接口在Http服務(wù)器調(diào)用資源文件之前,對(duì)Http服務(wù)器進(jìn)行攔截
2.具體作用:
1)攔截Http服務(wù)器,幫助Http服務(wù)器檢測(cè)當(dāng)前請(qǐng)求合法性
2)攔截Http服務(wù)器赊琳,對(duì)當(dāng)前請(qǐng)求進(jìn)行增強(qiáng)操作
3.Filter接口實(shí)現(xiàn)類開(kāi)發(fā)步驟:三步
1)創(chuàng)建一個(gè)Java類實(shí)現(xiàn)Filter接口
2)重寫(xiě)Filter接口中doFilter方法
3)web.xml將過(guò)濾器接口實(shí)現(xiàn)類注冊(cè)到Http服務(wù)器
4.Filter攔截地址格式
1) 命令格式:
<filter-mapping>
<filter-name>oneFilter</filter-name>
<url-pattern>攔截地址</url-pattern>
</filter-mapping>
2) 命令作用:
攔截地址通知Tomcat在調(diào)用何種資源文件之前需要調(diào)用OneFilter過(guò)濾進(jìn)行攔截
3)要求Tomcat在調(diào)用某一個(gè)具體文件之前街夭,來(lái)調(diào)用OneFilter攔截
<url-pattern>/img/mm.jpg</url-pattern>
4)要求Tomcat在調(diào)用某一個(gè)文件夾下所有的資源文件之前,來(lái)調(diào)用OneFilter攔截
<url-pattern>/img/*</url-pattern>
5)要求Tomcat在調(diào)用任意文件夾下某種類型文件之前躏筏,來(lái)調(diào)用OneFilter攔截
<url-pattern>*.jpg</url-pattern>
6)要求Tomcat在調(diào)用網(wǎng)站中任意文件時(shí)板丽,來(lái)調(diào)用OneFilter攔截
<url-pattern>/*</url-pattern>