Servlet过滤器介绍之实用过滤器 - 编程入门网
okenizer tok = new StringTokenizer(bannedSites);
while (tok.hasMoreTokens()) {
String bannedSite = tok.nextToken();
bannedSiteTable.add(bannedSite);
System.out.println("Banned " + bannedSite);
}
}
public void destroy() {}
private String getReferringHost(String refererringURLString) {
try {
URL referringURL = new URL(refererringURLString);
return (referringURL.getHost());
} catch (MalformedURLException mue) { // Malformed or null
return (null);
}
}
// Replacement response that is returned to users
// who are from or referred here by a banned site.
private void showWarning(ServletResponse response, String bannedSite)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String docType = "<!DOCTYPE HTML PUBLIC \"-//WServlet过滤器介绍之实用过滤器(2)时间:2011-04-09 51cto zhangjunhdweb.xml
测试: http://localhost:8080/Test4Jsp/ 结果: 7.替换过滤器 7.1修改响应 过滤器能够阻止对资源的访问或者阻止激活它们。但如果过滤器想更改资源所生成的响应 。怎么办呢?似乎没有办法能够对一个资源所生成的响应进行访问。DoFilter的第二个参数 (ServletResponse)给过滤器提供了一种发送新输出到客户机的办法,但没有给过滤器提供 对servlet或JSP页面输出进行访问的办法。为什么会这样呢?因为在第一次调用doFilter方 法时,servlet或JSP页面甚至还没有执行。一旦调用了FilterChain对象中的doFilter方法, 要修改响应似乎就太迟了,这是数据已经发送到客户机。 不过,办法是有的,那就是修改传递给FilterChain对象的doFilter方法的响应对象。一 般,建立缓存servlet或JSP页面生成的所有输出的版本。Servlet API 2.3版为此提供了一种 有用的资源,即,HttpServletResponseWrapper类。这个类的使用包括以下五个步骤: 1)建立一个响应包装器 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |