输入字符串为空问题

最近客户对系统安全格外重视,每周都要进行软件安全评估。可怜某系统上线多年,用的都是老掉牙的旧版本,一下子就被检测出诸多漏洞。就像长年不体检的人,突然体检就查出癌症晚期。不过漏洞虽多,还没到绝症的地步,升级一下版本还是有救的。

系统原来用的是tomcat5.5+jdk1.5,漏洞大多是tomcat5.5的。目前支持jdk1.5的最新tomcat版本是tomcat6.0.37。安装新版后发现了一个问题,登录系统的时候提示“For input string:"" ”,而实际上输入值都是非空的。

找开发人员看了一下,明明参数值已传过来,却取不出来,似乎是request.getParameter出了问题。而tomcat5.5不存在此问题。难道tomcat6跟jdk1.5不兼容吗?有人说试试改变取参数的方式,但是getParameter很多地方都有调用,改动量太大了。于是上网搜了几遍,终于发现网上已有类似问题的解决方案。网友很机敏地找到了问题发生的原因,应用程序使用的字符集是GBK,tomcat6以上版本对该字符集的支持存在问题。

解决方案:修改webapps/应用/WEB-INF/web.xml,将GBK改为GB18030。

web.xml的相关配置:

<filter>   
    <filter-name>EncodFilter</filter-name>   
    <filter-class>   
        com.test.test.EncodeFilter   
    </filter-class>   
    <init-param>   
        <param-name>encoding</param-name>   
        <param-value>GBK</param-value>   
    </init-param>   
</filter>


你可能感兴趣的:(tomcat6,getparameter,JDK1.5)