您的位置:首页 > 其它

Cookie

2020-02-02 15:13 417 查看

什么是cookie

Cookie是由服务器产生,然后通过response(Set-Cookie)对象写入浏览器,然后保存在浏览器端,在request下一次访问的时候,通过cookie的请求头,将cookie带回浏览器

cookie的相关方法

new Cookie(name,value):创建cookie对象

response.addCookie():写回浏览器

request.getCookies():获取cookie

c.setMaxAge(60*60);  设置有效时间,单位:s

c.setPath("/");  设置共享路径

注意:如果 将MaxAge 设置成(0),即表示 cookie 失效

案例:记录上一次的登录时间

@WebServlet(name = "CookieServlet",value = "/cookieServlet")
public class CookieServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
Cookie[] cookies = request.getCookies();
Cookie times = null;
Boolean flag = false;
Date date = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd-hh:mm:ss");
String format = simpleDateFormat.format(date);
if (cookies != null){
for (Cookie c:cookies) {
if (c.getName().equals("times")){
times = c;
flag = true;
break;
}
}
}

if (!flag){
response.getWriter().print("第一次登陆");
times = new Cookie("times", format);
response.addCookie(times);
response.getWriter().print(times.getValue());
}else {
response.getWriter().print(times.getValue());
times = new Cookie("times", format);
response.addCookie(times);
}

}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}

cookie能不能存储中文?

tomcat8以前 不可以存储中文和特殊字符

tomcat8及以后:可以存储中文 但是不能存储特殊字符 (空格)

cookie的特点和作用

1、cookie存储数据在客户端浏览器

2、cookie存储的数据由大小限制:4kb 同一个域名下的的总的cookie数量(20个)

转载于:https://www.cnblogs.com/wzhsc/p/10403190.html

  • 点赞
  • 收藏
  • 分享
  • 文章举报
ahao4311 发布了0 篇原创文章 · 获赞 0 · 访问量 144 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: