快速业务通道

Servlet过滤器介绍之实用过滤器 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
String getReplacementString();    /**    * Updates the response headers. This simple version just sets *the Content-Length header, assuming that we are using a *character set that uses 1 byte per character. * For other character sets, override this method to use * different logic or to give up on persistent HTTP connections. * In this latter case, have this method set the Connection header * to "close".    */    public void updateHeaders(ServletResponse response, String responseString) {     response.setContentLength(responseString.length());    } }

Servlet过滤器介绍之实用过滤器(5)

时间:2011-04-09 51cto zhangjunhd

FilterUtils.java

package com.zj.sample; /** * Small utility to assist with response wrappers that return strings. */ public class FilterUtils {    /**    * Change all occurrences of orig in mainString to replacement.    */    public static String replace(String mainString, String orig,       String replacement) {     String result = "";     int oldIndex = 0;     int index = 0;     int origLength = orig.length();     while ((index = mainString.indexOf(orig, oldIndex)) != -1) {       result = result + mainString.substring(oldIndex, index)           + replacement;       oldIndex = index + origLength;     }     result = result + mainString.substring(oldIndex);     return (result);    } }

7.3.2实现一个字符替换过滤器

假设百度收购了google(只是假设),现在所有的页面上凡是出现google字样的文字都必 须替换为百度!ReplaceSiteNameFilter.java继承上文ReplaceFilter.java来实现这一功能 。

ReplaceSiteNameFilter.java

package com.zj.sample; public class ReplaceSiteNameFilter extends ReplaceFilter {    public String getTargetString() {     return ("google.com.cn");    }    public String getReplacementString() {     return ("baidu.com");    } }

web.xml

<filter>    <filter-name>ReplaceSiteNameFilter</filter-name>    <filter-class>com.zj.sample.ReplaceSiteNameFilter</filter-class> </filter> <filter-mapping>    <filter-name>ReplaceSiteNameFilter</filter-name>    <url-pattern>/login.jsp</url-pattern> </filter-mapping>

Servlet过滤器介绍之实用过滤器(6)

时间:2011-04-09 51cto zhangjunhd

测试结果:

过滤前

Servlet过滤器介绍之实用过滤器 - 编程入门网

过滤后

Servlet过滤器介绍之实用过滤器 - 编程入门网

<!--[endif]-->

8.压缩过滤器

有几个最新的浏览器可处理压缩的内容,自动解开以gzip作为Content-Encoding响应头值 的压缩文件,然后就像对原文档那样处理结果。发送这样的压缩内容可以节省很多时间,因 为在服务器上压缩文档,然后在客户机上解开文档所需的时间与下载文件的时间相比是微不 足道的。程序LongServlet.java给出了一个具有很长的、重复的纯文本输出的servlet,这是 一个可供压缩使用的成熟的servlet。如果使用gzip,它可以把输出结果压缩到1/300!

在浏览器支持这个压缩能力时,压缩过滤器可利用章节7介绍的CharArrayWrapper来压缩 内容,完成此任务需要下列内容:

1)实现Filter接口的类。这个类名为CompressionFIlter。init方法存放FilterConfig对 象在一个字段中

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号