<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ page import="javax.servlet.ServletException" %> <%@ page import="javax.servlet.annotation.WebServlet" %> <%@ page import="javax.servlet.http.Cookie" %> <%@ page import="javax.servlet.http.HttpServlet" %> <%@ page import="javax.servlet.http.HttpServletRequest" %> <%@ page import="javax.servlet.http.HttpServletResponse" %> <%@ page import="java.io.IOException" %> <%@ page import="java.net.URLDecoder" %> <%@ page import="java.net.URLEncoder" %> <%@ page import="java.text.SimpleDateFormat" %> <%@ page import="java.util.Date" %> jsp_test <% //设置响应的消息体的数据格式及其编码 //1、获取所有Cookie Cookie[] cookies = request.getCookies(); boolean flag = false;//标记是否访问过 //2、遍历Cookie数组 if (cookies != null && cookies.length > 0) { for (Cookie cookie : cookies) { //3、获取Cookie的名称 String name = cookie.getName(); //4、判断名称是否是 lastTime if ("lastTime".equals(name)) { //有该Cookie,不是第一次访问 -- 取出时间 String value = cookie.getValue(); flag = true; //重新设置Cookie的value Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String str_date = sdf.format(date); //Cookie不能有特殊字符 -- 如:空格 -- 需要转码 //URL编码 System.out.println("编码前:" + str_date); str_date = URLEncoder.encode(str_date, "UTF-8"); System.out.println("编码后:" + str_date); cookie.setValue(str_date);//更换内部数据 //设置Cookie的存活时间 cookie.setMaxAge(60 * 60 * 24 * 30);//一个月 response.addCookie(cookie);//会自动把name相同的Cookie替换掉 //URL解码 value = URLDecoder.decode(value, "UTF-8"); %>

欢迎回来,您上次访问的时间是:<%= value %>

您想要的是: <% break; } } //是第一次访问 if (!flag) { //创造cookie Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String str_date = sdf.format(date); //URL编码 System.out.println("编码前:" + str_date); str_date = URLEncoder.encode(str_date, "UTF-8"); System.out.println("编码后:" + str_date); Cookie cookie = new Cookie("lastTime", str_date); //设置Cookie的存活时间 cookie.setMaxAge(60 * 60 * 24 * 30);//一个月 response.addCookie(cookie); %>

您好!这是您的首次访问

<% } } %>