JavaWeb过滤器——登录过滤
Posted 圆圆的园园
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaWeb过滤器——登录过滤相关的知识,希望对你有一定的参考价值。
一般来说简单且常用的过滤器使用方法,我觉得除了配置字符编码的过滤之外就是登录器的过滤了
登录过滤器的主要过程可以 一句话来概括:首先在登录的时候把指定好的标志放在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 感谢园友的无私奉献!
以上是关于JavaWeb过滤器——登录过滤的主要内容,如果未能解决你的问题,请参考以下文章