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);
}
}