-
flag为 true:服务器查看客户端请求中是否有sessionId,如果没有,则创建一个session对象,返回该对象的引用。如果有,要查看对应的session对象是否存在,如果存在,则返回该对象的引用,若不存在,则创建一个session对象。
-
flag为 false:服务器查看请求中是否有sessionId, 如果没有,返回null。如果有,要查看对应的session对象是否存在,如果存在,则返回该对象的引用,若不存在,返回null。
-
getSession()中没有参数等价于getSession(true)
示例:
HttpSesssion sess1 = request.getSession();
HttpSesssion sess2 = request.getSession(false);
注意:jsp页面默认情况下,它是<%@ page session=“true”%>的,即默认情况下,访问jsp,一定会得到session对象。
常用方法
===============================================================
String session.getId()
获取SessionId
session.setAttribute(String name,Object obj);
绑定某个对象
Object session.getAttribute(String name)
显示某个用户的访问次数,如果找不到返回null
session.setMaxInActiveInterval(int seconds)
设置最大不活动时间
设置默认超时限制
===================================================================
针对整个服务器或者某个特定的应用设置超时限制:
web.xml
<session-config>
<session-timeout>30</session-timeout>
</session-config>
Session验证
====================================================================
登录成功以后,向session中写入数据: session.setAttribute(数据);
在需要受保护的页面添加如下代码:
session.getAttribute(数据);
如果为空,说明用户登录失败,不能访问,一般会重定向到登录页面。
<%@include file=""%>
jsp引擎在将.jsp文件转换成.java文件时,将对应的文件的内容插入到指令所在的位置。
验证码
==============================================================
使用Servlet生成图片
使用java.awt.*的相应类生成一个图像 image= ;
压缩图像成jpg格式:
response.setContentType("image/jpeg");
输出:
OutputStream out = response.getOutputStream();
(2)比较session中存放的checkcode与客户端传送给来的checkcode
用户禁止cookie,如何实现sessionId的跟踪
======================================================================================
用户禁止cookie,还可以使用session机制:可以使用URL重写机制来解决。
(1)什么是URL重写:通过修改URL地址,在其后添加sessionId,来实现sessionId的跟踪。
(2)URL重写注意事项:即在访问某个需要session机制支持的组件时,不要直接在浏览器地址栏输入地址,而通过服务器生成的URL地址来访问。
(3)方法