2023-01-06
一、過濾器鏈
1、含義:如果出現一個請求存在多個過濾器對其過濾,出現過濾器鏈,
在放行前,過濾器是正序執行,放行后過濾器是倒序執行,
2、過濾器的順序:是與filter-mapping配置背景關系位置有關
二、監聽器
1、作用范圍:
(1)監聽域物件的創建和銷毀
域物件:
①ServletContext:應用域(物件是web專案加載時創建,web專案卸載時銷毀),監聽器介面是“ServletContextListener”,
②HttpSession:會話域(第一次呼叫getSession創建,銷毀是強制銷毀),監聽器介面是“HttpSessionListener”,
③HttpServletRequest:請求域(有請求就創建,回應結束就銷毀),監聽器介面是“HttpServletRequestListener”,
(2)監聽域物件內共享資料的添加、修改、洗掉
①添加資料:setAttribute
②洗掉資料:removeAttribute
③修改資料:setAttribute (如果key值存在,此方法就是修改資料)
2、創建監聽器
(1)創建一個類
先創建一個“web Application”的專案,洗掉“index.jsp”.在src檔案夾下的“com.hh”下創建一個類“listener.HelloListener”
(2)實作一個介面
例如“ServletContextListener”
(3)實作介面中的抽象函式
public class HelloListener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent servletContextEvent) { System.out.println("ServletContext物件創建后執行此方法"); } @Override public void contextDestroyed(ServletContextEvent servletContextEvent) { System.out.println("ServletContext物件銷毀后執行此方法"); } }
(4)注冊監聽器
在“WEB-INF”檔案夾下的“web.xml”中
<listener>
<listener-class>com.hh.listener.HelloListener</listener-class>
</listener>
三、Servlet、Filter、Listener的注解方式開發
功能:替代組態檔的,
1、Servlet的注解
(1)位置:在類的上方
(2)代碼:
@WebServlet(name="HelloServlet",value="https://www.cnblogs.com/hello")
注:name就相當于組態檔中的“servlet-name”的值;value就相當于組態檔中“url-pattern”的值
簡寫形式:name可以省略,當只剩下“value”屬性,屬性名可以省略,即:
@WebServlet("/hello")
2、Filter的注解
(1)位置:類的上方
(2)代碼:
@WebFilter(filterName = "HelloFilter",urlPatterns = "/hello")
3、Listener的注解
(1)位置:類的上方
(2)代碼:
@WebListener
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/541335.html
標籤:其他
