核心Servlet为:GetLastAccessTime.java
package CookieDemo;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class GetLastAccessTime extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.print("您上次访问的时间是 : ");
//获得用户的时间Cookie
Cookie[] cookies = request.getCookies();
for(int i=0;cookies!=null && i<cookies.length;i++)
{
if(cookies[i].getName().equals("lastAccessTime"))
{
//得到用户上次的访问时间
long cookieValue = Long.parseLong(cookies[i].getValue());
Date date = new Date(cookieValue);
out.print(date.toLocaleString());
}
}
//给用户回送最新的访问时间
Cookie cookie = new Cookie("lastAccessTime",System.currentTimeMillis()+"");
//设置Cookie的有效期(此处设置的有效期为30天)
cookie.setMaxAge(30*24*3600);
//设置有效路径
cookie.setPath("/CookieTest");
//将Cookie写给浏览器
response.addCookie(cookie);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
doGet(request, response);
}
}
运行结果:当第一次访问是,不显示上次的访问时间:
刷新后会显示: