通过Cookie记录用户上次登陆时间并判断用户是否是首次登陆
Cookie类的构造方法
public Cookie(java.lang.String name,java.lang.String )
1.创建一个相关的Servlet类
略,自行创建
2.指定服务器输出内容编码方式为utf-8
response.setContentType("text/html;charset=utf-8");
3.判断是否已有所需Cookie
先设置一个代表所需Cookie的变量
String lastVisitTime = null;
获取当前所有Cookie,存放到数组Cookies中
Cookie[] cookies = request.getCookies();
并遍历查找是否有我们所需Cookie
for(int i = 0; cookies!=null && i < cookies.length;i++){ //“LastVisitTime”是我们所需Cookie的名称 if("LastVisitTime".equals(cookies[i].getName())){ //如果有我们想要的Cookie,就把它的值放在变量lastVisitTime中 lastVisitTime = cookies[i].getValue(); break; } }
判断名称是否存在名称为LastVisitTime
if(lastVisitTime==null){ response.getWriter().println("您是首次访问本站"); }else{ response.getWriter().println("欢迎回来,上次登陆时间:"+lastVisitTime); }
4.创建cookie
//创建cookie,将当前时间作为cookie值发给客户端 String currenTime = new SimpleDateFormat("yyyy-M-d:hh:mm:ss").format(new Date()); Cookie cookie = new Cookie("LastVisitTime",currenTime); cookie.setPath("/"); //发送cookie response.addCookie(cookie);
完整代码如下
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 指定服务器输出内容编码方式为utf-8,以防乱码 response.setContentType("text/html;charset=utf-8"); String lastVisitTime = null; // 获取所有Cookie,并将这些Cookie存放在数组中 Cookie[] cookies = request.getCookies(); // 遍历所有Cookie数组 for(int i = 0; cookies!=null && i < cookies.length;i++){ if("LastVisitTime".equals(cookies[i].getName())){ lastVisitTime = cookies[i].getValue(); break; } } //判断名称是否存在名称为LastVisitTime if(lastVisitTime==null){ response.getWriter().println("您是首次访问本站"); }else{ response.getWriter().println("欢迎回来,上次登陆时间:"+lastVisitTime); } //创建cookie,将当前时间作为cookie值发给客户端 String currenTime = new SimpleDateFormat("yyyy-M-d:hh:mm:ss").format(new Date()); Cookie cookie = new Cookie("LastVisitTime",currenTime); cookie.setPath("/"); //发送cookie response.addCookie(cookie); }