session(会话)
来源:互联网 发布:淘宝如何改价钱 编辑:程序博客网 时间:2024/05/22 10:32
session(会话)
1.session(会话)
(1)session是什么?
a,session是服务器端的状态管理技术
b,当浏览器访问服务器时,服务器会创建一个session对象(该对象有一个唯一的id号,称之为sessionId),接下来,服务器在默认情况下,会使用set-cookie消息头将这个sessionId发送给浏览器;浏览器会将这个sessionId保存下来(内存);当浏览器再次访问服务器时,会将sessionId使用cookie消息头发送给服务器,服务器依据这个sessionId就可以找到之前创建的session对象。
(2)如何获取一个session对象
1)方式一
//HttpSession是一个接口
HttpSession s = request.getSession(boolean flag);
当flag = true时:
先查看请求当中有没有sessionId,如果没有,则创建一个session对象;如果有sessionId,则依据该sessionId查找对应的session对象,如果找到了,则返回,找不到,则创建一个新的session对象。
当flag = false:
先查看请求当中有没有sessionId,如果没有,返回null;如果有sessionId,则依据该sessionId查找对应的session对象,如果找到了,则返回,找不到,返回null。
2)方式二
HttpSession s = request.getSession();等价于 request.getSession(true);
(3)常用的方法
//获得sessionIdString getId()
//绑定一个对象到session对象上setAttribute(String name,Object obj);
//获得绑定对象,如果不存在,返回nullObject getAttribute(String name);
//解除绑订removeAttribute(String name);
(4)session超时
a.什么是session超时服务器会将空闲时间过长的session对象删除掉。
b.缺省的超时时间服务器缺省的时间限制一般是30分钟。
<session-config><session-timeout>30</session-timeout>
</session-config>
修改之后需要重启服务器。c. setMaxInactiveInterval(int seconds);
(5)删除session
session.invalidate();2.session案例
(1)session验证
session验证经常用于保护一些需要登录之后才能访问的资源。比如,只有登录成功之后,才能访问main.jsp
step1,登录成功之后,绑定一些数据到session对象上。比如,session.setAttribute("user",user);
step2,对于需要保护的资源,添加session验证的代码。
比如,Object obj = session.getAttribute("user");
if(obj == null){//没有登录成功或者session超时
response.sendRedirect("login.jsp");
}
(2)验证码
案例代码链接:http://blog.csdn.net/u011637069/article/details/498209953.session小结
相对于cookie,session的优点是安全,可以保存大量的数据,可以保存的数据类型更丰富。
cookie是将状态(即数据)保存在浏览器端,而session保存在服务器端,如果访问量很大,使用session机制会占用大量的内存空间。
- session会话
- Session会话
- Session 会话
- Session 会话
- Session 会话
- Session 会话
- Session 会话
- Session-会话
- session会话
- session(会话)
- Session 会话
- 会话 session
- PHP 会话 (php Session)
- 什么是会话session?
- 浅谈session会话跟踪
- 会话 (session)
- 保存会话数据--Session:
- Session会话关闭
- 杭电1065 I Think I Need a Houseboat
- java递归解迷宫 求所有解
- 关于map::erase的使用说明
- Apache Lucene初探
- 电阻和电容精度表示方法
- session(会话)
- 问题3:解决直接输出字典的内容无法显示中文的问题
- mongodb数据库分片
- 巧用nc,模拟GET和POST
- Java每日登陆 和 月卡功能
- Maven之——如何把maven项目转成web项目
- Android四大组件之BroadcastReceiver
- Enterprise Architect 视频教程地址
- C 编码转换 ,包括ANSI,UNICODE,UTF-8,UniBigEnd(含源码下载)