关于作者

用户名:zolazhou
笔名:zolazhou
地区:

日历  

快速登录

+ 用户名:
+ 密 码:

我的博采 我的论坛 我的RSS

在线留言



最新评论

Friends

访问统计:317
文章个数:4
评论个数:0
留言条数:0



Powered by BlogDriver 2.1

Doodling Zola

 

Zola Zhou
男,1982年出生
言多必失,少说为妙

文章

程序行当里的时尚
     我发现在我们这个行当里的跟风现象很严重,这股风通常也从西方过来。现在在我的周围围绕这样一种氛围:如果我的项目没有使用Spring,没有使用Hibernate,就拿不出去见人。

- 作者: zolazhou 2004年12月20日, 星期一 23:06  回复(0) |  引用(0) 加入博采

阿弥陀佛,耶稣于我何干
      圣诞节快到了,有些人跟我要礼物,我回答他们:"对不起,我信佛,不要跟我讲耶稣。"

- 作者: zolazhou 2004年12月20日, 星期一 22:32  回复(0) |  引用(0) 加入博采

几个必需的Servlet Filter
      最近有空就看看http://www.onjava.com上的文章, 作一些笔记。这是第一篇。讲的是Servlet Filter,原文在这而儿http://www.onjava.com/pub/a/onjava/2003/11/19/filters.html

      这篇文章里讲了两个Filter,Caching Filter and Compression Filter。说这是每个web应用程序必备的两个Filter,可是在我做过的项目里确一个都没用过(实际上我只做过一两个项目:>)。做过Caching,但不是以Filter的形式做的,OSCache就有一种cache的Filter用法。所以Caching Filter我不是很好奇,这里我比较感兴趣的是Compression Filter。一种将response content压缩的filter,以此减少数据流量,加快相应速度。这对于一些大块的文本内容的确能起到一些预期的作用。

      HTTP protocol allows for GZIP compression,正因为如此,GZIPFilter就能实现了,但是并不是所有的浏览器都支持GZIP。所以我们要在压缩前判断客户端浏览器是不是支持。

...
public class GZIPFilter implements Filter {

    // custom implementation of the doFilter method
    public void doFilter(ServletRequest req,
                               ServletResponse res,
                               FilterChain chain)
            throws IOException, ServletException {
     
    // make sure we are dealing with HTTP
    if (req instanceof HttpServletRequest) {
         HttpServletRequest request = (HttpServletRequest) req;
         HttpServletResponse response = (HttpServletResponse) res;
         // check for the HTTP header that
         // signifies GZIP support
         String ae = request.getHeader("accept-encoding");
         if (ae != null && ae.indexOf("gzip") != -1) {
             System.out.println("GZIP supported, compressing.");
             GZIPResponseWrapper wrappedResponse = new GZIPResponseWrapper(response);
             chain.doFilter(req, wrappedResponse);
             wrappedResponse.finishResponse();
             return;
         }
         chain.doFilter(req, res);
    }
}

      至于怎么实现压缩就不说了。这里还有一点要注意的是当我们与Caching Filter一起使用时,并且Caching Filter在Compression Filter之前,那么Caching Filter将直接返回压缩后的相应信息。那么如果客户端不支持GZIP,咋办?

      有个家伙做了一个项目,专门实现了这个Filter,http://sourceforge.net/projects/pjl-comp-filter/

     这位作者后来还有一篇文章 Another Java Servlet Filter Most Web Applications Should Have ,这个Filter只是在Response里设置一些头信息以让客户端浏览器缓存某些请求的相应,以此减少向服务器发送请求的次数。得好好看看HTTP,可能得到另外一些启发。

- 作者: zolazhou 2004年12月17日, 星期五 23:54  回复(0) |  引用(0) 加入博采

咱也有blog了
    blog对与我来说不是什么新鲜玩意儿, 因为我是搞程序的, 在google里键入技术问题, 出来的都是某某的blog. 但是我自己没有打算过写, 因为我最怕写文章了, 而且有点浪费时间. 有一次, 我遇到了一个以前遇到过的问题, 但是我却忘记了当时是怎么解决的, 所以我觉得记点东西还是挺有必要的.

    以前在博客动力上注册过一个, 但是这个网站很不稳定, 老出毛病, 所以就没玩了. 最近在blogger.com上又注册了一个, 可是只能管理发布, 看不到发布的东西, 据说是blogspot.com又被封了. 所以又在blogchina上注册了一个.

    我没那么伟大, 我记的东西都不是为了帮助其他人解决问题的. 如果碰巧帮到了别人, 那也是无心插柳. 另外, 因为是个刚毕业的newbie, 如果记的东西误导了别人, 我也概不负责.

- 作者: zolazhou 2004年12月15日, 星期三 19:22  回复(0) |  引用(0) 加入博采