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;
@WebServlet("/CookieTest")
public class CookieTest extends HttpServlet {
private static final long serialVersionUID = 1L;
public CookieTest() {
super();
// TODO Auto-generated constructor stub
}
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);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}