springboot实现HttpSessionLisener监听器

      Spring Boot是由Pivotal团队供给的全新框架,其设计目标是用来简化新Spring应用的初始搭建以及开辟过程。该框架利用了特定的体例来进行设置装备摆设,从而使开辟人员不再需要界说样板化的设置装备摆设。经由过程这种体例,Spring Boot致力于在蓬勃成长的快速应用开辟范畴(rapid application development)当作为带领者。

      监听器用于监听web应用中某些对象、信息的建立、销毁、增添,点窜,删除等动作的发生,然后作出响应的响应处置。当规模对象的状况发生转变的时辰,办事器主动挪用监听器对象中的方式。常用于统计在耳目数和在线用户,系统加载时进行信息初始化,统计网站的拜候量等等。

      HttpSessionLisener属于HttpSession级此外监听器,本家儿要监听HttpSession的建立和销毁。包含两个方式sessionCreated(建立)和sessionDestroyed(销毁)。

工具/原料

  • 电脑
  • intellij IDEA 2018 或者eclipse 2017

方式/步骤

  1. 1

    第一步调:建立一个springboot的项目(也可以建立一个简答的java项目)。

    1、 打开建立页面 选择File-new-project..

    2、选择建立的项目为spring initializr 进入springboot项目建立步调(也可以选择类型java,建立一个通俗java项目)

    3、输入项目名字,选择依靠web(按照项目需求选择,此次需要),选择存放目次-完当作(Finish)

  2. 2

    第二步调:HttpSessionLisener监听的根基实现。

    1、编写java类SessionHttpSessionLisener 实现HttpSessionListener 接口并添加注解@WebListener

    import javax.servlet.annotation.WebListener;import javax.servlet.http.HttpSessionEvent;import javax.servlet.http.HttpSessionListener;@WebListenerpublic class SessionHttpSessionLisener implements HttpSessionListener     @Override    public void sessionCreated(HttpSessionEvent se) {

       }        @Override    public void sessionDestroyed(HttpSessionEvent se) {    }}

    2、在启动类ExcelimportApplication 中添加注解@ServletComponentScan

    import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.web.servlet.ServletComponentScan;

    @ServletComponentScan@SpringBootApplicationpublic class ExcelimportApplication {    public static void main(String[] args) {        SpringApplication.run(ExcelimportApplication.class, args);    }

    }

    3、只有在对session操作时才会触发sessionCreated方式

    前端拜候后台的同时,操作session才会触发sessionCreated而且一个session只有一次触发机遇(第一次操作会默认建立)

    如 request.getSession().setAttribute("name",user);

    4、sessionDestroyed方式的挪用机会

    4.1本家儿动销毁session  

        request.getSession().invalidate(); 

    4.2 session超不时也会触发

  3. 3

    第三步调:HttpSessionLisener监听第二种实现。

    在启动类中添加listenerttpSessionLisener方式,SessionHttpSessionLisener也不消添加注解@WebListener:如下所示

    @Beanpublic ServletListenerRegistrationBean listenerttpSessionLisener() {    ServletListenerRegistrationBean srb = new ServletListenerRegistrationBean();    srb.setListener(new SessionHttpSessionLisener());    System.out.println("listener");    return srb;}

  4. 4

    第四步调:HttpSessionLisener的实现介绍。

    1、第一种根基实现借助springboot的注解监听实现,(监听器可以注解多个)。

    2、第二种实现本家儿要借助于ServletListenerRegistrationBean类

    不合用泛型时可以添加多个监听(类型可以不通)

    srb.setListener(new HttpSessionLisener()的监听实现类);

    srb.setListener(new ServletContextListener监听实现类);

    3、泛型限制可以添加的监听,就是在第二种实现的根本上添加了泛型限制只能返回一种监听的调集,srb.setListener可以设置多个与泛型不异的类型的监听

    @Bean

    public ServletListenerRegistrationBean<SessionHttpSessionLisener> getSessionHttpSessionLisener(){   

     ServletListenerRegistrationBean<SessionHttpSessionLisener>bean = new ServletListenerRegistrationBean<>(new SessionHttpSessionLisener());    return bean;

    }

  5. 5

    第五步调:在线用户统计。

    具体可以参考:https://jingyan.baidu.com/article/29697b91bf81a9ab20de3c95.html

注重事项

  • 开辟情况 jdk 1.8 IDEA 2018.2.2 maven:apache-maven-3.5.4
  • 发表于 2019-04-25 20:01
  • 阅读 ( 161 )
  • 分类:其他类型

相关问题

0 条评论

请先 登录 后评论