① java網頁中怎樣統計在線人數
1.用session超時,session為null就表示下線了
2.也可以採用資料庫中設置 臨時表 來處理
一個用戶登陸時向表中插進一條記錄,用戶離開時候刪除該記錄
如想統計在線人數,簡單地執行
select count(*) from table... 即可
3.application對象中可以記住現在的人數,application的生命周期和伺服器的生命周期一樣長。
4.還有一種方法要用到一個文件global.jsa ,方法是(在JSP中)是sessionDestroy(),其中它是以session對象為參數的。還有要把global.jsa文件必須房子和JSP程序相同的文件目錄內才行。
5.網頁自動刷新的代碼是:
在文件頭部加上
<meta http-equiv="refresh" content="15">
刷新間隔時間是15秒
6.在session中加入監聽類,類的示例代碼如下:
onLineUser.java
import javax.servlet.http.*;
import javax.servlet.*;
import java.util.*;
public class onLineUser implements HttpSessionBindingListener {
public onLineUser(){
}
private Vector users=new Vector();
public int getCount(){
users.trimToSize();
return users.capacity();
}
public boolean existUser(String userName){
users.trimToSize();
boolean existUser=false;
for (int i=0;i<users.capacity();i++ )
{
if (userName.equals((String)users.get(i)))
{
existUser=true;
break;
}
}
return existUser;
}
public boolean deleteUser(String userName) {
users.trimToSize();
if(existUser(userName)){
int currUserIndex=-1;
for(int i=0;i<users.capacity();i++){
if(userName.equals((String)users.get(i))){
currUserIndex=i;
break;
}
}
if (currUserIndex!=-1){
users.remove(currUserIndex);
users.trimToSize();
return true;
}
}
return false;
}
public Vector getOnLineUser()
{
return users;
}
public void valueBound(HttpSessionBindingEvent e) {
users.trimToSize();
if(!existUser(e.getName())){
users.add(e.getName());
System.out.print(e.getName()+"\t 登入到系統\t"+(new Date()));
System.out.println(" 在線用戶數為:"+getCount());
}else
System.out.println(e.getName()+"已經存在");
}
public void valueUnbound(HttpSessionBindingEvent e) {
users.trimToSize();
String userName=e.getName();
deleteUser(userName);
System.out.print(userName+"\t 退出系統\t"+(new Date()));
System.out.println(" 在線用戶數為:"+getCount());
}
}
jsp:
<%@ page contentType="text/html;charset=gb2312" %>
<%@ page import="java.util.*" %>
<jsp:useBean id="onlineuser" class="temp.jb.onLineUser" scope="application"/>
<html>
<head>
</head>
<body onUnload="postMessage()">
<center>
<p><h1>登陸成功,歡迎訪問</h1></p>
</center>
<% session = request.getSession(false); %>
<%
String username=request.getParameter("username");
if (onlineuser.existUser(username)){
out.println("用戶<font color=red>"+username+"</font>已經登陸!");
}else{
session.setMaxInactiveInterval(50); //Sesion有效時長,以秒為單位
session.setAttribute(username,onlineuser);
out.println("歡迎新用戶:<font color=red>"+username+"</font>登陸到系統!");
}
out.println("<br>當前在線用戶人數:<font color=red>"+onlineuser.getCount()+"</font><br>");
String ip = request.getRemoteAddr();
out.println("<br>IP:<font color=red>"+ip+"</font><br>");
Vector vt=onlineuser.getOnLineUser();
Enumeration e = vt.elements();
out.println("在線用戶列表");
out.println("<table border=1>");
out.println("<tr><td>用戶名</td></tr>");
while(e.hasMoreElements()){
out.println("<tr><td>");
out.println((String)e.nextElement()+"<br>");
out.println("</td></tr>");
}
out.println("</table>");
%>
<center>
<p> </p>
[<a href="javascript:window.close()">關閉窗口</a>]
<%
out.println("<p><a href='logout.jsp?username="+username+"'>退出系統</a></p>");
%>
</center>
<Script>
function postMessage(){
<%onlineuser.deleteUser(request.getParameter("username"));%>
}
</Script>
</body>
</html>
② 如何用jsp實現統計在線人數,離開人數減少
在用戶登錄成功的時候,這是我以前做的,你可以看看 //計數器 Integer count =(Integer)application.getAttribute("count"); if(count==null) { count=1; } else { count+=1; } application.setAttribute("count",count);
③ 如何統計在線人數
這個簡單以下是本人以前寫的源碼雖然顯示出來很醜,但是自己修飾下就可以了<?php
require_once('config.php');
function counter()
{
session_start();
$sql="select counter from counter";
$result=@mysql_query($sql);
if(!empty($result))
{
$row=mysql_fetch_array($result);
$counter=++$row[counter];
if(!$_SESSION['counter'])
{
$query="update counter set counter=$counter";
$result=@mysql_query($query);
if($result)
{
$_SESSION['counter']=true;
}
}
$counter_len=strlen($counter);
for($i=0;$i<$counter_len;$i++)
{
$number=substr($counter,$i,1);
if(isset($number))
{
echo "<img src='image/".$number.".gif'>";
}
}
}
}
?>
④ Java統計在線人數,用過濾器好還是攔截器
你好,要想知道哪個好,要說一下兩者的區別,攔截器是struts的或者spring mvc框架封裝的,過濾器是java ee自身的
過濾器是在java web中,你傳入的request,response提前過濾掉一些信息,或者提前設置一些參數,然後再傳入servlet或者struts的 action進行業務邏輯,比如過濾掉非法url。主要為了減輕伺服器負載。減少壓力
攔截器是在面向切面編程的就是在你的service或者一個方法,前調用一個方法,或者在方法後調用一個方法。比如可以用攔截器做一些許可權管理 或者log之類的事情。
兩者作用是不同的。如果單純的統計,建議還是使用過濾器比較好
希望可以解決你的問題
⑤ java怎麼在樹節點中統計在線人數
統計的數據 在生成樹節點時放上去
⑥ 如何統計網站在線人數
你可以找一些網站幫你統計!這樣較為好點!自己搞的··別人不相信!
⑦ java 怎樣統計系統當前在線人數
統計在線人數的方式不同(比如登錄人數或者頁面訪問人數)具體的實現方式不同,但是記錄統計人數的方法是一樣的1。定義一個靜態變數或者在application作用於放置一個變數存放在線人數,如果是登錄人數,則在用戶登錄時+1,如果是頁面訪問人數就添加一個監聽器listener進行監聽(sessionId) 如果有用戶訪問頁面就+1
⑧ 需要統計在線人數的JAVA WEB代碼~導入後直接可以運行的,後台可以動態的看用戶的增減···滿意追加50
我代表廣大程序員踩你臉:
我想你一定是:
恨爹不成剛
怨姐不是鳳
怪哥不叫春
以 一副巧奪天工的長相
滄海一粟的智商
奠定當今中國程序界蓋世無雙的第一腦殘的霸主地位
出來混要厚道,你還是玩蛋去吧!
⑨ java怎麼實統計在線人數,和訪問量
簡單的說個我的思路供你借鑒:
在線人數,我理解為當前應用的session數目,不過sevlert好像不提供獲取全部session的方法,可以通過加一個sessionlistener來記錄(創建就+1,銷毀就-1)
訪問量相對簡單,你定義一個全局的計數器就好了,來一個(這個有很多種方法,比如:有一個新的session被創建)人你就+1
⑩ 直播間的每個房間的在線人數是怎麼實現的 java
利用websocket技術,統計在線人數