-
三种监听器增加删除更新查看全部
-
@index.jsp <%=request.getSession().getAttribute("currentUser") %> @init.jsp request.getSession().setAttribute("currentUser", new com.imooc.entity.User()); @destory.jsp request.getSession().removeAttribute("currentUser"); Ps:要想实现钝化和活化,除了需实现HttpSessionActivationListener接口还需要实现Serializable接口。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
@User.java public class User implements HttpSessionBindingListener,HttpSessionActivationListener,Serializable { private static final long serialVersionUID = 1L; private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } 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()); } Ps:状态:session中对象的状态,而不是监听器状态。查看全部
-
HttpSession中的对象状态: (1)绑定:通过setAttribute保存到session对象当中; (2)解除绑定:removeAttribute; (3)钝化:将session对象持久化到存储设备上; (4)活化:将session对象从存储设备上进行恢复。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
//第一次Init requestInitialized:null Request_attributeReplaced:org.apache.catalina.ASYNC_SUPPORTED Request_attributeAdded:requestName Session_attributeAdded:sessionName Application_attributeAdded:applicationName requestDestroyed //第二次Init requestInitialized:null Request_attributeReplaced:org.apache.catalina.ASYNC_SUPPORTED Request_attributeAdded:requestName Session_attributeReplaced:sessionName Application_attributeReplaced:applicationName requestDestroyed Q:为何request第二次是add不是replace? 答:因为在第一次的结尾已经销毁了。只有一种方法可以调用replace,见init.jsp。 //点击Destory requestInitialized:null Request_attributeReplaced:org.apache.catalina.ASYNC_SUPPORTED Session_attributeRemoved:sessionName Application_attributeRemoved:applicationName requestDestroyed Q:为何request没有remove? 答:因为每次request都会销毁。但也可以remove——request,见init.jsp。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
@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 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
监听对象查看全部
-
监听器-》过滤器-》Servlet查看全部
-
监听器监听顺序按web.xml注册顺序查看全部
-
监听器用途查看全部
-
【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
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监听的是用户的每一个访问请求 Ps:别忘了监听器的web设置。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
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分钟后销毁,但是并不是准确的一分钟 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
@ServletContext的创建和销毁 实现ServletContextListener接口用于监听它的创建和销毁事件 一个项目中可以有多个ServletContextListener,但是只有一个ServletContext对象 @有两个事件处理方法: 1、public void contextInitialized( ServletContextEvent sce ) ServletContext创建时调用 参数 ServletContextEvent 事件对象,可以获取ServletContext对象以及一些初始化参数 例如: 获取ServletContext对象: ServletContext sc = sce.getServletContext(); 获取初始化参数:sc.getInitParmeter("参数名称"); 初始化参数在web.xml中配置: <context-param> <param-name>initParam</param-name> <param-value>imocc</param-value> </context-param> 也可以往ServletContext里放一些值进去, sc.setAttribute("name",obj), 然后在其它地方获取getAttribute("name") 2、public void contextDestroyed( ServletContextEvent sce ) ServletContext销毁时调用 主要用于数据库链接关闭时释放一些资源,以免过度的占用。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
举报
0/150
提交
取消