<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ page import="java.util.Date"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>使用Cookie记录用户访问本网页的次数</title>
</head>
<body>
<%
Cookie temp = null;
//取得Cookie资料
Cookie[] cookies = request.getCookies();
int cookielen = cookies.length;
int count = 0;
String date = "";
if (cookielen != 0) {
//遍历取得Cookies数组中的Cookie变量
for (int i = 0; i < cookielen; i++) {
temp = cookies[i];
//找到本网页设置的Cookie项
if (temp.getName().equals("accessCount")) {
//得到此前的访问次数
count = Integer.parseInt(temp.getValue());
} else if (temp.getName().equals("accessDate")) {
date = temp.getValue();
}
//找到这两个值便退出遍历
if ((count != 0) && (!"".equals(date))) {
break;
}
}
//显示用户登录次数
if (count == 0) {
out.println("首度光临的新朋友,欢迎您访问我的网页!");
} else {
out.println("这是您第<font color=red>" + (count + 1) + "</font>次访问我的网页!");
out.println("您上次访问的时间是<font color=red>" + date + "</font>!");
}
//如果访问次数小于500,则更新Cookie
if (count <= 500) {
Cookie accessCountCookie = new Cookie("accessCount", String.valueOf(count + 1));
//将Cookie有效时间设定为1周
int validateTime = 7 * 24 * 60 * 60;
accessCountCookie.setMaxAge(validateTime);
//设置Cookie的访问路径,当用户访问本服务器的/charpter19路径时,该Cookie会添加在reqeust中
accessCountCookie.setPath("/charpter19");
//将更新后的数据存入客户端的Cookie变量中
response.addCookie(accessCountCookie);
//更新访问时间
Cookie accessDateCookie = new Cookie("accessDate", new Date().toString());
accessCountCookie.setMaxAge(validateTime);
accessCountCookie.setPath("/charpter19");
response.addCookie(accessDateCookie);
} else {
//当访问大于500时,将Cookie删除
Cookie killMyCookie = new Cookie("accessCount", null);
killMyCookie.setMaxAge(0);
killMyCookie.setPath("/charpter19");
response.addCookie(killMyCookie);
killMyCookie = new Cookie("accessDate", null);
killMyCookie.setMaxAge(0);
killMyCookie.setPath("/charpter19");
response.addCookie(killMyCookie);
}
}
%>
<br />
</body>
</html>
第一次访问:
刷新后再访问: