javaweb中的cookie

1,问题:因为http协议是无状态的,所以当用户的页面发生刷新或者跳转的时候,用户的信息就不会被保存下来,比如说你在页面1点击购买了一个商品,但是由于http的无状态性,当你点击付款的时候,进入页面,但是浏览器已经不记得你买的是什么商品了
2,解决:这时候cookie就能帮上忙了,cookie由服务端生成,能够一直保存在客户端,从而每次用户发出请求的时候,服务器就能获取到用户上次的状态了。
3,java中的实现
下面这段是服务器端的代码,当你发送发送一个请求到这个jsp页面的时候,服务器端就会将你的数据放在一个cookie中,之后响应给客户端,客户端就能够将这个cookie保存起来,这个过程中,又会牵扯到cookie的生命期这个问题,我们可以通过setMaxAge(int time)这个方法来限制客户端cookie生存的时长,参数 time单位是秒

  1. time>0,表示cookie保存在浏览器端硬盘里time长的时间
  2. time=0,表示立即销毁浏览器中指定的cookie
  3. time<0,是默认情况,cookie保存在内存中,浏览器关闭也就销毁了
<%--
  Created by IntelliJ IDEA.
  User: zed
  Date: 2016/3/16
  Time: 20:15
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title></title>
</head>
<body>
  <%
     //生成cookie,响应给客户端
    System.out.println("生成cookie");
    Cookie cookie1 = new Cookie("aaa","AAA");
    cookie1.setMaxAge(60*60);//保存在硬盘1分钟
    response.addCookie(cookie1);
    Cookie cookie2 = new Cookie("bbb","BBB");
    response.addCookie(cookie2);

  %>
</body>
</html>
<%--
  Created by IntelliJ IDEA.
  User: zed
  Date: 2016/3/16
  Time: 20:15
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title></title>
</head>
<body>
  <%
    //获取了浏览器中的cookie
    String username="zhangsan";
    Cookie[] cookies = request.getCookies();
    if(cookies!=null&&cookies.length>0){
      for(Cookie c:cookies){
        if(c.getName().equals("username")){
          username = c.getValue();
        }
      }
    }
  %>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值