首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Tomcat常用配置,跟乱码Say Goodbye

1.修改Tomcat的访问端口

我们找到tomcat安装目录的conf子目录下的server.xml文件,找到Connector标签,如下图:

默认端口8080

我们可以看到其中有个port="8080",一般上线前我们把这个修改成80,这样访问路径就变成了http://localhost/(结合上一篇文章Tomcat部署,修改访问路径),图中其他属性保持不变

2.修改Tomcat的编码格式

接着上一个端口配置,我们在Connector标签中再追加一个属性URIEncoding="UTF-8",配置内容就是这么简单,不过在这边说明一下为什么要增加这个配置,以及简要介绍下原理.

设置编码格式

默认情况下,Tomcat会将用户(浏览器端)打包的请求内容使用ISO8859-1编码格式进行拆包解码(理解成request),再调用我们编写的业务逻辑程序,然后使用ISO8859-1编码格式进行打包编码(理解成response)反馈给用户.而ISO8859-1编码格式是不支持中文的,简而言之会出现乱码.

这边提到了乱码,我们就总结一下如何避开乱码问题(大家如果遇到乱码,可以通过这几个关键配置区域查找问题所在)

1.容器层:上面已经说明了tomcat容器需要配置拆包打包的默认编码格式

2.展示层:再来是JSP中,我们应该都知道需要配置页面编码格式,一般我们在页面最上面需要配置

jsp页面顶部编码格式配置

head标签中编码格式配置

3.持久层:项目使用的数据库也同样使用UTF-8的编码格式(如何配置?这个需要根据具体的数据库来配置,这边不做介绍)

4.编码层:将我们编写的java项目中的代码编码格式统一成UTF-8,以MyEclipse为例,右击我们的项目,点击properties

项目代码的编码格式

5.业务层:将程序运行时的编码格式统一成UTF-8,即在每一个处理请求的地方使用request.setCharacterEncoding("UTF-8");当然我们不会这么蠢,这样写起来又累又不方便维护,所以我们需要写一个通用编码过滤器,在这个过滤器中配置request的编码格式.而如果你所在公司使用了框架,那这个就不用我们担心啦,我举个springMVC的配置例子.我们只需要在web.xml中配置CharacterEncodingFilter这个过滤器即可,如下图:

web.xml中配置编码格式

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180318G16CYG00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券