Spring Boot是由Pivotal團隊供給的全新框架,其設計目標是用來簡化新Spring應用的初始搭建以及開辟過程。該框架利用了特心猿意馬的體例來進行設置裝備擺設,從而使開辟人員不再需要界說樣板化的設置裝備擺設。經由過程這種體例,Spring Boot致力于在蓬勃成長的快速應用開辟范疇(rapid application development)當作為帶領者。
監聽器用于監聽web應用中某些對象、信息的建立、銷毀、增添,點竄,刪除等動作的發生,然后作出響應的響應處置。當規模對象的狀況發生轉變的時辰,辦事器主動挪用監聽器對象中的方式。常用于統計在耳目數和在線用戶,系統加載時進行信息初始化,統計網站的拜候量等等。
HttpSessionLisener屬于HttpSession級此外監聽器,本家兒要監聽HttpSession的建立和銷毀。包含兩個方式sessionCreated(建立)和sessionDestroyed(銷毀)。
第一步調:建立一個springboot的項目(也可以建立一個簡答的java項目)。
1、 打開建立頁面 選擇File-new-project..
2、選擇建立的項目為spring initializr 進入springboot項目建立步調(也可以選擇類型java,建立一個通俗java項目)
3、輸入項目名字,選擇依靠web(按照項目需求選擇,此次需要),選擇存放目次-完當作(Finish)
第二步調: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超不時也會觸發
第三步調:HttpSessionLisener監聽第二種實現。
在啟動類中添加listenerttpSessionLisener方式,SessionHttpSessionLisener也不消添加注解@WebListener:如下所示
@Beanpublic ServletListenerRegistrationBean listenerttpSessionLisener() { ServletListenerRegistrationBean srb = new ServletListenerRegistrationBean(); srb.setListener(new SessionHttpSessionLisener()); System.out.println("listener"); return srb;}
第四步調: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;
}
第五步調:在線用戶統計。
具體可以參考:https://jingyan.baidu.com/article/29697b91bf81a9ab20de3c95.html
0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!