利用Cookie机制计算访问次数
package com.msb.cookies;
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;
import java.io.IOException;
import java.net.CookieStore;
//这里必须访问Demo1.do才有效果哦:http://localhost:8090/ProjectCookies_war_exploded/Demo1.do
@WebServlet(urlPatterns = "/Demo1.do")
public class Demo1 extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
/*Cookie age = new Cookie("age", "23");
Cookie name = new Cookie("name", "Mick");
age.setMaxAge(60);//设置cookie的存活时间;在60秒内再次打开浏览器cookie不会清空;即:即使退出账号也可以登录
resp.addCookie(age);
resp.addCookie(name);*/
//获取cookie
Cookie[] cookies = req.getCookies();
boolean falg = true;
if(cookies!=null){
for (Cookie cookie : cookies) {
/* 获取文件的名字;然后判断名称出现的次数*/
String name1 = cookie.getName();
if ("Demo1".equals(name1)) {
//cookie.getValue()第一次获取为一;这里注意Cookie第一次加载无cookie信息;则当出现cookie时其实已经是第二次访问
//Integer.parseInt(——String——)--将字符串转成包装类
Integer value = Integer.parseInt(cookie.getValue()) + 1;
//String.valueOf(i);将包装类转成字符串 --new Cookie("Demo1", ”Demo1“);
//这里是定义的一个cookie类型;用它来测试出现次数
Cookie name11 = new Cookie("Demo1", String.valueOf(value));
//将这个cooki生成的对象捕获;添加到cookie队列中;
resp.addCookie(name11);
System.out.println("欢迎第" + value + "次访问");
falg = false;
}
}
if (falg){
System.out.println("您是第1次访问");
Cookie demo1 = new Cookie("Demo1", "1");
resp.addCookie(demo1);
}
}
}
}