servlet中监听器主要的监听对象有三个:
ServletContext HttpSession ServletRequest.
分别可以监听三个对象的创建 销毁,以及属性的更改。
=========================================
实现监听在线人数:
在开始实现功能之前首先创建一个用户模型,为了区别每个用户,我们用sessionId来作为一个用户的id,代码实现:
package model;
public class User {
private String ipStr;
private String address;
private String sessionId;
public User() {
super();
// TODO Auto-generated constructor stub
}
public String getSessionId() {
return sessionId;
}
public void setSessionId(String sessionId) {
this.sessionId = sessionId;
}
public String getIpStr() {
return ipStr;
}
public void setIpStr(String ipStr) {
this.ipStr = ipStr;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
第一步:创建出存放在线用户的容器
当应用服务一旦启动,就创建出一个容器来存放在线的人数。这里使用到ServletContextListener。实现这个接口的监听器将监听到我们的服务器程序的启动和销毁。代码实现:
package listener;
import java.util.ArrayList;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
import model.User;
@WebListener
<