【jsp笔记】状态管理

1.cookie

(1)什么是cookie

    ①是一种客户端的状态管理技术。

    ②当浏览器访问服务器的时候,服务器可以将少量数据以set-cookie消息头的方式发送给浏览器,浏览器会将这些数据保存下来;当浏览器再次访问服务器时,会将之前保存的这些数据以cookie消息头的方式发送给服务器。

(2)创建一个cookie

  //name:cookie的名称,value:cookie的值

Cookie c = new Cookie(String name,String value);

response.addCookie(c);

(3)查询cookie

//如果没有任何cookie,返回null

Cookie[] cookies = request.getCookies();

String cookie.getName()//返回cookie的名称

String cookie.getValue()//返回cookie的值

(4)编码

cookie的值或者名称只允许出现合法的ASCII字符串,如果是中文,需要将中文转换成ASCII字符串

String URLEncoder.encode(String str,String code);//编码

String URLDecoder.decode(String str,String code);//解码

(5)cookie的生存时间

默认情况下,浏览器会将cookie保存在内存空间中,只要浏览器不关闭,cookie一直存在

cookie.setMaxAge(int seconds)

当seconds>0时,浏览器会将cookie保存到硬盘上,当cookie保存的时间超过seconds时,浏览器会将cookie删除

当seconds<0时,缺省值,浏览器会将cookie保存在内盘中

当seconds=0时,删除cookie,比如要删除名称为userid的cookie,

Cookie c = new Cookie("userid","");

c.setMaxAge(0);

response.addCookie(c);

(6)cookie的路径问题

a,路径问题是指:浏览器在向服务器上的某个地址发请求时,会比较请求地址与cookie的路径是否匹配,只有匹配的cookie才会发送。

b,cookie有一个默认的路径,值等于创建该cookie的组件的路径,比如,/web06/app01/addCookie.jsp,则该cookie的默认路径是"/web06/app01".

c,匹配规则

只有当访问的地址是cookie的路径或者是子路径时,浏览器才会将cookie进行发送。

比如:cookie的路径时“”web06/app01“”

则访问:/web06/app01/findcookie.jsp---OK

              /web06/app01/sub/findcookie.jsp---OK

         /web06/findcookie.jsp----error

d.可以调用cookie.setPath(String path)来修改默认的路径,一般会设置cookie.setPath("/appname");

/appname可以用<%=request.getContextPath()%>

(7)cookie的限制

a,cookie可以被用户禁止

b,cookie不安全,因为cookie保存在浏览器端,对于敏感的数据,需要加密处理。

c,cookie只能保存少量的数据(大约是4k左右)

d,cookie的个数也有限制(大约300个左右)

e,cookie只能保存字符串

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值