這期內容當中小編將會給大家?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)聽器實現這一功能。

圖片僅供參考。。。
實例一
下面是一個統(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)新互聯