zoukankan      html  css  js  c++  java
  • 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”。如果不写这个属性,那就默认是不勾选。如果写了就只有勾选一个值??

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

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

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

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

  • 相关阅读:
    设计并实现一个漂亮的结婚小站
    Android新特性--ConstraintLayout完全解析
    Android之MainActivity类
    Android app启动activity并调用onCreate()方法时都默默地干了什么?
    Android Studio开发-高效插件强烈推荐
    Android SDK Manager详解
    Android Studio中如何设置颜色拾色器工具
    独立的android开发者开发app如何盈利?
    Android Studio开发常用快捷键
    最强 Android Studio 使用小技巧和快捷键总结
  • 原文地址:https://www.cnblogs.com/youwuyi/p/10239811.html
Copyright © 2011-2022 走看看