-
销毁:1.关闭服务器;2.关闭浏览器一段时间直到session过期;3.不关闭浏览器,session过期
查看全部 -
HttpSession的创建与销毁
查看全部 -
ServletContext的创建与销毁
查看全部 -
监听域对象自身的创建和销毁的事件监听器
查看全部 -
监听器的启动顺序
查看全部 -
web监听器
查看全部 -
监听器用途查看全部
-
监听器查看全部
-
、监听绑定到HttpSession域中的某个对象的状态的事件监听器<br>
钝化:1,由Session.StandardManager:Tocat服务器关闭或Web应用程序被重新加载时把当前内存中的Session序列化到文件或数据库中。<br>
2,由Session.Persistentmanager:除了1,中的两种,第3种可以将不常用的Session序列化到文件或数据库中。<br>
(默认Tocat两种钝化驱动:org.apache.Catalina.FileStore和org.apache.Catalina.JDBCStore)<br>
活化:服务器启动是把钝化的Seesion反序列化到服务器上
前提:先绑定session<br> 绑定就是session.setAttribute()把属性保存到Session对象当中,解除绑定:session.getAttribute()
(1)HttpSession【Binding】Listener //绑定、解除绑定<br>
a) 创建一个javabean类,实现接口【HttpSessionBindingListener,】无需到Web.xml注册<br>
b) 2个方法<br>
1) void valueBound 绑定 JSP: request.getsession.setattribute("ab",new javabean全名);<br>
2) void valueUnbound 解除绑定 JSP: request.getsession().removeAttribute("ab")<br>
(2)HttpSessionActivationListener //钝化(持久化到存储设备时)、活化(从存储设备恢复)<br>
a) 在已经创建的javabean类,实现接口HttpSessionActivationListener无需到Web.xml注册<br>
b) 2个方法<br>
1) void sessionWillPassivate 钝化 JSP: 无需写,前提javabean进行绑定了<br>
2) void sessionDidActivate 活化 JSP:request.getSession.getAttribute("ab");<br>
需要【活化必须】再继承一个接口:【Serializable】public void valueBound(HttpSessionBindingEvent arg0) {
System.out.println("valueBound:" + arg0.getName());
}
public void valueUnbound(HttpSessionBindingEvent arg0) {
System.out.println("valueUnbound:" + arg0.getName());
}
// 活化
public void sessionDidActivate(HttpSessionEvent se) {
System.out.println("sessionDidActivate:" + se.getSource());
}
// 钝化
public void sessionWillPassivate(HttpSessionEvent se) {
System.out.println("sessionWillPassivate:" + se.getSource());
}
要想实现钝化和活化,除了需实现HttpSessionActivationListener接口还需要实现Serializable接口。查看全部 -
1
查看全部 -
1
查看全部 -
1
查看全部 -
@init.jsp <% request.setAttribute("requestName", "requestValue"); request.getSession().setAttribute("sessionName", "sessionValue"); request.getSession().getServletContext().setAttribute("applicationName", "applicationValue"); //request.setAttribute("requestName", "requestValue");//只有这种办法可以调用request的replace。 //request.removeAttribute("requestName");//可以调用request的remove。 %> 初始化值的界面 @destory.jsp <% request.removeAttribute("requestName"); request.getSession().removeAttribute("sessionName"); request.getSession().getServletContext().removeAttribute("applicationName"); %> 销毁的界面 Ps1: request.getAttribute的值获得是从request.setAttribute的值,不能获取类似www.immoc.com/username=imooc的参数值; request.getParameter是请求的参数值,如www.immoc.com/username=imooc。 Ps2: request——request request.getSession()——session request.getSession().getServletContext()——application
查看全部 -
ServletRequest的事件监听器 实现ServletRequestListener接口用于监听它的创建和销毁事件 一个ServletRequest可以注册多个ServletRequestListener接口, 有两个事件处理方法: requestInitialized方法: public void requestInitialized(ServletRequestEvent sre) request创建时调用 参数ServletRequestEvent可以获取ServletRequest对象 ServletRequest sr = sre.getServletRequest() 进而获取初始化参数:sr.getInitParmeter("") requestDestroyed方法: public void requestDestroyed(ServletRequestEvent sre) request销毁时调用 ServletRequest的主要用途: 读取参数 记录访问历史 request监听的是用户的每一个访问请求
查看全部 -
<session-config> <!-- 设定超时销毁时间(分钟) 然而这个时间并不精确,而且当为0的时候表示无超时销毁--> <session-timeout>1</session-timeout> </session-config> session 失效的三种场景 1.关闭服务器 2.关闭浏览器,一段时间后,session自动消失 3.seesion 超时 HttpSession的创建和销毁 实现HttpSessionListener接口用于监听它的创建和销毁事件 一个HttpSession可以注册多个HttpSessionListener接口, 一个web应用中可以有多个HttpSession对象 有两个事件处理方法: sessionCreated方法: public void sessionCreated(HttpSessionEvent se) session创建时调用 sessionDestroyed方法: public void sessionDestroyed(HttpSessionEvent se) session销毁时调用 HttpSessionListener的主要用途: 统计在线人数 记录访问日志,记录访问时间、访问的ip /** * 销毁session * 1.关闭服务器 * 2.关闭浏览器 * 3.不关闭浏览器,session超时 */ 不关闭浏览器,session超时 可以在web.xml配置session超时的时间 <session-config> <session-timeout>0</session-timeout> </session-config> 0:session没有超时的限制 1:session超时1分钟后销毁,但是并不是准确的一分钟
查看全部
举报