过滤器内容
@Override
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) arg0;
Cookie[] cookies= req.getCookies();
String username = "";
String password = "";
for(int i=0;cookies!=null&&i<cookies.length;i++){
if("user".equals(cookies[i].getName())){
String[] arr = cookies[i].getValue().split("&");
username = arr[0];
password = arr[1];
}
}
User u = new UserService().findUser(username, password);
if(u!=null){
req.getSession().setAttribute("user", u);
String url = req.getRequestURI().toString();
if(url.equals(req.getContextPath()+"/login.jsp")){
req.getRequestDispatcher("/index.jsp").forward(req, arg1);
}
}
arg2.doFilter(req, arg1);
}
登录servlet
public class LoginServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
String name = request.getParameter("username");
String pwd = request.getParameter("password");
UserService service = new UserService();
User u = service.findUser(name,pwd);
if(u!=null){
String auto = request.getParameter("login");
if(auto!=null){
Cookie cookie = new Cookie("user", name+"&"+pwd);
cookie.setPath("/");
cookie.setMaxAge(60*60*24);
response.addCookie(cookie);
}
request.getSession().setAttribute("user", u);
request.getRequestDispatcher("/index.jsp").forward(request, response);
}else{
request.getRequestDispatcher("/login.jsp").forward(request, response);
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}