您的位置:首页 > 其它

Listener and Filter

2009-09-12 07:52 141 查看
Servlet上下文监听(application):
需要实现ServletContextListener和ServletContextAttributeListener接口
*private ServletContext context = null;
*public void contextInitialized(ServletContextEvent sce)
*public void attributeAdded(ServletContextAttributeEvent scae)
*public void attributeRemoved(ServletContextAttributeEvent scae)
*public void attributeReplaced(ServletContextAttributeEvent scae)
*public void contextDestroyed(ServletContextEvent sce)

监听Http会话(session):
接口们:
HtppSessionActivationListener监听Http会话active、passivate情况
HttpSessionBindingListener监听Http会话中对象的绑定信息
HttpSessionAttribute监听Http会话中属性的设置要求

对请求的监听(request):
ServletRequestListener, ServletRequestAttributeListener

Filter:
EncodingFilter

public class EncodingFilter implements Filter
{
protected FilterConfig filterConfig;
private String targetEncoding = "gb2312";

/**
*初始化过滤器,和一般的Servlet一样,它也可以获得初始参数。
*/
public void init(FilterConfig config) throws ServletException {
this.filterConfig = config;
this.targetEncoding = config.getInitParameter("encoding");
}

/**
*进行过滤处理,这个方法最重要,所有过滤处理的代码都在此实现。
*/
public void doFilter(ServletRequest srequest, ServletResponse sresponse, FilterChain chain)
throws IOException, ServletException {
System.out.println("使用以下方法对请求进行编码:encoding="+targetEncoding);

HttpServletRequest request = (HttpServletRequest)srequest;
request.setCharacterEncoding(targetEncoding);
// 把处理权发送到下一个
chain.doFilter(srequest,sresponse);
}

public void setFilterConfig(final FilterConfig filterConfig)
{
this.filterConfig=filterConfig;
}

//销毁过滤器
public void destroy()
{
this.filterConfig=null;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: