❶ 什麼是java偵聽器
1、監聽器也叫Listener,是Servlet的監聽器,它可以監聽客戶端的請求、服務端的操作等。通過監聽器,可以自動激發一些操作,比如監聽在線的用戶的數量。當增加一個HttpSession時,就激發sessionCreated(HttpSessionEvent se)方法,這樣
就可以給在線人數加1。
2、常用的監聽介面有以下幾個:
1)監聽對ServletContext屬性的操作,比如增加、刪除、修改屬性。
2)、ServletContextListener監聽ServletContext。當創建ServletContext時,激發contextInitialized(ServletContextEvent sce)方法;當銷毀ServletContext時,激發contextDestroyed(ServletContextEvent sce)方法。
HttpSessionListener監聽HttpSession的操作。當創建一個Session時,激發session Created(HttpSessionEvent se)方法;當銷毀一個Session時,激發sessionDestroyed (HttpSessionEvent se)方法。
4)HttpSessionAttributeListener監聽HttpSession中的屬性的操作。當在Session增加一個屬性時,激發attributeAdded(HttpSessionBindingEvent se) 方法;當在Session刪除一個屬性時,激發attributeRemoved(HttpSessionBindingEvent se)方法;當在Session屬性被重新設置時,激發attributeReplaced(HttpSessionBindingEvent se) 方法。
3、參考樣例example:隨伺服器啟動
<web-app>
<listener>
<listener-class>com.tb.listener.CountStartListener</listener-class>
</listener>
package com.tb.listener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpServlet;
import com.tb.timertask.DoCountTask;
public class CountStartListener extends HttpServlet implements ServletContextListener
{
private static final long serialVersionUID = 1824920962239905170L;
public CountStartListener()
{
// TODO Auto-generated constructor stub
}
public void contextDestroyed(ServletContextEvent arg0)
{
// TODO Auto-generated method stub
}
public void contextInitialized(ServletContextEvent arg0)
{
DoCountTask.dotask();
❷ java如何統計session訪問次數
1,Session
在JavaWeb中使用HttpSession(以下簡稱session)對象來表示一個會話。
正在裝載數據…… Session的創建(代表會話周期的開始):第一次調用request.getSession()方法時,會創建一個session對象。
Session的銷毀(代表會話周期的結束):在某個請求周期內調用了Session.invalidate()方法,此請求周期結束後,session被銷毀;或者是session超時後自動銷毀。
對於JSP,如果指定了<%@ page session="false"%>,則在JSP中無法直接訪問內置的session變數,同時也不會主動創建session,因為此時JSP未自動執行request.getSession()操作獲取session。
在session對象剛創建的第一個請求周期內,調用session.isNew()方法將得到true。
可以在web.xml文件中配置session默認的超時時間(分鍾):
<session-config>
<session-timeout>10session-timeout>
session-config>
也可以調用session. setMaxInactiveInterval()方法設置session超時時間(分鍾)
2,SessionListener
通過SessionListenr可以監聽session的創建和銷毀,步驟:
1.寫一個類MySessionListener,實現javax.servlet.http.HttpSessionListener介面及其sessionCreated()、sessionDestroyed()方法
2.在web.xml中配置SessionListener:
<listener>
<listener-class>MySessionListener類全名listener-class>
listener>
當 session被創建和銷毀時,容器會分別調用SessionListener的sessionCreated()方法和 sessionDestroyed()方法,這兩個方法中傳入了一個參數對象HttpSessionEvent,可以通過此對象的 getSession()方法獲取session對象