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编程思想》、

时间: 2024-12-28 15:46:22

JavaWeb chapeter 5 Web应用程序状态管理的相关文章

web应用程序状态管理

一.Web应用程序状态形式1.表单隐藏字段2.cookie——把用户状态信息通过服务器发送到客户端浏览器中保存3.Session--会话跟踪,服务器为客户端创建并维护的用于存放客户状态数据的session对象4.URL地址重写.(一)cookie 1:Cookie原理: 服务器在响应请求时将一些数据以“键-值”对的形式通过响应信息保存在客户端,当浏览器再次访问相同的应用时,会将原先的Cookie通过请求信息带到服务器端. Cookie cookie = new Cookie("cookienam

2016.5.11(Web应用程序状态管理)

Web状态管理概述 HTTP协议使用的是无状态的连接 对容器而言,每一个请求都来自于一个新的客户 状态管理解决方案-隐藏字段 表单隐藏字段 <input type=”hidden” name=”session” value=”...”> 1:对用户在网站上的访问进行会话跟踪. 2:为服务器端程序提供预定义的输入. 3:存储动态产生的页面上下文信息. 状态管理解决方案-Cookie 把客户的状态信息保存在客户端浏览器 状态管理解决方案-Session 把客户的状态信息保存在服务器端 Sessio

第五章 Web应用程序状态管理

状态管理概述 Cookie Session URL重写 状态管理概述: HTTP协议使用的是无状态的连接 对容器而言,每一个请求都来自于一个新的客户 这里我们有四种方法来解决这个状态: a:表单隐藏字段 b:Cookie c:  Session d:  URL重写 我们就来一一介绍这四种方案: A:状态管理解决方案-表单隐藏字段 表单隐藏字段: <input type="hidden" name="session"  value=""/&g

Web应用程序状态管理(上)

一:概述Http协议使用的是无状态连接:客户浏览器与服务器建立连接-发出请求-得到 响应-关闭连接.话句话说,连接只针对一个请求/响应.由于连接不会持久保留 所以容器认不出做第二个请求的客户与做前一个请求的客户是否是同一个人. 对于容器而言,每个请求都来自于一个新的客户.在Web编程中共有4种方法,解决此问题.方法一:表单隐藏字段<input type='hidden' name='session' value='session/>该项表单的内容表示在提交表单时,指定的名称和值将包含在get和

应用程序状态管理①隐藏表单字段②cookie③session④URL重写

应用程序状态管理:服务器连接时无状态的,每次发送的请求对于服务器都是新的,而不知道两次是否是同一人发送的,为了解决应用程序状态,有4个常用方法:表单隐藏字段:动态生成的才有效cookie:记录在浏览器端,键值对,可见,不安全session:记录在服务器端,也是键值对,服务器维护需要大量资源,可以设定有效时限URL重写:在用户禁用cookie时,发送地址包含有会话ID Cookie是web服务器发送到客户端浏览器的简短文本信息,在第一次访问服务器后就由服务器向客户端浏览器发送,以后再访问同一个站点

JavaWeb:01——Web与HTTP协议简介

JavaWeb:01--Web与HTTP协议简介 Web的概念 什么是Web: Web是网络上使用最广泛的分布式应用架构. 旨在共享分布在网络上的各个Web服务器中的所有互相连接的信息. 三个特征: 用HTML来表达信息,以及建立信息与信息之间的链接. 用统一资源定位技术URL来实现网络上信息的准确定位. 用网络应用层协议HTTP来规范浏览器与Web服务器之间的通信过程. WEB的发展历程:略. HTTP协议简介 什么是HTTP协议: HTTP(Hypertext Transfer Protoc

分享一个web应用程序池管理工具

因为项目在联调阶段由于各种各样的原因需要重启应用程序池,而调试服务器基本都需要远登操作.同样的情况也会发生在线上,如果公司权限控制得比较严格,每次都要多部门的服务器权限申请的话有点麻烦, 所以抽点时间取巧做了个web版的管理工具(根据自己公司的企业文化酌情考虑是否线上应用). 功能:兼容iis6和iis7.提供文件操作,线程池操作以及站点操作.友情提示一下,如果你需要部署在线上环境,但是线上开放的端口都已经被占用的话,你可以将此程序挂靠在某个站点,创建成子应用和虚拟目录同样的层次操作. 图: 如

javaWeb项目中web.xml的xsd( XML Schemas Definition)文件

<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://java.sun.com/xml/ns/javaee" xmlns:javaee="http://java.sun.com/xml/ns/javaee" xml

Web端权限管理新增实用功能:批量增加操作,简单方便快速!

扩展了吉日嘎拉的Web端权限管理功能后,每次添加菜单倒没啥问题,毕竟菜单的数量有限,可是每增加一个模块.功能或者说权限控制点,就得针对各种常规操作,新增很多遍. 浪费时间,还容易出错.新增了一个字典表ItemsActionCategory,将常用的操作都记录到这个表,然后新增一个批量增加的功能,一键增加几十个操作控制. 保存后的效果如下,这里的规则:模块.操作,中间用.号连接. 一切从实用出发,减少重复劳动,节省时间,多出来的时间可以去多赚钱+多陪家人.