问:如何证明你来过一个网站?
答:在访问服务器的时候会给客户端发送一个信件,当客户端带着上次的信件再次访问服务器,就证明客户端来过。 cookie
如下列代码:
此代码会记录下你每次的访问的时间,在下次访问的时候会显示上次访问的时间
package com.zzw.servlet;
import javax.servlet.ServletException;
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.util.Date;
import java.util.stream.StreamSupport;
public class cookie extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("GBk");
resp.setCharacterEncoding("GBK");
Cookie[] cookies = req.getCookies();
if(cookies!=null){
resp.getWriter().write("您上次来的时间是");
for(int i = 0;i< cookies.length;i++){
if(cookies[i].getName().equals("lastLoginTime")){
long l = Long.parseLong(cookies[i].getValue());
Date LastTime= new Date(l);
resp.getWriter().write(LastTime.toLocaleString());
}
}
}else {
resp.getWriter().write("您第一次访问");
}
Cookie lastLoginTime = new Cookie("lastLoginTime", System.currentTimeMillis() +"");
lastLoginTime.setMaxAge(60*24*60);
resp.addCookie(lastLoginTime);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
代码思路:
①:从请求中获取cookie
请求中的cookie可能会有很多,因此要数组的形式保存
Cookie[] cookies = req.getCookies();
②:服务器反应给客户端的cookie
Cookie.getname();//得到Cookie的key
Cookie.getvalue();//得到Cookie的value
Cookie.setMaxAge();//设置Cookie的生命周期
resp.addCookie();//响应给服务端一个Cookie
new Cookie();//新建一个Cookie
Cookie的上限:
①每个域名的Cookie数量上限为20个
②每个Cookie的大小限制在4KB
注:如果未设置setMaxAge,每次关掉浏览器,会自动地清除所有的Cookie