快速业务通道

Tomcat的过滤诀窍 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
);       tpStream = new ReplaceTextStream (inResp.getOutputStream(),                       searchText,                       replaceText);       tpWriter = new PrintWriter(tpStream);    }    public ServletOutputStream getOutputStream() throws  java.io.IOException {        return tpStream;     }    public PrintWriter getWriter() throws java.io.IOException  {        return tpWriter;     } }

Tomcat的过滤诀窍(7)

时间:2010-12-13 IBM Sing Li

我们定制的包装响应能方便地从帮助类 HttpServletResponseWrapper 中导 出。这一类粗略地执行许多方法,允许我们简单地覆盖 getOutputStream() 方 法以及 getWriter() 方法,提供了定制输出流的实例。

清单 13. ReplaceTextWrapper() 方法

public final class  ReplaceTextFilter implements Filter {    private FilterConfig filterConfig = null;    private String searchText = ".";    private String replaceText = ".";    public void doFilter(ServletRequest request,  ServletResponse response,               FilterChain chain)    throws IOException, ServletException {     ReplaceTextWrapper myWrappedResp = new  ReplaceTextWrapper( response,      searchText, replaceText);       chain.doFilter(request, myWrappedResp);       myWrappedResp.getOutputStream().close();    }    public void destroy() {    }

最后,还有过滤器本身。它所做的不过是使用FilterChain 为递交响应后续 创建一个定制的包装响应实例,如下所示:

清单 14. 创建一个定制的包装响应实例

public void init (FilterConfig filterConfig) {     String tpString;     if (( tpString = filterConfig.getInitParameter("search")  ) != null)        searchText = tpString;     if (( tpString = filterConfig.getInitParameter("replace")  ) != null)        replaceText = tpString;    this.filterConfig = filterConfig;    } }

在 init 方法中,我们取回了过滤器定义中指定的初始参数。filterConfig 对象中的 getInitParameter() 方法便于用来实现这个目的。

测试 ReplaceTextFilter

假如您使用先前提及的步骤测试了 IEFilter ,并将所有文件复制到了 $TOMCAT/webapps/devworks 下,您就能用以下的步骤来测试 ReplaceTextFilter :

编辑 $TOMCAT/wepapps/devworks/WEB-INF 目录下的 web.xml 文件,以包含 下列过滤器的定义及映射:

<web-app> <filter>   <filter-name>Replace Text Filter</filter-name>   <filter- class>com.ibm.devworks.filters.ReplaceTextFilter</filter- class>   <init-param>    <param-name>search</param-name>    <param-value>cannot</param-value>   </init-param>   <init-param>    <param-name>replace</param-name>    <param-value>must not</param-value>   </init-param> </filter> <filter-mapping>    <filter-name>Replace Text Filter</filter-name>    <url-pattern>/*</url-pattern> </filter-mapping> <

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号