package servlet;
import java.io.IOException;
import java.io.PrintWriter;
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;
/**
* Servlet implementation class CookieTest
*/
@WebServlet("/CookieTest")
public class CookieTest extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public CookieTest() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;chartset=utf-8");
PrintWriter out = response.getWriter();
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss");
//获得当前时间
String nowTime=sdf.format(new Date());
//初始化最后一次访问的时间和次数
String lastVistedTime ="";//最后一次访问的时间
int vistedCount=0;//总访问次数
//尝试获取cookie,并读取其中的内容
Cookie[] myCookie = request.getCookies();
//判断是否已经有Cookie
if(myCookie!=null){
//循环遍历cookie数组,逐个读取信息
for(Cookie cookie:myCookie){
//判断当前这个cookie是不是记录最近一次访问时间
if(cookie.getName().equals("lastVistedTime")){
lastVistedTime = cookie.getValue();
}
//判断当前cookie是否记录访问次数
if(cookie.getName().equals("vistedCount")){
vistedCount = Integer.parseInt(cookie.getValue());
}
}
}
//如果不是第一次访问,输出上一次访问时间
if(!lastVistedTime.equals("")){
out.println("您上次访问的时间是:"+lastVistedTime);
}
//输出访问该站点的次数
out.println("您是第"+(vistedCount+1)+"次访问本站.<br>");
//下面的代码将cookie中的数据进行更新
Cookie lastVistedTimeCookie = new Cookie("lastVistedTime", lastVistedTime);
lastVistedTimeCookie.setMaxAge(60*60*24*7);
Cookie vistedCountCookie = new Cookie("vistedCount",(vistedCount+1)+"");
vistedCountCookie.setMaxAge(60*60*24*7);
response.addCookie(lastVistedTimeCookie);
response.addCookie(vistedCountCookie);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}