public class MyFilter implements Filter{
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
}
@Override
public void destroy() {
}
}
过滤器,实现Filter接口,重写 doFilter()方法,
从httpServletRequest = (HttpServletRequest) request; 得到请求的全部信息。可以在此对请求进行操作
@WebListener
public class SessionListener implements HttpSessionListener {
@Override
public void sessionCreated(HttpSessionEvent se) {
logger.info("session创建成功:" + JSON.toJSONString(p));
}
@Override
public void sessionDestroyed(HttpSessionEvent se) {
logger.info("session销毁成功:" + JSON.toJSONString(p));
}
}
sessionFilter实现HttpSessionListener接口,实现的两个方法分别时监听到了,session生成和session销毁的事件。
拦截器
实现HandlerInterceptor接口,重写其三个方法,分别在业务执行前触发,任务执行后触发,dispathServlet请求完成后触发
配置:
<mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**"/> <mvc:exclude-mapping path="/sys/login/sysLogin.do"/> <bean class="org.qparking.manager.controller.interceptor.SystemInterceptor"></bean> </mvc:interceptor> </mvc:interceptors>
@Component
public class SystemInterceptor implements HandlerInterceptor {
/**在业务处理器处理请求前执行
* 在conroller之前执行
* */
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
logger.info("SystemInterceptor.preHandle执行"+request.getSession().getId());
return true;
}
/**
* 业务处理器执行之后
* controller层执行完成后
* 生成视图之前
* */
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
logger.info("SystemInterceptor.postHandle 执行");
}
/**
* 在DispatcherServlet完全处理完请求之后被调用,可用于清理资源
* */
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
logger.info("SystemInterceptor.afterCompletion 执行");
}
}