会话跟踪
1、实现会话跟踪的方式
(1)手动实现
【1】使用浏览器的cookie跟踪;
【2】URL重写,在后面加上参数,实现会话跟踪;
【3】隐藏表单的字段,在input标签的type属性中设置为hidden,用户看不见,但是可以以此实现会话跟踪;
(2)自动实现
【1】使用servlet实现的session跟踪会话;
2、使用session
【1】获取会话对象的方法:
(1)下面这个方法,不传入参数,如果session不存在,则自动创建一个;
HttpSession my = new request.getSession();
(2)传入参数false,如果session不存在,不创建,返回null ;
HttpSession my = new request.getSession(false);
【2】获取session的id
my.getId();
【3】在会话对象中存入、读取、移除信息;
(1)存入:
setAttribute(String,Object);
my.setAttribute(“参数键”,值);
(2)获取数值:
my.getAttribute(“参数键”);
(3)删除:
my.removeAttribute(“参数键”);
【4】废弃会话:
(1)被动方式:经过一定时间,销毁会话对象;
实现方式有以下几种
1、获取对象后,直接设置:
//参数单位是秒
my.setMaxInactiveInterval(1800);
2、在web应用目录下,配置web.xml文件,直接添加下面配置:
配置时间的单位是分钟。
<session-config>
<session-timeout>30</session-timeout>
</session-config>
3、在tomcat目录下,配置conf目录下的web.xml,配置内容如下:
<session-config>
<session-timeout>30</session-timeout>
</session-config>
(2)主动方式:获取对象后,直接设置废弃;
my.invalidate();
【5】URL重写:
当浏览器不支持cookie时候,无法跟踪会话,那么需要对URL重写来实现会话跟踪,原理是:在URL后面将sessionID作为参数附在URL后面。
两种形式:(返回值是string类型)
response.encodeURL(String url);
response.RedirectURL(String url);