一般來說簡單且常用的過濾器使用方法,我覺得除了配置字符編碼的過濾之外就是登錄器的過濾了
登錄過濾器的主要過程可以 一句話來概括:首先在登錄的時候把指定好的標志放在session中,操作過濾的時候根據session中的標志判斷是否需要過濾。(好像是廢話……)
過濾器代碼:
package com.ahoo.filter; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; /** * @author xueyuan * @dater 2017/2/20. */ public class LoginFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse resp = (HttpServletResponse) response; HttpSession session = req.getSession(); //獲取請求路徑 String path = req.getRequestURI(); //獲取session中作為判斷的字段 String pwd = (String) session.getAttribute("passwd"); //判斷請求的 路徑中是否包含了 登錄頁面的請求 //如果包含了,那么不過濾 繼續執行操作 if (path.indexOf("/back/login.do") > -1) { filterChain.doFilter(req, resp); } else { //如不包含,那么就要判斷 session中否有標志,如果沒有標志,那么不讓他看,讓他去登錄,反之執行操作! if (pwd == null || "".equals(pwd)) { resp.sendRedirect("/back/login.do"); } else { filterChain.doFilter(req, resp); } } } @Override public void destroy() { } }
web.xml中配置過濾器
<filter> <filter-name>login</filter-name> <filter-class>com.ahoo.filter.LoginFilter</filter-class> </filter> <filter-mapping> <filter-name>login</filter-name> <!-- 過濾某個文件夾下面的 我這里是back目錄下的操作--> <url-pattern>/back/*</url-pattern> </filter-mapping>
參考:http://www.cnblogs.com/haojieli/p/5559854.html 感謝園友的無私奉獻!