没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
还是由于 HTTP 协议连接的无状态性,才使得 session 的不得已而产生。既然 Web 应用并不
了解有关同一用户以前请求的信息,那么解决这个问题的一个办法是使用 Servlet/JSP 容器
提供的会话跟踪功能,Servlet API 规范定义了一个简单的 HttpSession 接口,通过它我们可
以方便地实现会话跟踪。
HttpSession 接口提供了存储和返回标准会话属性的方法。标准会话属性如会话标识符、
应用数据等,都以“名字-值”对的形式保存在服务器端。也就是说,HttpSession 接口提供了
一种把对象保存到内存、在同一用户的后继请求中提取这些对象的标准办法。在会话中保
存数据的方法是 setAttribute(String s, Object o) , 从会话提取原 来所保存对象 的方法是
getAttribute(String s)。
在服务器端,每当新用户请求一个使用了 HttpSession 对象的 JSP 页面,Servlet/JSP 容器
除了发回应答页面之外,它还要向浏览器发送一个特殊的数字。这个特殊的数字称为“会话
标识符”,它是一个唯一的用户标识符。此后,HttpSession 对象就驻留在内存之中(这当然
是在服务器端),等待同一用户返回时再次调用它的方法。
在客户端,浏览器保存会话标识符,并在每一个后继请求中把这个会话标识符发送给服
务器。会话标识符告诉 JSP 容器当前请求不是用户发出的第一个请求,服务器以前已经为
该用户创建了 HttpSession 对象。此时,JSP 容器不再为用户创建新的 HttpSession 对象,而
是寻找具有相同会话标识符的 HttpSession 对象,然后建立该 HttpSession 对象和当前请求的
关联。
会话标识符以 Cookie 的形式在服务器和浏览器之间传送,标准会话属性在服务器端也是
以会话的形式存在的,并且这个 Cookie 的生命周期只是临时的,即会话结束后就自动消失,
没有为它指定固定的生命周期,因此有人说 session 是基于 Cookie 的技术。另外,如果客
户端不支持 Cookie,运用 url 重写机制来保证会话标识符传回服务器。
还有一点,session 不像 Cookie 那样拥有路径访问的问题。session 对应的是窗口,只要
是同一个客户端或者是存在父子关系的多个客户端,同一个 application 下的 servlet/JSP 可
以共享同一个 session。当然,session 和窗口的对应关系也是受时间限制的,至于多长时间,
可以在服务器的 conf/web.xml 中配置 30
实例代码:
1.设置 session 和 显示 session
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws
ServletException, IOException {
resp.setContentType("text/html");
PrintWriter out=resp.getWriter();
//String title="Session Tracking Example";
HttpSession session=req.getSession(true);//如果没有该 session,则自动创建一个新的
String heading;
资源评论
qq_22677129
- 粉丝: 0
- 资源: 22
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功