【问题管理】-- Tomcat8部署项目加载静态资源html页面编码错误

1.问题背景及解决方式

最近在回顾Tomcat部署Web项目,自己简单地从Tomcat的下载安装及配置server.xml文件入手,学习Tomcat的项目部署,在自己使用IDEA创建了一个简单地web项目,并尝试将项目复制到Tomcat的安装运行目录下:.\apache-tomcat-8.5.50\webapps中,使用这种简单地拖放式管理来验证我项目的部署是否能被Tomcat服务器带动并访问,于是我创建了一个oa命名的项目,访问hello.html页面,项目如下:

.html文件是IDEA自动生成的HTML4文件格式,在当中我添加了<title>与<body>中的标签页。

 创建好oa项目之后,我将此项目存放在我Tomcat的webapps目录下托管:

我在Tomcat的安装bin目录中点击startup.bat运行项目之后,在google浏览器中打开并访问我的hello.html页面,尴尬的一幕发生了,页面显示出现了乱码:

于是在网上找了一些解决方案,最终自己解决了这个问题,感谢CSDN博客博主经验分享:

https://blog.csdn.net/jjarchu/article/details/89575277,本文的问题基于该博客做参考,并结合自己实际的问题背景进行问题总结。

具体解决方案如下:

①    首先,我在Tomcat配置文件server.xml中的启动默认端口8080与重定向端口8443处添加了:URIEncoding="UTF-8" ;

 

这个因为原来默认的Tomcat8的server.xml文件中是没有添加这个”UTF-8”的编码的,但是很多地方web访问的话都需要,所以直接加上,但是添加之后重启startup.bat继续访问页面,发现问题并没有得到解决,依然是这个错误编码页面:

②   之后我借鉴了博文中的第一点,修改了我本来hello.html中的H4页面配置,添加了:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">之后,再次重启Tomcat并访问页面,问题得到解决:

2.问题解决方案总结

这里来总结一下Tomcat访问静态资源如.html、.jsp文件容易遇到的编码问题的解决方法,汇总一下,便于查询:

1.方式一:

在原本的.html文件中添加:<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

2.方式二:

在Tomcat8的安装目录server.xml中的启动默认端口8080与重定向端口8443处添加了:URIEncoding="UTF-8" ;

3.方式三:

在web.xml文件中设置编码:

<mime-mapping>
<extension>htm</extension>
<mime-type>text/html;charset=UTF-8</mime-type>
</mime-mapping>
<mime-mapping>
<extension>html</extension>
<mime-type>text/html;charset=UTF-8</mime-type>
</mime-mapping>

4.方式四:

如果是IDE启动,设置启动参数 Debug configurations->tomat 8.0->argument

 -Dfile.encoding=UTF8;

如果是Tomcat服务形式启动,设置catalina.bat

  set "JAVA_OPTS=%JAVA_OPTS% %JSSE_OPTS%" -Dfile.encoding=UTF8

5.方式五:

将文件用记事本或者EditPlus打开,另存为UTF-8格式

猜你喜欢

转载自www.cnblogs.com/yif0118/p/12245306.html