日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux服务器在线人数,servlet监听器实现在线人数统计源码实例

發布時間:2025/5/22 linux 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux服务器在线人数,servlet监听器实现在线人数统计源码实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

servlet監聽器實現在線人數統計 一.準備知識

1.servlet:servlet是一種運行服務器端的Java應用程序,具有獨立于平臺和協議的特性,并且可以動態的生成web頁面,它工作在客戶端請求與服務器響應的中間層。

2.filter:filter是一個可以復用的代碼片段,可以用來轉換HTTP請求、響應和頭信息。Filter不像Servlet,它不能產生一個請求或者響應,它只是修改對某一資源的請求,或者修改從某一的響應。

3.listener:監聽器,從字面上可以看出listener主要用來監聽只用。通過listener可以監聽web服務器中某一個執行動作,并根據其要求作出相應的響應。通俗的語言說就是在application,session,request三個對象創建消亡或者往其中添加修改刪除屬性時自動執行代碼的功能組件。

4.servlet:servlet的生命周期始于它被裝入web服務器的內存時,并在web服務器終止或重新裝入servlet時結束。servlet一旦被裝入web服務器,一般不會從web服務器內存中刪除,直至web服務器關閉或重新結束。

(1)、裝入:啟動服務器時加載Servlet的實例;

(2)、初始化:web服務器啟動時或web服務器接收到請求時,或者兩者之間的某個時刻啟動。初始化工作有init()方法負責執行完成;

(3)、調用:從第一次到以后的多次訪問,都是只調用doGet()或doPost()方法;

(4)、銷毀:停止服務器時調用destroy()方法,銷毀實例。

5.filter:(一定要實現javax.servlet包的Filter接口的三個方法init()、doFilter()、destroy(),空實現也行)。

(1)、啟動服務器時加載過濾器的實例,并調用init()方法來初始化實例;

(2)、每一次請求時都只調用方法doFilter()進行處理;

(3)、停止服務器時調用destroy()方法,銷毀實例。

6.listener:類似于servlet和filter

web.xml 的加載順序是:context- param -> listener -> filter –> servlet

二.預備知識

通過ServletContext 的實例可以存取應用程序的全局對象以及初始化階段的變量。 在JSP文件中,application 是 ServletContext 的實例,由JSP容器默認創建。Servlet 中調用 getServletContext()方法得到 ServletContext 的實例。

注意:全局對象即Application范圍對象,初始化階段的變量指在web.xml中,經由元素所設定的變量,它的范圍也是Application范圍,例如:

< param-name>Name

< param-value>browser

< /context-param>

當容器啟動時,會建立一個Application范圍的對象,若要在JSP網頁中取得此變量時:

String name = (String)application.getInitParameter(“Name”);

${initPara.name}

//若是在Servlet中,取得Name的值方法:

String name = (String)ServletContext.getInitParameter(“Name”); 目前Servlet2.4和JSP2.0總共有8個監聽器接口和6個Event類,如下:

突然不支持圖片發布, 筆者也很郁悶,需要的讀者自己查吧。。。

三.統計在線人數

1.第一種方式

package webbook.chapter14;

import javax.servlet.http.HttpSessionEvent;

import javax.servlet.http.HttpSessionListener;

public class CounterListener implements HttpSessionListener {

private static long onlineNumber = 0;

public static long getOnlineNumber() {

return onlineNumber;

}

public void sessionCreated(HttpSessionEvent se) {

onlineNumber++;

}

public void sessionDestroyed(HttpSessionEvent se) {

onlineNumber–;

}

}當前應用中一共有人在線
統計的數字并不完全準確,因為可能用戶下線了,session還沒失效,怎么辦呢?俺也不知道。。

2.第二種方式

顯示誰在線,使用ArrayList,創建session時加入,銷毀時刪除(remove)。

總結

以上是生活随笔為你收集整理的linux服务器在线人数,servlet监听器实现在线人数统计源码实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。