内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

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

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

10年積累的成都做網(wǎng)站、網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有伊寧免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

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

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

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

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

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

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

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

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

統(tǒng)計(jì)在線人數(shù),利用HttpSessionLisener

加載初始化信息:利用ServletContextListener

統(tǒng)計(jì)網(wǎng)站訪問量

實(shí)現(xiàn)訪問監(jiān)控

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

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

圖片僅供參考。。。

實(shí)例一

下面是一個(gè)統(tǒng)計(jì)網(wǎng)站最多在線人數(shù)監(jiān)聽器的例子

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
/**
 上下文監(jiān)聽器,在服務(wù)器啟動(dòng)時(shí)初始化onLineCount和maxOnLineCount兩個(gè)變量
 并將其置于服務(wù)器上下文(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;
/**
 會(huì)話監(jiān)聽器,在用戶會(huì)話創(chuàng)建和銷毀的時(shí)候根據(jù)情況
 修改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)聽器,當(dāng)然你可以在web.xml文件中用<listener>標(biāo)簽配置監(jiān)聽器。

實(shí)例二

在JavaWeb應(yīng)用開發(fā)中,有時(shí)候我們需要統(tǒng)計(jì)當(dāng)前在線的用戶數(shù),此時(shí)就可以使用監(jiān)聽器技術(shù)來(lái)實(shí)現(xiàn)這個(gè)功能了。

package me.gacl.web.listener;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
/**
* @ClassName: OnLineCountListener
* @Description: 統(tǒng)計(jì)當(dāng)前在線用戶個(gè)數(shù)
* @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)聽器的作用有哪些了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

標(biāo)題名稱:Java監(jiān)聽器的作用有哪些
網(wǎng)頁(yè)路徑:http://www.rwnh.cn/article46/jgjheg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、做網(wǎng)站、網(wǎng)站內(nèi)鏈、網(wǎng)站設(shè)計(jì)動(dòng)態(tài)網(wǎng)站、網(wǎng)站排名

廣告

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

成都seo排名網(wǎng)站優(yōu)化
陇川县| 扶沟县| 无极县| 当涂县| 双鸭山市| 正镶白旗| 阜宁县| 镇康县| 丹东市| 康平县| 清涧县| 井陉县| 抚远县| 积石山| 贡觉县| 西昌市| 仁化县| 黑水县| 公主岭市| 石泉县| 葫芦岛市| 内江市| 都安| 根河市| 阿克陶县| 抚远县| 分宜县| 东辽县| 陈巴尔虎旗| 镶黄旗| 东乡县| 宾阳县| 青田县| 明水县| 东明县| 灵丘县| 新巴尔虎右旗| 石家庄市| 贵德县| 金湖县| 保山市|