使用cookie记录上一次登录状态,下一次访问时显示上一次登录时间

package com.ghgj.cookie;

import java.io.IOException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;

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;

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

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	this.doPost(request, response);
}


protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //设置编码
	request.setCharacterEncoding("utf-8");
     Cookie[] cookies = request.getCookies();
     if (cookies==null||cookies.length==0) {
		//首先如果cookie是空的话,就创建一个cookie,并且创建一个值和名字放到cookie里面去
    	 Date date=new Date();
    	 SimpleDateFormat sif=new SimpleDateFormat("yyyy年MM月dd日:HH时mm分ss秒");
    	 String str_date = sif.format(date);
    	 //对时间做一个编码
    	 String values = URLEncoder.encode(str_date, "utf-8");
    	//新建一个cookie,他是携带时间的
    	 Cookie cookie=new Cookie("lastTime", "utf-8");
    	 //设置cookie的最大生命周期
    	 cookie.setMaxAge(6);
    	 //把cookie放到浏览器里面去
    	 response.addCookie(cookie);
    	 response.setCharacterEncoding("utf-8");
    	 response.setContentType("text/html;charset=utf-8");
    	 response.getWriter().write("<h1>亲爱的用户,您是首次访问哦!</h1>");
	}else{
		//遍历整个cookie
		for (Cookie c: cookies) {
			//判断cookie是否是上一次登录的,通过他的名字lastTime来确定是同一个cookie
			if ("lastTime".equals(c.getName())) {
				Date date=new Date();
	        	 SimpleDateFormat sif=new SimpleDateFormat("yyyy年MM月dd日:HH时mm分ss秒");
	        	 String str_date = sif.format(date);
	        	 //对时间做一个编码
	        	 String values = URLEncoder.encode(str_date, "utf-8");
	        	 //给cookie设置一个值,这个值就是时间
	        	 c.setValue(values);
	        	 c.setMaxAge(6);
	        	 //把一个有值的cookie放入浏览器中
	        	 response.addCookie(c);
	        	 //获取cookie里面的时间这个值
	        	 String val = c.getValue();
	        	 //对时间做一个解码
	        	 String time = URLDecoder.decode(val,"utf-8");
	        	 //对相应的信息做一个编码,以防中文乱码情况
	        	 response.setCharacterEncoding("utf-8");
	        	 response.setContentType("text/html;charset=utf-8");
	        	 response.getWriter().write("<h1>亲爱的用户,您上一次的登录时间是:"+time+"</h1>");
	        	 
	        	 
			}
			
			
		}
	}
}

}

发布了19 篇原创文章 · 获赞 0 · 访问量 396

猜你喜欢

转载自blog.csdn.net/weixin_45014243/article/details/103095292