我們可以用監聽器實現在線人數的統計,步驟如下。
<br/>
**1. 實現接口HttpSessionListener**
```java
public class CustomSessionListener implements HttpSessionListener {
private Long count = 1L;
/**
* session被創建時調用
*/
@Override
public void sessionCreated(HttpSessionEvent arg0) {
System.out.println("sessionCreated");
count = count + 1;
arg0.getSession().setAttribute("count", count);
}
/**
* session被銷毀時被調用
*/
@Override
public void sessionDestroyed(HttpSessionEvent se) {
System.out.println("sessionDestroyed");
count = count - 1;
se.getSession().setAttribute("count", count);
}
}
```
**2. `web.xml`中注冊監聽器**
```xml
<listener>
<listener-class>com.learn.servlet02.listener.CustomSessionListener</listener-class>
</listener>
```
**3. 編寫一個Servlet用來演示**
```java
@WebServlet("/listener")
public class ListenerServlet extends BaseServlet {
public void listener04(HttpServletRequest request, HttpServletResponse response) {
HttpSession session = request.getSession();
System.out.println("在線人數 -> " + session.getAttribute("count"));
//在線人數 -> 3
}
}
```