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中配置编码格式
领取专属 10元无门槛券
私享最新 技术干货