Filter:过滤器:
实现javax.servlet.Filter接口
实现doFiter方法
chain.doFilter(req, resp);//继续向下执行.
Eg:
/**
* 转码
* @author Administrator
*
*/
publicclass EncodeFilter implements Filter {
private FilterConfig fc=null;
@Override
publicvoid destroy() {
System.out.println("MyFilter.destroy");
}
@Override
publicvoid doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException{
System.out.println("EncodeFilter.doFilter");
HttpServletRequest request = (HttpServletRequest)req;
HttpServletResponse response = (HttpServletResponse)resp;
String encode = fc.getInitParameter("encode");
request.setCharacterEncoding(encode);
response.setCharacterEncoding(encode);
chain.doFilter(request, response);
}
@Override
publicvoid init(FilterConfig arg0) throws ServletException {
this.fc=arg0;
}
}
Listener:监听器:
实现ServletContextListener
eg:
publicclass MyServletContextListener implements ServletContextListener {
@Override
publicvoid contextDestroyed(ServletContextEvent arg0) {
System.out.println("MyListener.contextDestroyed");
}
@Override
publicvoid contextInitialized(ServletContextEvent event) {
System.out.println("MyListener.contextInitialized");
}
}
实现SessionListener
Eg:
publicclass MyHttpSessionListener implements HttpSessionListener {
@Override
publicvoid sessionCreated(HttpSessionEvent event) {
ServletContext sc = event.getSession().getServletContext();
int i=0;
if(sc.getAttribute("num")==null){
i=1;
}else{
i = Integer.parseInt(sc.getAttribute("num").toString())+1;
}
sc.setAttribute("num", i);
System.out.println("访问量:"+i);
System.out.println("MyHttpSessionListener.sessionCreated");
}
@Override
publicvoid sessionDestroyed(HttpSessionEvent arg0) {
System.out.println("MyHttpSessionListener.sessionDestroyed");
}
}