[Miles' Blog]

Welcome 2 My Planet

Available categories: [/] [development. ~]

issues, 040520 [Permalink]

Thu May 27 14:32:44 CST 2004
Category [working on downwap.]

  1. ContentType。我需要让所有的/wml下面的servlet和jsp的contentType是text/vnd.wap.wml,可是,如果一个一个设置,多麻烦阿。所以呢,考虑到用一个filter,过滤所有/wml开头的请求,设置response的contentType。建立一个Filter,在他的doFilter里面response.setContentType("text/vnd.wap.wml"),可是呢,却对jsp不管用!
    A: 检查work目录,观察jsp生成的java源码,发现在刚刚进入_jspService的时候,会自动加上:
    response.setContentType("text/html;charset=ISO-8859-1");。所以filter在他之前设置的contentType就白瞎了。。既然不能更改设置contentType的顺序,那就让它失效!
    所以在这里引入了一个WmlMimeServletResponseWrapper。他的作用主要在这几段:
        private static final String CONTENT_TYPE = "text/vnd.wap.wml";
    
        public WmlMimeServletResponseWrapper(HttpServletResponse response) {
            super(response);
            response.setContentType(CONTENT_TYPE);
        }
    
        public void setContentType(String type) {
            super.setContentType(CONTENT_TYPE);
        }
    
    很简单,就不说了。不管传入什么type,我统统不理会,一律vnd.wap.wml。不过,这里有一个小问题。最初,我是把setContentType方法留空了。看上去也很合理,而且在tomcat4.0.6下面运行很正常。可是,到了tomcat4.1.27/5就不正常了。百思不得其解,把它改成了现在的样子,问题得以解决。究竟为什么呢?有空看看tomcat的源码吧。跟踪看看究竟发生了什么。
  2. 构造一个XSLT的transformer,是需要时间的。他的输入参数,是一个xsl文件资源。
    A: 因为一般情况下,xsl文件不会频繁更新,所以这里可以考虑做成factory,维护一个static的transformer集合。

Posted by: miles
Comments [0] |

?
四月 2024
Sun? Mon? Tue? Wed? Thu? Fri? Sat?
 123456
78910111213
14151617181920
21222324252627
282930    
       
<  Mar???Today??? May  >
<< <   1   > >>

Available categories: [/] [development. ~]

Powered By blojsom?? RSS Feed? RSS2 Feed? RDF Feed

html hits:?51282