tomcat 与 nginx,apache 的区别是什么?- 代码小郭的回答 - 知乎
https://www.zhihu.com/question/32212996/answer/3218239422

根据题目和讨论,可以总结以下几点关于HttpServletRequest.getParameter()获取参数的编码问题:
1. 编码由客户端浏览器和Web容器(如Tomcat)的配置共同决定,而不是单一因素决定。
2. 编码过程:
- 浏览器根据HTML中指定的编码格式(如`<meta charset="UTF-8">`)对参数进行编码
- Web容器(如Tomcat)根据其配置的编码格式对参数进行解码
3. GET和POST请求对编码的处理有所不同:
- GET请求的参数编码通常由浏览器决定
- POST请求的参数编码可以在表单中指定
4. Tomcat等Web容器通常有默认的编码设置,如Tomcat早期版本默认ISO-8859-1,新版本默认UTF-8
5. 为避免乱码问题,需要确保客户端编码和服务器解码的一致性
6. 可以通过配置或代码方式指定服务器端的解码格式,如: request.setCharacterEncoding("UTF-8");
7. 编码问题与服务器操作系统无关,主要涉及浏览器和Web容器
8. 解决编码问题的关键是使客户端与Web容器的编码方式兼容
总之,这是一个由多方面因素共同决定的问题,需要综合考虑客户端和服务器端的编码设置,以确保正确获取参数。