Tomcat過濾器filter的創建與配置


1.過濾器對客戶端發送的請求進行過濾,如果通過過濾器則chain.doFilter(request, response);向下一個過濾器傳遞或者進入請求資源的地方,如果請求失敗則會重定向或者其他操作

 1 public class LoginFilter implements Filter {
 2 
 3     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
 4             throws IOException, ServletException {
 5         // 對登錄進行驗證
 6         HttpServletRequest rq = (HttpServletRequest) request;
 7         HttpServletResponse rp = (HttpServletResponse) response;
 8         User userSession = (User) rq.getSession().getAttribute("userSession");
 9         if (null == userSession) {
10             rp.sendRedirect("/news/jsp/error.jsp");
11         } else {
12             chain.doFilter(request, response);
13         }
14     }
15 
16     public void destroy() {
17 
18     }
19 
20     public void init(FilterConfig arg0) throws ServletException {
21 
22     }
23 
24 }
View Code

2.過濾器的配置

  <filter>
    <filter-name>loginFilter</filter-name>
    <filter-class>com.kgc.web.filter.LoginFilter</filter-class>//過濾器的類所在位置
  </filter>
  <filter-mapping>
    <filter-name>loginFilter</filter-name>
    <url-pattern>/jsp/admin/*</url-pattern>//設置過濾器的范圍 是admin文件夾下的所有文件,只要想訪問admin下的資源必須先經過該過濾器
  </filter-mapping>

 

 3.過濾器的范圍的幾種設置方式

  • 完全匹配 /index.jsp
  • 目錄匹配: /admin/*
  • 擴展名匹配: *.do
  • 全部匹配: /*

當路徑對以上匹配方式都適用時范圍越小優先級越高

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM