返回首页
当前位置: 主页 > 编程语言 > JAVA教程 >

解决Apache Tomcat中shtml文件include jsp文件时中文显示乱码的

时间:2014-02-09 01:03来源:电脑教程学习网 www.etwiki.cn 编辑:admin

今天在Apache Tomcat中调试jsp程序时遇到一个问题,我发现随便建一个shtml文件,然后里面include(包含)一个jsp文件,jsp文件的内容很简单,直接输出一段中文字,发现在浏览器中运行输出的都是乱码,当然我的Apache Tomcat中已经开启了SSI功能,是支持shtml的。于是在网上搜索答案,说在jsp文件的头部加入一行语句:<%@ page contentType="text/html; charset=gbk"%>,我加了之后依然无效,百思不得其解。最终经过无数次调试后才有结果。

这里我省略在Apache Tomcat中开启SSI功能用来支持shtml的方法,详情请参看本站文章:《开启Apache Tomcat中的SSI功能(用来支持shtml)》

其实造成shtml文件include jsp文件时中文显示乱码的原因不是jsp代码的问题,问题还是出在Apache Tomcat的配置上,具体的解决方法如下:

1、找到$tomcat/conf/web.xml文件(其中的$tomcat为Apache Tomcat的安装路径)

2、用记事本打开web.xml,找到如下代码:

<servlet>
<servlet-name>ssi</servlet-name>
<servlet-class>
org.apache.catalina.ssi.SSIServlet
</servlet-class>
<init-param>
<param-name>buffered</param-name>
<param-value>1</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>expires</param-name>
<param-value>666</param-value>
</init-param>
<init-param>
<param-name>isVirtualWebappRelative</param-name>
<param-value>0</param-value>
</init-param>
<load-on-startup>4</load-on-startup>
</servlet>

3、在上面代码<load-on-startup>4</load-on-startup>的上面加入如下代码:

<init-param>
<param-name>inputEncoding</param-name>
<param-value>gbk</param-value>
</init-param>
<init-param>
<param-name>outputEncoding</param-name>
<param-value>gbk</param-value>
</init-param>

代码中的gbk可根据你实际情况来改变,因为我的网页都是使用的gbk编码,所以这里我用gbk;如果你的网页使用的是utf-8编码,那你设置成utf-8即可。

4、重启Apache Tomcat即可。

------分隔线----------------------------
标签(Tag):java java技巧 java实例教程 java源代码 java基础教程
------分隔线----------------------------
推荐内容
  • IDEA初始化配置 图解教程

    使用JetBrains IDEA已经两个月了,今天给我自动升级了,但是一直报一个错误(大致就是...

  • java中数组转为列表的几种方法

    java中数组转为集合List,是很基础常见的,日常开发中也经常会用到,今天整理了下,有...

  • java常用设计模式-策略设计模式

    java中常用的设计模式如单例模式、原型模式,这在之前的2篇文章中已经说明,还有代理...

  • Java开发规范

    编码规范就如同协议,有了Http、TCP等各种协议,计算机之间才能有效地通信,同样的,...

  • java泛型那些事

    泛型的类型安全性 有许多原因促成了泛型的出现,而最引人注意的一个原因,就是为了创...

  • HdfsSink原理解析

    我们先了解几个概念: batchSize sink从channel中取batchSize数量的event才会flush,sy...

猜你感兴趣