cookie登录存储

package com.ghgj.cookie;

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

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("/CookieTime")
public class CookieTime extends HttpServlet {
private static final long serialVersionUID = 1L;

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

@SuppressWarnings("deprecation")
protected void doPost(HttpServletRequest request, HttpServletResponse response)
		throws ServletException, IOException {
	//设置响应的消息体的数据格式以及编码,避免中文乱码问题
	response.setCharacterEncoding("utf-8");
	response.setContentType("text/html;charaset=utf-8");
    //1.获取所有的Cookie
	Cookie[] cookies = request.getCookies();
	boolean flag=false;//这里设置一个标记是为了判断cookie里面是不是带有lastTime
	if (cookies!=null&&cookies.length>0) {
		//治理是为了寻找cookie里面带有Lasttime的cookie
		for (Cookie cookie : cookies) {
			//2.获取cookie的名称,并进行判断
			String name = cookie.getName();
			if ("lastTime".equals(name)) {
				flag=true;//这里flag能进来说明cookie是带有lastTime的

				//每次再一次登录时又会获得一个上一次的时间,所以这里需要设置时间,再获取时就会覆盖掉上一次的时间,重新发送cookie值
				Date date=new Date();
				SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日:HH分:mm秒:ss毫秒");
				String str_data = sdf.format(date);
				String str_date = URLEncoder.encode(str_data, "utf-8");//先编码
				cookie.setValue(str_data);
				cookie.setMaxAge(6);
				response.addCookie(cookie);	
				//响应数据,并且获取时间
				String value = cookie.getValue();
				String value1 =URLDecoder.decode(value, "utf-8");//再解码
				response.getWriter().write("<h1>欢迎回来,您上次的访问时间是:"+value1+"</h1>");
			}
			
		}
		
	}
	//这里的flag是false时说明cookie不带lastTime
	if (cookies==null||cookies.length==0||flag==false) {
		Date date=new Date();
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日:HH:mm:ss");
		String str_data = sdf.format(date);
		String value1 = URLEncoder.encode(str_data, "utf-8");
		Cookie cookie=new Cookie("lastTime", value1);
		response.addCookie(cookie);	//把cookie添加到浏览器里面
		cookie.setMaxAge(6);
		response.getWriter().write("<h1>欢迎您首次使用</h1>");
	}
}

}

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

猜你喜欢

转载自blog.csdn.net/weixin_45014243/article/details/103083777
今日推荐