1、Filter
Filter过滤器只拦请求不拦响应(包filter下)
过滤顺序:filter-mapping在前的先拦截
方式1、xml文件中的filter-mapping中:<url-pattern>/index.jsp</url-pattern>
方式2、如果拦截向servlet发送的请求,还可以通过Servlet的名字进行配置,可以在xml文件中的filter-mapping中写
<servlet-name>servlet名</servlet-name>
2、Listener
常用的接口:
常用的接口:HttpSessionBindingListener
自己写的bean类实现其两个抽象方法:
//向session域中添加User对象式调用
@Override
public void valueBound(HttpSessionBindingEvent arg0) {
//获取session对象
HttpSession session = arg0.getSession();
//获取servletContext对象
ServletContext application = session.getServletContext();
//从application域中获取当前在线人数,如果没有添加参数并设置值为0
Integer count = (Integer)application.getAttribute("count");
if(count==null) {
application.setAttribute("count", 1);
}else {
application.setAttribute("count", count + 1);
}
}
//User对象在Session域中移除时调用
@Override
public void valueUnbound(HttpSessionBindingEvent arg0) {
//获取session对象
HttpSession session = arg0.getSession();
//获取servletContext对象
ServletContext application = session.getServletContext();
//从application域中获取当前在线人数,如果没有添加参数并设置值为0
Integer count = (Integer)application.getAttribute("count");
//设置人数减一
application.setAttribute("count", count-1);
}