1. 程式人生 > >10 過濾器和監聽器

10 過濾器和監聽器

req 刪除 ping ppi init list 一次 編碼 response

1.過濾器

   1.作用:對所有請求或響應做攔截操作
   2.開發Filter
       1.自定義一個XxxFilter實現javax.servlet.Filter接口
   2.web.xml中配置(註解@webFilter(""))
   <filter>
         <filter-name>XxxFilter</filter-name>
     <filter-class></filter-class>
      </filter>
  <filter-mapping>
         <filter-name>XxxFilter</filter-name>
     //攔截的資源
     <url-pattern></url-pattern>
 </filter-mapping>
 3.Filter的生命周期
  生命周期方法:
    init(FilterConfig config)
doFiler(ServletRequest request,ServletResponse response,FilterChain chain)
destory()
 執行的流程:
    啟動服務器時,就會執行構造器和init方法
每一次請求都會執行doFilter方法
chain,doFilter(req,resp):放行
4.配置初始化參數
5.請求編碼過濾器
6.攔截所有請求,用初始化配置來配置不用攔截的uri,放行,其他uri如果用戶名存在才放行他uri

2.Listener(監聽器)

   1.配置:
      <Listener>
       <Listener-class></Listener-class>
  </Listener>
   2.使用:
      要使用哪個監聽器,就去實現對應的接口
   3.常用的事件監聽
      1.對作用域對象的創建銷毀監聽
   ServletRequestListener
   HttpSessionListener
       ServletContextListener
 2.對WEB作用域對象的屬性(添加、替換、刪除)方法進行監聽:
   ServletRequestAttributeListener
   HttpSessionAttributeListener
   ServletContextAttributeListener

10 過濾器和監聽器