java 過濾器filter使用案例


主要需要 過濾器類  和配置文件

1.過濾器類 SessionFilter

package com.service;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

public class SessionFilter implements javax.servlet.Filter {
    public void destroy() {
        System.out.println("----Filter銷毀----");
    }

    public void doFilter(ServletRequest arg0, ServletResponse arg1,
                         FilterChain arg2) throws IOException, ServletException {

        HttpServletRequest request=(HttpServletRequest) arg0;
        HttpServletResponse response=(HttpServletResponse) arg1;
        HttpSession session=request.getSession();
        String path=request.getRequestURI();
        Integer uid=(Integer)session.getAttribute("userid");
        if(path.indexOf("/login.jsp")>-1){//登錄頁面不過濾
            arg2.doFilter(arg0, arg1);//遞交給下一個過濾器
            return;
        }
        if(path.indexOf("/register.jsp")>-1){//注冊頁面不過濾
            arg2.doFilter(request, response);
            return;
        }

        if(uid!=null){//已經登錄
            arg2.doFilter(request, response);//放行,遞交給下一個過濾器

        }else{
            response.sendRedirect("/user/login");
        }
    }
    public void init(FilterConfig arg0) throws ServletException {
        System.out.println("----Filter初始化----");
    }
}

2.配置web.xml

  <filter>
    <filter-name>SessionFilter</filter-name>
    <!--過濾器-->
    <filter-class>com.service.SessionFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>SessionFilter</filter-name>
    <!--需要過濾的路徑-->
    <url-pattern>/home/*</url-pattern>
    <!--<url-pattern>/user/*</url-pattern>-->
  </filter-mapping>

  

 


免責聲明!

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



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