
正文
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 感谢园友的无私奉献!







