这个问题具体是这样。
我在 springmvc 中配置了一个resources的映射:
<mvc:resources location="/resources/" mapping="/resources-#{applicationProps['application.version']}/**"/>
然后我有一些HTML的模板文件放在resources目录下,当我在浏览器中请求时发现,请求的HTML包含中文时,response返回的Content-Length和实际的Content-Length不一致。
通过 Fiddler 抓取的HTTP请求/响应信息中能看到,Response Header中,Content-Length是153,而实际Response Body中只有147,这导致浏览器认为Body中还有内容没有接收到,从而一直等待后续响应,直到超时(会导致请求一直阻塞,直到超时)。
起初我怀疑是SpringMVC获取的资源大小数值有问题,但我调试了一下发现Spring MVC 取值并没有错误。
我检查了springmvc后续的执行逻辑,但我并没有找到其它的地方对response#contentLength有作出修改,我不清楚为何浏览器收到的响应头中Content-Length是153,我猜想也许和字符编码有关,如果您知道原因的话,请帮助我,多谢!
相关推荐
1. **排除静态资源路径**: 在Spring MVC配置文件中,使用`<mvc:resources>`标签指定静态资源的映射路径。 2. **使用Restful风格的路由**: 通过`@RequestMapping`注解指定路径变量和HTTP方法。 综上所述,Spring MVC...
最后,为了让Spring Boot能够处理静态资源(如HTML文件),我们需要在`src/main/resources/static`目录下创建一个`uploads.html`文件,并在`application.properties`中配置静态资源路径: ```properties spring....
- 静态方法不可以直接调用非静态方法,需要通过实例化对象来间接调用。 ##### 29. 对象克隆 - 使用`clone()`方法实现浅复制。 - 深复制通常需要序列化和反序列化对象。 ##### 30. GC(垃圾收集) - GC自动管理内存...
5. **静态资源服务**:对于静态文件(如图片、CSS、JavaScript),考虑使用Web服务器(如Apache或Nginx)提供服务,它们在性能上通常优于Java应用服务器。 6. **安全的文件下载链接**:可以生成一次性有效的下载...
Spring Boot提供了`Resource`和`ResourceResolver`,可以方便地处理静态资源的下载: ```java @GetMapping("/download") public ResponseEntity<Resource> download() { Resource resource = new ...
Spring的ContextLoader是提供这样性能的类,我们可以使用 ContextLoaderServlet或者ContextLoaderListener的启动时载入的Servlet来实例化Spring IOC容器 – 为什么会有两个不同的类来装载它呢,这是因为它们的使用...
为了将文件上传到远程服务器,我们需要构造一个POST请求,设置请求头(如Content-Type和Content-Length),并写入文件数据。例如: ```java URL url = new URL("http://remote-server.com/upload"); ...
在Java Web开发中,文件上传和下载是常见的功能需求,特别是在Spring MVC框架下。本教程将详细介绍如何利用`commons-fileupload`组件与Spring MVC结合实现文件上传,以及如何通过Servlet和`response`输出流实现文件...
1. **作用域public, private, protected, 以及不写时的区别** - **public**: 可以被任何类访问。 - **protected**: 可以被同一包内及不同包内的子类访问。 - **friendly** (默认): 只能被同一包内的类访问。 - ...
4. **关于MVC模式**: - MVC(Model-View-Controller)是一种软件设计模式,常用于Web开发。Model处理数据,View负责显示,Controller处理用户交互。 - 实现技术通常包括:Spring MVC、Struts、JSF等框架,通过...
2. **DispatcherServlet接收请求**:Spring MVC的核心控制器`DispatcherServlet`接收请求并负责调度整个流程。 3. **请求映射**:`DispatcherServlet`通过查找`HandlerMapping`来决定哪个Controller处理这个请求。 4...
- **静态INCLUDE**:编译时静态包含文件,效率高,但不灵活,无法传递参数。 #### 十四、assert的作用 - `assert`关键字用于声明断言,在开发阶段检查假设条件,当表达式为false时抛出AssertionError。 #### 十五...
Spring MVC的核心组件是`DispatcherServlet`,它负责接收来自客户端的请求,并将这些请求分发到合适的处理程序。当客户端向Web服务器发送请求时,服务器会根据请求URL判断是否与`DispatcherServlet`绑定的URL匹配。...
23. MVC的实现通常由Controller(如Struts的Action)处理请求,Model存储数据,View显示结果,Spring可以作为依赖注入框架集成到Struts中。 24. 常见的框架如Struts、JSF属于MVC模式,通过控制器处理请求,模型处理...
答:运行时异常时(JVM)java虚拟机在运行过程中发生的问题,比如:内存溢出等问题。这类异常没法要求程序员去一一捕获并抛出,一般异常是Java类库或程序员自己写的代码发生的错误,这类异常可以由我们去一一捕获并...
- **解答:** 异常处理机制允许程序在运行时检测到错误并做出适当的响应。`throws`用于声明可能抛出的异常;`throw`用于抛出异常;`try`块包含可能抛出异常的代码;`catch`块用于捕获并处理异常;`finally`块无论...
Freemarker是一款强大的模板引擎,常用于Web应用中的视图层渲染,比如JavaEE的Spring MVC框架就常常结合Freemarker来实现动态页面生成。本操作手册将带你深入理解Freemarker的基础概念、语法特性以及如何进行实际...
- **Spring MVC**:基于Spring框架,提供了丰富的特性,如自动绑定请求参数到模型对象、灵活的结果视图渲染等。 - **Struts2**:基于WebWork框架发展而来,具有强大的插件系统和丰富的标签库。 - **Ruby on Rails**...
- 创建表A时,要设置m字段为唯一(UNIQUE)且非空(NOT NULL),n字段初始值为0,m、n、y字段不可为空(NOT NULL)。 - 修改表A的n字段初始值,可以通过ALTER TABLE语句实现,例如`ALTER TABLE A ALTER COLUMN n ...