会话概述
如同一次电话通话,多次交谈就是请求和响应,一旦断开就结束了
会话中要解决的问题,多次请求数据的的保持问题
客户端技术Cookie
-
1、HTTP协议的消息头
请求消息头:Cookie 客户端向服务器端传递信息
响应消息头:Set-Cookie 服务器端向客户端传递信息
-
2、Cookie详解:
-
属性:
name:Cookie的名称,必要的属性
value:Cookie的取值(不能为中文),必要的属性
-------------------以下为可选属性
path:Cookie的路径
默认值就是写cookie的那个资源的访问路径
比如:http://localhost:8080/day09_0... path就是/day09_00_cookie/servlet/
-
- 注意:
- 如果一个存在浏览器缓存中的cookie的路径是/day09/servlet/,当访问http://localhost:8080/day09/CookiePathDemo1时,浏览器根本不带Cookie给服务器。浏览器比对的是cookie的路径和当前访问的资源的路径。
- 浏览器满足一下条件就会带cookie给服务器:
- 当前访问的地址的路径.startWith(已存cookie的路径)。
- 即:如果一个Cookie的路径设置为了当前应用,说明访问该网站的任何资源时浏览器都带该cookie给服务器。(开发中经常做的)
- maxAge:Cookie的最大生存时间。默认是在浏览器的内存中。
- domain:Cookie的域名(网站)。默认就是写cookie的那个资源所属的网站。http://localhost:8080/day09_00_cookie/servlet/CookieDemo1域名就是localhost
- version:版本号
- comment:注释
把Cookie写给客户端:
HttpServletResponse.addCookie(Cookie c):实际上就是向客户端发送了一个响应消息头。
注意:客户端只能保存一个网站最多20个Cookie数据,总共最多300个。每个Cookie的大小不能超过4kb。
服务器端获取客户端带来的Cookie:
Cookie [] HttpServletRequest.getCookies();
注意:domain+path+name唯一确定一个Cookie。
服务器端技术HttpSession
HttpSession是一个域对象
HttpSession的原理(借助cookie)
HttpSession.getSession() :先查(按照session的id来查), 没有再创建
-
案例
简单购物车 用户登录和验证码验证 防止表单的重复提交
客户端禁用cookie后会话数据保持问题
URL重写
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。