欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Java監(jiān)聽器的作用有哪些

這期內容當中小編將會給大家?guī)碛嘘PJava監(jiān)聽器的作用有哪些,文章內容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

10年積累的成都做網站、網站建設經驗,可以快速應對客戶對網站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網絡服務。我雖然不認識你,你也不認識我。但先網站制作后付款的網站建設流程,更有伊寧免費網站建設讓你可以放心的選擇與我們合作。

監(jiān)聽器在JavaWeb開發(fā)中用得比較多

Java Web開發(fā)中的監(jiān)聽器(listener)就是application、session、request三個對象創(chuàng)建、銷毀或者往其中添加修改刪除屬性時自動執(zhí)行代碼的功能組件,如下所示:

①ServletContextListener:對Servlet上下文的創(chuàng)建和銷毀進行監(jiān)聽。
②ServletContextAttributeListener:監(jiān)聽Servlet上下文屬性的添加、刪除和替換。
③HttpSessionListener:對Session的創(chuàng)建和銷毀進行監(jiān)聽。

補充:session的銷毀有兩種情況:1). session超時(可以在web.xml中通過<session-config>/<session-timeout>標簽配置超時時間);2). 通過調用session對象的invalidate()方法使session失效。

④HttpSessionAttributeListener:對Session對象中屬性的添加、刪除和替換進行監(jiān)聽。
⑤ServletRequestListener:對請求對象的初始化和銷毀進行監(jiān)聽。
⑥ServletRequestAttributeListener:對請求對象屬性的添加、刪除和替換進行監(jiān)聽。

監(jiān)聽器常用的用途

它可以監(jiān)聽客戶端的請求、服務端的操作等。通過監(jiān)聽器,可以自動激發(fā)一些操作,比如監(jiān)聽在線的用戶的數量

通常使用Web監(jiān)聽器做以下的內容:

統(tǒng)計在線人數,利用HttpSessionLisener

加載初始化信息:利用ServletContextListener

統(tǒng)計網站訪問量

實現訪問監(jiān)控

有時候后臺需要統(tǒng)計最多在線人數以及當前在線人數,這里通過監(jiān)聽器實現這一功能。

Java監(jiān)聽器的作用有哪些

圖片僅供參考。。。

實例一

下面是一個統(tǒng)計網站最多在線人數監(jiān)聽器的例子

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
/**
 上下文監(jiān)聽器,在服務器啟動時初始化onLineCount和maxOnLineCount兩個變量
 并將其置于服務器上下文(ServletContext)中,其初始值都是0
*/
@WebListener
public class InitListener implements ServletContextListener {
 @Override
 public void contextDestroyed(ServletContextEvent evt) {
 }
 @Override
 public void contextInitialized(ServletContextEvent evt) {
  evt.getServletContext().setAttribute("onLineCount", 0);
  evt.getServletContext().setAttribute("maxOnLineCount", 0);
 }
}
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.ServletContext;
import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
/**
 會話監(jiān)聽器,在用戶會話創(chuàng)建和銷毀的時候根據情況
 修改onLineCount和maxOnLineCount的值
*/
@WebListener
public class MaxCountListener implements HttpSessionListener {
 @Override
 public void sessionCreated(HttpSessionEvent event) {
  ServletContext ctx = event.getSession().getServletContext();
  int count = Integer.parseInt(ctx.getAttribute("onLineCount").toString());
  count++;
  ctx.setAttribute("onLineCount", count);
  int maxOnLineCount = Integer.parseInt(ctx.getAttribute("maxOnLineCount").toString());
  if (count > maxOnLineCount) {
   ctx.setAttribute("maxOnLineCount", count);
   DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
   ctx.setAttribute("date", df.format(new Date()));
  }
 }
 @Override
 public void sessionDestroyed(HttpSessionEvent event) {
  ServletContext app = event.getSession().getServletContext();
  int count = Integer.parseInt(app.getAttribute("onLineCount").toString());
  count--;
  app.setAttribute("onLineCount", count);
 }
}

說明:這里使用了Servlet 3規(guī)范中的@WebListener注解配置監(jiān)聽器,當然你可以在web.xml文件中用<listener>標簽配置監(jiān)聽器。

實例二

在JavaWeb應用開發(fā)中,有時候我們需要統(tǒng)計當前在線的用戶數,此時就可以使用監(jiān)聽器技術來實現這個功能了。

package me.gacl.web.listener;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
/**
* @ClassName: OnLineCountListener
* @Description: 統(tǒng)計當前在線用戶個數
* @author: 孤傲蒼狼
* @date: 2014-9-10 下午10:01:26
*
*/ 
public class OnLineCountListener implements HttpSessionListener {
 @Override
 public void sessionCreated(HttpSessionEvent se) {
  ServletContext context = se.getSession().getServletContext();
  Integer onLineCount = (Integer) context.getAttribute("onLineCount");
  if(onLineCount==null){
   context.setAttribute("onLineCount", 1);
  }else{
   onLineCount++;
   context.setAttribute("onLineCount", onLineCount);
  }
 }
 @Override
 public void sessionDestroyed(HttpSessionEvent se) {
  ServletContext context = se.getSession().getServletContext();
  Integer onLineCount = (Integer) context.getAttribute("onLineCount");
  if(onLineCount==null){
   context.setAttribute("onLineCount", 1);
  }else{
   onLineCount--;
   context.setAttribute("onLineCount", onLineCount);
  }
 }
}

上述就是小編為大家分享的Java監(jiān)聽器的作用有哪些了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創(chuàng)新互聯行業(yè)資訊頻道。

標題名稱:Java監(jiān)聽器的作用有哪些
網頁路徑:http://chinadenli.net/article46/jgjheg.html

成都網站建設公司_創(chuàng)新互聯,為您提供外貿建站做網站網站內鏈網站設計動態(tài)網站網站排名

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

成都seo排名網站優(yōu)化