JavaWebCookie的应用


 

package com.xzit.erpmodel.users.controller;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.xzit.erpmodel.users.domain.SysUsers;
import com.xzit.erpmodel.users.service.UsersService;
import com.xzit.erpmodel.users.service.UsersServiceImp;

/**
 * Servlet implementation class UsersServlet
 */
@WebServlet("/UsersServlet")
public class UsersServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
     */
    protected void service(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {
        
        /* 获取用户提交的登录信息 */
        String name = request.getParameter("username");
        String pwd = request.getParameter("password");
        String savepwd = request.getParameter("savepwd");
        
        SysUsers user = new SysUsers();
        user.setName(name);
        user.setPassword(pwd);
        
        UsersService service = new UsersServiceImp();
        SysUsers current = service.validateLogin(user);
        
        if(current !=null) {//用户登录成功
            
                
                Cookie[] cookies = request.getCookies();//获取用户未过期的所有Cookie
                if(cookies != null && cookies.length !=0) {//有Cookie
                    int count = 0;    //计数器
                    for(int i=0;i//遍历数组查找目标Cookie
                        
                        if(cookies[i].getName().equals("logininfo") || cookies[i].getName().equals("logininfo2")) {//如果找到了目标有效的Cookie
                            
                            if(savepwd == null) {
                                cookies[i].setMaxAge(0);//不保存Cookie
                                response.addCookie(cookies[i]);
                            }
                            count++;
                        }
                    }
                    if(count == 0) {//没有找到Cookie
                        if(savepwd != null && savepwd.equals("on")) {//用户欲保存密码及用户信息
                            Cookie newCookie = new Cookie("logininfo",name);
                            Cookie newCookie2 = new Cookie("logininfo2",pwd);
                            newCookie.setMaxAge(3600*24*7);//设置Cookie的生命周期为7天
                            newCookie2.setMaxAge(3600*24*7);//设置Cookie的生命周期为7天
                            response.addCookie(newCookie);
                            response.addCookie(newCookie2);
                        }
                    }
                }else {
                    if(savepwd != null && savepwd.equals("on")) {//用户欲保存密码及用户信息
                        Cookie newCookie = new Cookie("logininfo",name);
                        Cookie newCookie2 = new Cookie("logininfo2",pwd);
                        newCookie.setMaxAge(3600*24*7);//设置Cookie的生命周期为7天
                        newCookie2.setMaxAge(3600*24*7);//设置Cookie的生命周期为7天
                        response.addCookie(newCookie);
                        response.addCookie(newCookie2);
                    }
                }
            
            //将用户对象存储到会话域中
            HttpSession sess = request.getSession();//如果有Session直接返回,没有则创建新的Session对象
            sess.setAttribute("currentUser", current);
            response.sendRedirect("worker.jsp");
        }else {
            response.sendRedirect("login.jsp?loginfaild=error");//登录失败跳转到登录页面
        }
    }

}
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" session="false"%>




Insert title here


    
<%! String uname = ""; String upwd = ""; %> <% Cookie []cookies = request.getCookies(); if(cookies !=null && cookies.length>0){ for(int i=0;i){ if(cookies[i].getName().equals("logininfo")){ uname = cookies[i].getValue();//提取用户名 }else if(cookies[i].getName().equals("logininfo2")){ upwd = cookies[i].getValue();//提取密码 } } } %> 用户名称:
登录密码: 保存密码
<% String mess = request.getParameter("loginfaild"); if(mess != null && mess.equals("error")){ %> <% } %>