1. 程式人生 > >使用application物件實現網站訪問量統計

使用application物件實現網站訪問量統計

application物件介紹:

application物件由多個客戶端使用者共享,它的應用範圍是所有的客戶。伺服器啟動後,新建一個application物件,該物件一旦建立,就一直保持到伺服器關閉。application物件與session物件不同之處是:不同的客戶擁有不同的session物件,而所有的客戶擁有同一個application物件。所以可以用application物件儲存伺服器執行時的全域性資料,例如,頁面的訪問次數等。

application物件常用方法有: (1)getAttribute(String name):返回由name指定名字的application物件屬性的值。 (2)setAttribute(String name,Object obj):由obj來初始化name的屬性值。 (3)getAttributeNames():獲得一個列舉物件 (4)nextElements():方法可以獲得application物件中的所有變數名。 (5)getInitParameter(String name) :返回application物件中name屬性的初始值。 (6)getServerInfo():獲得JSP引擎名和版本號。 (7)getRealPath():獲得檔案的實際路徑。 (8)removeAttribute(String name):刪除application中的name物件。 (9)getMimeType()方法:返回特定檔案的MIME型別。

本例中用application物件屬性儲存訪問人數,通過判斷是否是一個新的會話來判斷是否是一個新訪問網站的使用者。

<%@ page contentType="text/html;charset=GB2312"%>
<html>
 <head><title>網站計數器</title></head>
 <body>
<%!synchronized void countPeople()//序列化計數函式
	    {
		ServletContext application = getServletContext();
		Integer number = (Integer) application.getAttribute("Count");
		if (number == null) //如果是第1個訪問本站
		{
			number = new Integer(1);
			application.setAttribute("Count", number);
		} else {
			number = new Integer(number.intValue() + 1);
			application.setAttribute("Count", number);
		}
	}%>
<%
	if (session.isNew())//如果是一個新的會話
	  countPeople();
	Integer yourNumber = (Integer) application.getAttribute("Count");
%>
	歡迎訪問本站,您是第<%= yourNumber%>個訪問使用者。
</body>
</html>