陈中正的网络日志

项目从Resin迁移到Tomcat工具类库

项目组有两个老项目需要从resin迁移到tomcat,因为这两个项目的调用方比较多,所以要保证从resin迁移到tomcat过程中对调用方完全透明才行。这就需要对resin和tomcat的不同之处进行处理。

在修改过程中踩了若干坑,最终相关的Resin2Tomcat处理代码有了一个相对稳定的版本。于是把这部分相关处理代码抽成了一个maven工程,上传到公司仓库,方便以后其他同学使用。

1. 问题

目前遇到的问题主要是resin和tomcat对编码方式的不同,

  1. resin用gbk进行urlDecode,tomcat用utf-8进行urlDecode。
  2. 部分调用方的调用参数没有进行urlEncode,所以tomcat需要做iso8859-1到utf-8的转换。
  3. 调用方可能调用不规范,比如post请求的部分参数放在url中,部分放在body中。

2. 处理思路

做一个filter进行编码的转换,这样业务代码就不需要进行变动了,可以直接Resin切换到Tomcat。

3. 如何使用

  1. pom.xml中添加依赖
    <dependencies>
        <dependency>
            <groupId>com.netease.urs</groupId>
            <artifactId>resin2tomcat</artifactId>
            <version>0.1.0</version>
        </dependency>
    </dependencies>
  1. web.xml中添加filter
    <filter>
        <display-name>EncodingFilter</display-name>
        <filter-name>EncodingFilter</filter-name>
        <filter-class>com.netease.urs.resin2tomcat.filter.EncodingFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>EncodingFilter</filter-name>
        <url-pattern>/servlet/*</url-pattern>
    </filter-mapping>

4. 其他

删除lib下的Resin.jar,因为发现这个jar在tomcat中会报错

Categories:  JavaWeb 

« 通过爬虫迁移CSDN博客 安卓手机控制Mac上的网易云音乐 »