自动登入

来源:互联网 发布:启用网络发现无法打开 编辑:程序博客网 时间:2024/04/28 23:35
package com.yigli.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.Cookie;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import com.yingli.dao.EmpDao;import com.yingli.daoImpl.EmpDaoImpl;import com.yingli.entity.Emp;/** * Servlet Filter implementation class AutoLogin */public class AutoLogin implements Filter {    /**     * Default constructor.      */    public AutoLogin() {        // TODO Auto-generated constructor stub    }/** * @see Filter#destroy() */public void destroy() {// TODO Auto-generated method stub}/** * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain) */public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {HttpServletRequest req=(HttpServletRequest)request;HttpServletResponse res=(HttpServletResponse) response;//1 取出cookie HttpSession session = req.getSession();Emp emp=(Emp) session.getAttribute("user");if(emp==null){String path=req.getRequestURL().toString();if(!path.contains("/login")){Cookie [] cookies=req.getCookies(); Cookie cookie=null; for(int i=0;cookies!=null&&i<cookies.length;i++){               if("empCookie".equals(cookies[i].getName())){                cookie=cookies[i];                break;               }  } if(cookie!=null){// 2 验证数据库  String [] vs=cookie.getValue().split("-"); EmpDao ed=new EmpDaoImpl(); emp=ed.login(vs[0], vs[1]);//   保存session    if(emp!=null){  req.getSession().setAttribute("user",emp);  }}}}chain.doFilter(request, response);}}

0 0
原创粉丝点击