tomcat从低版本升级到高版本

来源:互联网 发布:淘宝主播任务平台 编辑:程序博客网 时间:2024/04/30 00:19

今天把tomcat从5.0升级到了6.0.37发现好多功能都使用不了,点击进入都是白页,经过苦苦在找找,终于找到原因,是因为高版本的tomcat对开发要求更规范了,修改这个问题需要从两个步骤进行:

第一步:

在tomcat/conf/catalina.properties文件的最后面添加

org.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false ;


下面引用其他文章中的一段话:

错误产生的原因,是因为tomcat版本升级后(6.0以后),对双引号的处理机制引起的,如果出现双引号包含双引号的情况,就可能会出现这个错误。

3):解决办法有好多种,大多数网上的意见是改为value=‘<%=""+request.getAttribute("name")%>’ 这样确实可以解决这个报错,可能无法完全解决问题,比如项目中有很多地方以前都用的是双引号,修改起来会非常麻烦,还容易出错。

         查看tomact文档有一段话这样描述的“Iffalsethe requirements for escaping quotes in JSP attributes will be relaxed so that an unescaped quote will not cause an error.

If not specified, the specification compliant default oftruewill be used.”    这个描述针对的是tomact的org.apache.jasper.compiler. Parser.STRICT_QUOTE_ESCAPING属性。

       如此一来,我们知道只要在tomcat启动时将这个属性设为false就可以解决这个问题。

       那么怎么将这个属性设置到tomcat的system属性中呢,有至少两个办法:

      一种是利用tomcat启动的执行脚本,在执行过程中调用setenv.sh,在其中设置环境变量,如:JAVA_OPTS=%JAVA_OPTS%: -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false

     另一种是找到conf/catalina.properties文件,在最后添加org.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false 即可。

第二步:当用post提交时,当form中的value的值为“一位”时,后台接收不到数据,例如:value="1"接不到,而value="01"则可以

设置程序编码,可以在filter中进行设置,编码要用规范的 GB18030 , GBK、GB2312是不行的


原创粉丝点击