登录过滤器

来源:互联网 发布:淘宝超级运动会是什么 编辑:程序博客网 时间:2024/05/18 23:57
package com.zhushen.filter;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class AuthorizationFilter implements Filter {    @Override    public void destroy() {    }    @Override    public void init(FilterConfig filterConfig) throws ServletException {    }    /**     * 检查用户是否登录,如果用户没有登录,那么跳转到登录页面     * 如果用户登录,那么进入下一个Filter     * 难点:要将login.jsp和login.do(servlet)放过去     */    @Override    public void doFilter(ServletRequest request, ServletResponse response,            FilterChain chain) throws IOException, ServletException {        HttpServletRequest req=(HttpServletRequest)request;        HttpServletResponse resp=(HttpServletResponse)response;        Object obj=req.getSession().getAttribute("username");        if(obj==null){//session中没有用户信息            String path=req.getRequestURI().substring(req.getRequestURI().lastIndexOf("/"+1));            //将login.jsp和login.do(servlet)放过去            if(!("login.jsp".equals(path)||"login.do".equals(path))){                resp.sendRedirect("login.jsp");                return;            }           }        chain.doFilter(request, response);    }}
原创粉丝点击