登录过滤器

来源:互联网 发布:微软程序员工资 编辑:程序博客网 时间:2024/05/18 23:55

web.xml配置

<!-- 登录过滤器 -->    <filter>        <filter-name>LoginFilter</filter-name>        <filter-class>com.studentManagement.filter.LoginFilter</filter-class>        <init-param>            <param-name>NoFilter</param-name>            <param-value>login.jsp;forgetPassword.jsp</param-value>        </init-param>    </filter>    <filter-mapping>        <filter-name>LoginFilter</filter-name>        <url-pattern>*.jsp</url-pattern>    </filter-mapping>

filter

import com.studentManagement.dao.TeacherDao;import com.studentManagement.daoImpl.TeacherDaoImpl;import com.studentManagement.po.Teacher;import com.studentManagement.utils.CookieManagerUtil;import javax.servlet.*;import javax.servlet.annotation.WebFilter;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;/** * Created by Administrator on 2017/4/26 0026. */@WebFilter(filterName = "LoginFilter")public class LoginFilter implements Filter {    String noFilter = null;    public void destroy() {    }    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {        HttpServletRequest request = (HttpServletRequest) req;        HttpServletResponse response = (HttpServletResponse) resp;        //cookie        CookieManagerUtil cookieManagerUtil = new CookieManagerUtil();        Cookie cookies[] = request.getCookies();        String cookieUsername = cookieManagerUtil.getCookieValueByName(cookies, "autoUsername");        String cookiePassword = cookieManagerUtil.getCookieValueByName(cookies, "autoPassword");        TeacherDao teacherDao = new TeacherDaoImpl();        try {            Teacher teacher = teacherDao.queryTeacherByTId(cookieUsername);            if ((teacher.getTeacher_key()).equals(cookiePassword) && teacher.getTeacher_key() != null) {                request.getSession().setAttribute("teacher", teacher);                chain.doFilter(req, resp);                return;            }        } catch (Exception e) {        }        //某些页面不跳转到login        String[] arr = noFilter.split(";");        for (int i = 0; i < arr.length; i++) {            if (request.getRequestURL().indexOf(arr[i]) != -1) {                chain.doFilter(req, resp);                return;            }        }        if (request.getSession().getAttribute("teacher") != null) {            chain.doFilter(req, resp);            return;        } else {            response.sendRedirect(request.getContextPath() + "/jsp/login.jsp");        }    }    public void init(FilterConfig config) throws ServletException {        noFilter = config.getInitParameter("NoFilter");    }}