1.服务端给客户端一个cookie(信件),客户端下次访问服务端带上 信件 就可以了;cookie
2.服务器登记你来过了,下次你来的时候我来匹配你;session
区别:
cookie是把用户数据写给用户的浏览器,浏览器保存
session是把用户的数据写给用户独占session中,服务器端保存
cookie相关代码块
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setHeader("Content-Type", "text/html;charset=utf-8"); //通知浏览器使用utf-8解码
PrintWriter out = resp.getWriter();
Cookie[] cookies = req.getCookies();//服务器从客户端获取
if(cookies!=null){
out.write("你上一次访问的时间是:");
for (int i = 0; i < cookies.length; i++) {
Cookie cookie=cookies[i];
if(cookie.getName().equals("lastlongtime")){
//获取cookie的值
long l = Long.parseLong(cookie.getValue());
Date date = new Date(l);
out.write(date.toLocaleString());
}
}
} else {
out.write("这是你第一次访问");
}
Cookie cookie = new Cookie("lastlongtime", System.currentTimeMillis() + "");
resp.addCookie(cookie);
}
1.print方法可以将各种类型的数据转换成字符串的形式输出。
2. 重载的write方法只能输出字符、字符数组、字符串等与字符相关的数据。
最终都是重写了抽象类Writer里面的write方法
简而言之:当输出内容有中文时就用write();