Web状态管理概述 :
HTTP协议使用的是无状态的连接
对容器而言,每一个请求I都来自于一个新的客户
状态管理解决方案——隐藏字段:
表单一隐藏字段:
<input type=”hidden” name=”session” value=”...”>
1:对用户在网站上的访问进行会话跟踪。
2:为服务器端程序提供预定义的输入。
3:存储动态产生的页面上下文信息。
状态管理解决方案-Cookie:
把客户的状态信息保存在哪里?
客户端吗??
Cookie原理:
服务器在响应请求一些数据以“键——值”对的形式,通过响应信息保存在客户端
Cookie cookie = new Cookie("cool", "tiger!"(注:不要将其用于特别敏感的信息)); response.addCookie(cookie);
在Serlvet中管理Cookies :
Servlet中提供了如下一系列操作Cookie的API
—— Cookie(name, value):构造方法用于创建一个或多个Cookie
—— setMaxAge(int lifetime):设置Cookie的过期时间(以秒为单位)。默认值为负值(Cookie将在浏览器关闭时过期)
—— getMaxAge():获取Cookie的过期时间。
—— getName():获取Cookie的名字
—— setValue(String value):指定Cookie的值。
—— getValue():获取Cookie的值
在Servlet中使用Cookie:
要将Cookie发送到客户端,Servlet应该按照下列的操作步骤执行:
—— 创建一个或多个Cookie,使用构造方法指定Cookie的名字和值
—— 使用setValue方法为Cookie设置属性值
—— 使用HttpServletResponse对象的addCookie()方法将Cookie插入到响应头中
要读取客户端传入的Cookie,Servlet执行下列操作步骤:
—— 使用HttpServletRequest对象的getCookies方法返回一个Cookie对象数组
—— Servlet遍历该数组(调用getName()方法),直到找到与名称相匹配的Cookie值