session技术
(1)什么是session?
浏览器访问服务器时,服务器会创建一个
对象(该对象称为session对象,该对象有一个唯一
的id号,称为sessionId),服务器在默认情况下,
会将这个sessionId以set-cookie消息头的方式
发送给浏览器(即使用cookie机制),浏览器会将
sessionId保存到内存里。当浏览器再次访问服务
器时,会将sessionId发送给服务器。服务器依据
sessionId就可以找到之前创建的session对象。
(2) 如何获得一个session对象?
a, HttpSession session =
request.getSession(boolean flag);
当flag为true:
服务器会检查请求中是否包含sessionId,
如果没有,服务器会创建一个session对象;
如果有,服务器依据sessionId去查找session
对象,如果找到了,则返回,找不到,创建
一个新的session对象。
当flag为false:
服务器会检查请求中是否包含sessionId,
如果没有,返回null;
如果有,服务器依据sessionId去查找session
对象,如果找到了,则返回,找不到,返回
null。
b,HttpSession session =
request.getSession();
该方法完全等价与request.getSession(true)。
(3) session的常用方法:
String session.getId(); //返回sessionId。
session.setAttribute(String name,
Object obj);
//name对应的值不存在,返回null。
Object session.getAttribute(String name);
session.removeAttribute(String name);
(4)session的超时
服务器会将空闲时间过长的session对象
删除掉,称之为session超时。
服务器会有一个缺省的超时限制(一般是
30分钟),这个缺省时间可以修改。
比如tomcat可以修改 conf/web.xml
30
该修改会影响到所有部署在这个服务器上的
应用,一般不要修改。
可以对某个应用,在web.xml文件中,添加
30
可以调用session.setMaxInactiveInterval(int
seconds)设置超时限制。
(5) session的删除
session.invalidate();
案例:
session验证
step1 在登录成功之后,向session对象里
绑订数据:
session.setAttribute("user",user);
step2 对于需要保护的资源(即必须要登录之
后才能访问的资源),添加验证代码:
Object obj = session.getAttribute("user");
if(obj == null){
//没有登录
response.sendRedirect("login.jsp");
}else{
//正常访问
}
2018年全国计算机等级考试调整方案
[考试动态]2017年11月20日全国计算机等级考试计算机基础及Photoshop应用试题答案汇总(6套)
[Photoshop应用]2017年2月3日全国计算机等级考试四级数据库系统工程师试题及答案汇总(22套)
[数据库工程师]2017年2月2日全国计算机一级考试模拟试题及答案300题
[WPS Office应用]2017年1月22日2017年3月全国计算机等级考试报名时间及报名入口汇总
[考试动态]2017年1月3日