Jsp状态管理-cookie

http协议的无状态性

  浏览器再次发生请求,服务器不能识别是原来那个浏览器,服务器不会去记,就是无状态协议(这还是个协议?意思是记得的话反倒不好?所以要有这个协议?可为什么又需要session、cookie让服务器记得?)

Cookie

保存用户状态的两个机制

  session

  cookie

session是会话,客户端的请求携带一个id,服务器识别id确定用户身份。这么看的话,这个id是怎么生成的?根据ip?想要确定是同一个用户,只能是用IP了吧?IP确定是这台电脑,然后不同的浏览器可能还有不同,这两点可以确定一个会话id?

 

cookie就是web服务器保存在客户端的一些信息。比如浏览过的网页、比如一件登录过保存的用户名。

(服务器保存在客户端,怎么理解?保存cookie是服务器的行为,但是保存在了客户端而不是服务器上?)

这cookie是 request的方法还是response的方法?

不对,这个请求request是读取,客户端读取cookie。然后服务器端response是写入。也就是上面说的,服务器保存在客户端?

Cookie是以文本文件的方式保存的,其实就是字符串类型,所以这些方法的返回值或者参数一般也是字符串。

Cookie在登录上的使用

Login.jsp是登录界面,dologin.jsp是处理、保存cookie页面。

 

如果用户勾选了记住登录状态,isUseCookie(是  “十天内记住我的登录状态”   按钮的命名id)的值一定不为空,且长度大于0.

 

此时需要用cookie保存用户名和密码,并且设置其生成期限为10天(86400秒)。

Cookie的构造方法是键值对的方式:

  new Cookie(“username”, username);

  response.addCookie()保存。

(这段代码好像是很通用)

Else里是如果用户没有勾选,就把已有的cookie清空、期限设置为0.

 

 

这不符合显示吧,如果我已经勾选过了,那下一次登录时,比如第二天,我肯定不用勾选了。但你应该还要保存9天,结果我没选,你直接清空了,那我第三天登录就不行了。这和我第一次选了保存10天就不是一个意思啊?

还是说第一次勾选了,后面再次登录,这个勾选默认还是有的。但是如果有,那不是从当前时间开始再次保存10天?那就是一直保存下去了,和我只想保存10天还是不一样?

 

所以这个到底什么意思???

 

 勾选按钮isUseCookie:

 <tr>
           <td colspan="2"><input type="checkbox" name="isUseCookie" checked="checked"/>十天内记住我的登录状态</td>
 </tr>

 

这里设置这个选择的时候,默认就是勾选了的(上面的页面里可以看出是勾选了的)

(为什么,这里也没有设置值的地方啊,为什么就默认是勾选?)

   难道是  checked=“checked”??如果写成checked=“check”就是不勾选状态??

  修改代码结果check是未定义。。。难道所有的cookie默认都行勾选的?

 

去查了  checkbox,是HTML里DOM的选择框对象。不过都是一个意思吧。

属性描述W3C
disabled设置或返回 checkbox 是否应被禁用。Yes
checked设置或返回 checkbox 是否应被选中。Yes
defaultChecked返回 checked 属性的默认值。Yes
form返回对包含 checkbox 的表单的引用。Yes
name设置或返回 checkbox 的名称。Yes

看来是checked属性的值就只有“checked”。如果不写这个属性,那就默认是不勾选。如果写了就只有勾选一个值??

 

此时默认是选了的,如果以前登录并勾选保存了,那这里会直接调出以前的值。

但是如果调出以前的,那还是默认勾选了,那不是又重新算时间了?

一直都是按十天算,那只要十天内再次登录,就可以一直保存下去了。所以我不太明白这个地方?

 

这里是为了解决如果输入有中文的乱码问题

 

转载于:https://www.cnblogs.com/youwuyi/p/10239811.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值