1. 对get参数的处理, 可以看到
(1) org.apache.catalina.connector.Request中getParameter,
(2) org.apache.tomcat.util.http.Parameters的handleQueryParameters
最后添加参数时一句代码:
addParam( urlDecode(tmpName, enc), urlDecode(tmpValue, enc) );
所以说,进行了url解码了,但是指定的字符集enc还需要正确才能正确的处理get参数
2. 对header的处理
org.apache.coyote.http11.InternalInputBuffer的parseHeader方法
MimeHeaderField对应一个header, 先设置header的name,再设置header的value,都是原始的字节
headerValue = headers.addValue(buf, start, pos - start);
headerValue.setBytes(buf, start, realPos - start);
在读取header时
public String getHeader(String name) {
MessageBytes mh = getValue(name);
return mh != null ? mh.toString() : null;
}
所以可以看到,header若包含了中文名,则处理的返回结果应该就是乱码。
分享到:
相关推荐
Invalid character found in the request target.The valid characters are defined in RFC 7230 and RFC3986。...tomcat版本升级后,请求中包含的特殊字符或中文会引起此报错。 更换此tomcat可解决。
Tomcat服务器作为Apache软件基金会的Jakarta项目中的核心组件,是基于Java Servlet和JavaServer Pages(JSP)技术的Web应用服务器,它扮演着接收HTTP请求并处理这些请求的角色,然后将结果返回给客户端。以下是...
本篇文章将详细讲解如何使用Nginx作为反向代理服务器来实现对Tomcat应用服务器的负载均衡和集群配置。 首先,我们需要理解Nginx和Tomcat的角色。Nginx是一款高性能的HTTP和反向代理服务器,常用于处理静态内容和...
tomcat解决跨域访问问题,具体配置如下: 1、修改tomcat下的Conf/web.xml文件,在该文件内容中新增以下配置,注意,若该web.xml中存在其它filter,则需要将该filter放在所有filter前面; <filter-name>...
Tomcat主要负责运行Java Web应用程序,如Servlet和JSP,而Nginx则作为一个前端代理,处理静态资源请求,同时将动态请求转发到Tomcat进行处理。通过这种方式,Nginx可以减轻Tomcat的负担,提高整体性能。 共享80端口...
在开发基于Spring Boot的应用时,有时我们会遇到一个棘手的问题,即当GET请求中的键值对包含特殊字符时,服务器可能会抛出错误。这通常是因为Tomcat服务器默认配置不支持某些特殊字符,如"[\]^`{|}"等。本文将详细...
- 请求行:包含请求方法(GET、POST等)、资源路径和协议版本。 - 请求头:包含客户端向服务器发送的元信息,如接受的数据类型、语言偏好等。 - 请求体:包含客户端发送的数据,如表单提交数据。 ##### ...
在IT行业中,尤其是在服务器部署和优化领域,Nginx与Tomcat的组合是常见的解决方案,因为它们各自在处理不同类型的请求上具有优势。Nginx以其高性能、低资源消耗著称,适合处理静态内容和反向代理任务;而Tomcat作为...
在IT行业中,Tomcat作为一款广泛应用的开源Java Servlet容器,经常需要处理文件的上传、下载和删除等操作。本文将详细讲解如何在Tomcat环境中进行这些操作,以及解决可能出现的问题。 首先,我们要理解Tomcat在文件...
在Android开发中,有时我们需要构建一个前后端分离的系统,其中Android客户端作为前端,而Servlet作为后端处理逻辑,服务器通常选择Apache Tomcat。本文将详细介绍如何实现Android与Tomcat服务器之间的交互,以及在...
在Linux环境下,构建一个高效的Web服务架构通常会结合Nginx和Tomcat,利用Nginx的反向代理和负载均衡能力,以及Tomcat对于Java应用的出色支持。本配置指南将详细介绍如何在Linux系统中设置Nginx与Tomcat的负载均衡...
Nginx以其高性能的反向代理和静态文件处理能力而闻名,而Tomcat作为Java应用服务器,擅长运行Java Servlets和JSP。结合两者,我们可以构建一个强大的Web服务架构。 首先,我们需要理解Nginx的工作原理。Nginx作为一...
在构建高性能、高可用性的Web应用系统时,Tomcat作为流行的Java应用服务器,常常需要与缓存系统结合,以提高数据处理效率。Redis作为一个高效、轻量级的内存数据结构存储,常被用作缓存服务。将Tomcat与Redis集成,...
### Nginx与Tomcat HTTPS至HTTP反向代理配置详解 #### 一、Windows环境下Nginx与Tomcat ...此外,通过调整Nginx的配置参数,还可以进一步优化性能和稳定性。希望这些信息能帮助您顺利完成Nginx与Tomcat的集成配置。
Nginx作为一个轻量级的反向代理服务器,通常用于处理静态内容和实现负载均衡,而Tomcat作为Java应用服务器,负责处理动态请求。以下是对这个主题的详细解释: 首先,我们需要安装Nginx。在Linux环境下,这通常通过...
Tomcat 8.5.x版本升级变化 By jmatrix_ds | Published 2017 年 1 月 9 日 1. 其中一些重要变化(对HTTP2,SSL支持的改动较多) <1> 不再提供对HTTP BIO,AJP BIO的支持; <2> 重构HTTP upgrade与AJP实现,减少重复;...
【描述】:本文将深入探讨在 Tomcat 服务器上处理跨域问题的解决方案,包括理解跨域策略和配置 CORS(跨源资源共享)过滤器。 【标签】:Tomcat跨域,CORS 【正文】: 在Web开发中,由于同源策略的限制,浏览器会...
Nginx作为一款高性能的反向代理服务器,常被用来实现对后端多台Tomcat服务器的负载均衡。本篇文章将详细介绍如何配置Nginx实现对多个Tomcat实例的负载均衡。 首先,我们需要了解Nginx的基本工作原理。Nginx通过接收...
首先,Nginx是一个高性能的HTTP和反向代理服务器,它能够处理大量的并发连接,同时作为负载均衡器,可以将请求分发到多个后端服务器,如Tomcat实例。Tomcat则是广泛使用的Java Servlet容器,用于运行Java Web应用。 ...
【标签】:“源码”和“工具”表明这个示例涉及到了实际操作和可能需要深入理解Nginx和Tomcat的配置文件,以及可能涉及到对源代码的查看和理解。 总结,Nginx+Tomcat的负载均衡配置提供了一种高效且灵活的解决方案...