HttpSessionListener 监听器事件配置及注入bean ssm框架

原创 2018年04月16日 19:04:36

当一个浏览器第一次访问网站的时候,J2EE应用服务器会新建一个HttpSession对象 ,并触发 HttpSession创建事件 ,如果注册了HttpSessionListener事件监听器,则会调用HttpSessionListener事件监听器的sessionCreated方法。相反,当这个浏览器访问结束超时的时候,J2EE应用服务器会销毁相应的HttpSession对象,触发 HttpSession销毁事件,同时调用所注册HttpSessionListener事件监听器的sessionDestroyed方法

1.创建SessionCounter 这个类,并注入一个bean:

@Service
public class SessionCounter implements HttpSessionListener {  
	/*@Autowired   无法注入通过WebApplicationContextUtils 得到Spring容器的实例。根据bean的名称返回bean的实例。
	private UserService userService;*/
    private static int activeSessions =0;  
    
    /* Session创建事件 */  
    public void sessionCreated(HttpSessionEvent se) {  
      ServletContext ctx = se.getSession( ).getServletContext( );  
      System.out.println("session创建");
    }  
    
   /* Session失效事件 */  
    public void sessionDestroyed(HttpSessionEvent se) {  
      ServletContext ctx=se.getSession().getServletContext();  
      HttpSession sess = se.getSession();
        Users u=new Users();
        u.setId((Integer) sess.getAttribute("id"));
		System.out.println((Integer) sess.getAttribute("id")+"aaaaaaaaa"+sess.getAttribute("username"));
		u.setLoginState(2);
		//通过抽象的私有方法得到Spring容器中Bean的实例。
		UserService userService=(UserService)this.getObjectFromApplication(sess.getServletContext(), "userServiceImpl");
		userService.updateUsers(u);
		System.out.println(u.getLoginState().toString());
  
   }

    /** 
     * 通过WebApplicationContextUtils 得到Spring容器的实例。根据bean的名称返回bean的实例。 
     * @param servletContext  :ServletContext上下文。 
     * @param beanName  :要取得的Spring容器中Bean的名称。 
     * @return 返回Bean的实例。 
     */  
    private Object getObjectFromApplication(ServletContext servletContext,String beanName){  
        //通过WebApplicationContextUtils 得到Spring容器的实例。  
        ApplicationContext application=WebApplicationContextUtils.getWebApplicationContext(servletContext);  
        //返回Bean的实例。  
        return application.getBean(beanName);  
    }    
}  
2.web.xml文件中做相关的配置。
<listener>  
    <listener-class>com.wangyun.service.impl.SessionCounter</listener-class>  
</listener>
session过期时间单位:分钟
<session-config>  
    <session-timeout>1</session-timeout>  
</session-config>
HttpSessionListener主要注意的是bean的注入,只能从spring容器中得到bean实例。


网站开发 用监听器写 用户登录日志功能 我用的是 ssm框架

HttpSessionListener 、ServletRequestListener、HttpSessionAttributeListener 新建一个类继承这三个接口 import jav...
  • csdn_yfqs
  • csdn_yfqs
  • 2017-12-05 18:20:27
  • 256

HttpSessionListener 监听器事件配置及注入bean ssm框架

当一个浏览器第一次访问网站的时候,J2EE应用服务器会新建一个HttpSession对象 ,并触发 HttpSession创建事件 ,如果注册了HttpSessionListener事件监听器,则会调...
  • gc1329689056
  • gc1329689056
  • 2018-04-16 19:04:36
  • 14

Web监听器_监听绑定、活钝化HttpSession

web服务器中,实现监听session绑定javabean以及javabean的活化和钝化。
  • pseudonym_
  • pseudonym_
  • 2017-09-14 21:26:58
  • 193

HttpSessionListener中使用依赖注入的方式完成Bean实例的注入

在SSH项目开发中,会使用到监听器Listener,并且有时需要在监听器中完成数据库的操作等动作,此时需要在Listener中使用到Spring容器中的Bean。Spring容器本身就是在web.xm...
  • u010787396
  • u010787396
  • 2015-09-22 13:40:50
  • 2476

SSM框架项目搭建系列(五)—Spring之Bean的注解注入

applicationContext.xml
  • YEN_CSDN
  • YEN_CSDN
  • 2016-11-02 20:26:15
  • 4016

监听器request session servletContext的创建与销毁

一:创建监听器 web.xml配置 com.ssm.web.listener.uuid HttpS...
  • qq_35572020
  • qq_35572020
  • 2016-11-21 13:09:11
  • 209

ssm框架使用druid数据库连接池(带事务配置和session监听)

ssm框架配置mybatis数据库事务,使用druid管理数据库连接池,监听session
  • z1941563559
  • z1941563559
  • 2017-08-17 10:04:26
  • 2245

自定义监听器bean属性无法注入问题

今天在学习ERP项目的权限管理功能时,遇到了自定义的监听器无法注入bean。在监听器中需要获取到resEbi这个bean用来查询需要限制访问的资源url,并将其放入到servletContext中。以...
  • innovate1989
  • innovate1989
  • 2017-11-21 15:31:10
  • 175

SSM框架项目搭建系列(四)— Spring之bean的XML注入方式

在XML中可使用两种方式进行注入:构造函数注入和setter注入构造函数注入constructor直接传值applicationContext.xml ...
  • YEN_CSDN
  • YEN_CSDN
  • 2016-11-02 19:43:54
  • 1561

【Listener机制】HttpSessionListener和HttpSessionAttributeListener

一、HttpSessionListener         HttpSessionListener是对Session的一个监听,主要监听关于Session的两个事件,即初始化和销毁。 【原理】    ...
  • u013036274
  • u013036274
  • 2017-02-05 16:34:48
  • 1549
收藏助手
不良信息举报
您举报文章:HttpSessionListener 监听器事件配置及注入bean ssm框架
举报原因:
原因补充:

(最多只允许输入30个字)