Tomcat5.x中,如果一个jsp页面中包含了另一个jsp页面,那么被包含的那个jsp文件中必须声明conttype=text/html,charset=GBK才能正确显示中文编码。这样相当于在原jsp文件和被包含的jsp文件中重复设置了conttype属性,而这在tomcat5以下的版本不被允许。解决这个问题的办法是修改应用下web.xml文件,在web-app节点加入下面的代码:
<jsp-config>
<jsp-property-group>
<description>Special property group for JSP Configuration JSP example.</description>
<display-name>JSPConfiguration</display-name>
<url-pattern>*.jsp</url-pattern>
<el-ignored>true</el-ignored>
<page-encoding>GBK</page-encoding>
<scripting-invalid>false</scripting-invalid>
<include-prelude></include-prelude>
<include-coda></include-coda>
<description>Special property group for JSP Configuration JSP example.</description>
<display-name>JSPConfiguration</display-name>
<url-pattern>*.html</url-pattern>
<el-ignored>true</el-ignored>
<page-encoding>GBK</page-encoding>
<scripting-invalid>false</scripting-invalid>
<include-prelude></include-prelude>
<include-coda></include-coda>
</jsp-property-group>
</jsp-config>
建议编写 jsp 文件时声明 ContType 一致使用 GBK 编码方式。因为 gb2312 编码类型只能解释常用中文编码。对于一些生癖字会出现乱码。