共计 1241 个字符,预计需要花费 4 分钟才能阅读完成。
众所周知,Tomcat 是一个基于 HTTP 协议的 Java 应用服务器(非 Web 服务器),也是一个 Servlet 容器.
一般我们会基于使用 HTTP 协议的 Post 或 Get 方法来传递内容或参数,中间会涉及一些编解码操作,若不了解编解码过程可能会遇到乱码或解析问题.
接下来,我们来了解下调用方与 tomcat 交互时编解码过程:
- 调用方使用 utf- 8 进行 encode(可在代码层实现)
- tomcat 使用 iso8859- 1 进行 decode(server.xml 对应的 Connector 设置)
- servlet 使用 iso8859- 1 进行 encode(webapp 中 web.xml 中设置,注意:该方式仅 tomcat 7.x 版本支持)
- 服务方使用 utf- 8 进行 decode(可在代码层实现)
提醒:不知道大家可注意到了,调用方与服务方最终使用的编码格式必须统一;另外,tomcat 与 servlet 的编码格式也必须统一. 当然我们因业务需要也可以使用其他编码格式(如:GBK),但建议为了跨平台和字符集兼容,建议统一使用 UTF-8
那么当我们真的出现了编码问题如何解决呢?
1.修改 JSP 页面的 Content-Type类型为 UTF-8(<%@page cotnentType="mime/type; charset=UTF-8" %>)
2.在 server.xml中 <Connector> 设置 URIEncoding="UTF-8"或 useBodyEncodingForURI="true"
3.在 web.xml字符编码过滤器中设置编码为 UTF-8
4.把所有 servlets 的 Content-Type设置为 UTF-8
RedHat Linux 5.5 安装 JDK+Tomcat 并部署 Java 项目 http://www.linuxidc.com/Linux/2015-02/113528.htm
Tomcat 权威指南(第二版)(中英高清 PDF 版 + 带书签) http://www.linuxidc.com/Linux/2015-02/113062.htm
Tomcat 安全配置与性能优化 http://www.linuxidc.com/Linux/2015-02/113060.htm
Linux 下使用 Xshell 查看 Tomcat 实时日志中文乱码解决方案 http://www.linuxidc.com/Linux/2015-01/112395.htm
CentOS 64-bit 下安装 JDK 和 Tomcat 并设置 Tomcat 开机启动操作步骤 http://www.linuxidc.com/Linux/2015-01/111485.htm
CentOS 6.5 下安装 Tomcat http://www.linuxidc.com/Linux/2015-01/111415.htm
Tomcat 的详细介绍:请点这里
Tomcat 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-08/121556.htm