zoukankan      html  css  js  c++  java
  • JavaWeb chapeter 5 Web应用程序状态管理

    1、  HTTP协议使用的是无状态连接,对容器而言,每一个请求都来自于一个新的客户。

    2、   

    • html表单隐藏字段;对用户在网站上的访问进行会话跟踪、为服务器端程序提供预定义的输入、存储动态产生的页面上下文信息;不足:只支持动态页面。
    • Cookie:
    • Session:
    • URL重写:

    3、  cookie:

    Web服务器为客户端浏览器并保存的简短文本信息;

    客户端浏览器向服务器发送请求;服务器发送cookie给客户端;客户端再次发送请求给服务器;客户端返回cookie服务器端。

    缺点:数据保存在客户端,用户可能会禁用cookie,导致数据失效。

    cookies.setMaxages(毫秒数)可以设置cookies的最大生存时间。

    response.addCookies()方法可以将cookies添加到响应中返回给客户端。

    服务器在响应请求时,可以将一些数据以“键-值”对的形式通过响应信息保存在客户端。

    浏览器再次访问相同的应用时,会将原先的cookie通过请求信息带到服务器端。

     

    4、  Session 服务器为客户端创建并维护的用于存放客户状态数据的对象。

    用户可能会禁用Cookie,这时候可以重写URL地址来解决。

    服务器可以为客户端创建并维护一个Session对象,用于存放数据,在创建Session对象的同时,服务器将会为该Session对象产生一个唯一编号,这个编号称之为SessionID;

    服务器以Cookie的方式将SessionID存放在客户端,当浏览器再次访问该服务器时,会将SessionID作为Cookie信息带到服务器,服务器可以通过该SessionID检索到以前的Session对象,并对其进行访问;

    isNew(),setMaxInactiovInterval(秒),invalidate();

     

    Session对象是某个Servlet调用HttpServletRequest.getSession()这样的语句时才被创建;

    如果你不想创建一个新的会话,可以调用getSession(false),这样要么得到null,要么得到一个已经有的HttpSession;

    Session对象是保存在服务器端,浏览器关闭时并不意味着Session对象被删除;

    Session销毁的三种情况:

    • Session的最大不活动间隔时间超时;
    • 服务器关闭;
    • Session.invalidate()手动强制关闭Session

    5、  应当尽量使用维护时间段的域对象,或者在不使用后利用removeAttribute()方法销毁绑定的对象;

    6、  当Cookie不能工作时,容器就会求助于URL重写,对HTTP响应中发送的所有URL完成编码;显示使用了URL编码后,容器会首先尝试使用Cookie完成会话管理,只有当Cookie方法失败时才会使用URL重写;在向客户返回第一个响应时,会同时尝试设置Cookie和URL重写两种做法。

    7、  URL重写是容器自动完成的,但需要我们对URL进行编码才有效

    《Java核心技术》、《Java编程思想》、

  • 相关阅读:
    发布在Xilinx 嵌入式系统中文论坛的旧帖子
    【分享】MPSoC,XEN虚拟机运行裸核应用程序(baremetal, standalone)的中断延迟
    【分享】 在Vivado里关闭R5/GPU,降低Xilinx MPSoC的功耗
    python实现单链表
    Flink 作业问题分析和调优实践
    flink 有状态 udf引发的大坑一
    flink checkpoint 在 window 操作下 全局配置失效的问题
    python实现十大经典排序算法
    Flink on yarn 常见错误
    搭建Spark所遇过的坑
  • 原文地址:https://www.cnblogs.com/littlejava/p/5618711.html
Copyright © 2011-2022 走看看