0 0

关于Spring MVC 请求某些静态资源时,响应的Content-Length不准确的问题30

这个问题具体是这样。
我在 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,我猜想也许和字符编码有关,如果您知道原因的话,请帮助我,多谢!

2014年7月06日 20:03
  • 大小: 77.7 KB
  • 大小: 41.9 KB

1个答案 按时间排序 按投票排序

0 0

我也遇到了这种问题,所以就不显示指定content-length了

2014年9月30日 10:31

相关推荐

    spring mvc

    1. **排除静态资源路径**: 在Spring MVC配置文件中,使用`&lt;mvc:resources&gt;`标签指定静态资源的映射路径。 2. **使用Restful风格的路由**: 通过`@RequestMapping`注解指定路径变量和HTTP方法。 综上所述,Spring MVC...

    spring boot 文件上传实例

    最后,为了让Spring Boot能够处理静态资源(如HTML文件),我们需要在`src/main/resources/static`目录下创建一个`uploads.html`文件,并在`application.properties`中配置静态资源路径: ```properties spring....

    大数据面试宝典包含java基础和spring面试题

    - 静态方法不可以直接调用非静态方法,需要通过实例化对象来间接调用。 ##### 29. 对象克隆 - 使用`clone()`方法实现浅复制。 - 深复制通常需要序列化和反序列化对象。 ##### 30. GC(垃圾收集) - GC自动管理内存...

    下载文件(JSP)

    5. **静态资源服务**:对于静态文件(如图片、CSS、JavaScript),考虑使用Web服务器(如Apache或Nginx)提供服务,它们在性能上通常优于Java应用服务器。 6. **安全的文件下载链接**:可以生成一次性有效的下载...

    java文件下载的常用方式

    Spring Boot提供了`Resource`和`ResourceResolver`,可以方便地处理静态资源的下载: ```java @GetMapping("/download") public ResponseEntity&lt;Resource&gt; download() { Resource resource = new ...

    spring源代码解析

    Spring的ContextLoader是提供这样性能的类,我们可以使用 ContextLoaderServlet或者ContextLoaderListener的启动时载入的Servlet来实例化Spring IOC容器 – 为什么会有两个不同的类来装载它呢,这是因为它们的使用...

    springshiroHttpURLConnection.zip

    为了将文件上传到远程服务器,我们需要构造一个POST请求,设置请求头(如Content-Type和Content-Length),并写入文件数据。例如: ```java URL url = new URL("http://remote-server.com/upload"); ...

    java文件上传下载

    在Java Web开发中,文件上传和下载是常见的功能需求,特别是在Spring MVC框架下。本教程将详细介绍如何利用`commons-fileupload`组件与Spring MVC结合实现文件上传,以及如何通过Servlet和`response`输出流实现文件...

    java程序员面试题——863面试集

    1. **作用域public, private, protected, 以及不写时的区别** - **public**: 可以被任何类访问。 - **protected**: 可以被同一包内及不同包内的子类访问。 - **friendly** (默认): 只能被同一包内的类访问。 - ...

    java面试题,初中级java工程师面试题

    4. **关于MVC模式**: - MVC(Model-View-Controller)是一种软件设计模式,常用于Web开发。Model处理数据,View负责显示,Controller处理用户交互。 - 实现技术通常包括:Spring MVC、Struts、JSF等框架,通过...

    2018 最新java面试题(技术面试)

    2. **DispatcherServlet接收请求**:Spring MVC的核心控制器`DispatcherServlet`接收请求并负责调度整个流程。 3. **请求映射**:`DispatcherServlet`通过查找`HandlerMapping`来决定哪个Controller处理这个请求。 4...

    中科软JAVA面试题

    - **静态INCLUDE**:编译时静态包含文件,效率高,但不灵活,无法传递参数。 #### 十四、assert的作用 - `assert`关键字用于声明断言,在开发阶段检查假设条件,当表达式为false时抛出AssertionError。 #### 十五...

    2018-最新java面试题(技术面试).docx

    Spring MVC的核心组件是`DispatcherServlet`,它负责接收来自客户端的请求,并将这些请求分发到合适的处理程序。当客户端向Web服务器发送请求时,服务器会根据请求URL判断是否与`DispatcherServlet`绑定的URL匹配。...

    2011 广州 面试笔试题:.doc

    23. MVC的实现通常由Controller(如Struts的Action)处理请求,Model存储数据,View显示结果,Spring可以作为依赖注入框架集成到Struts中。 24. 常见的框架如Struts、JSF属于MVC模式,通过控制器处理请求,模型处理...

    java面试题

    答:运行时异常时(JVM)java虚拟机在运行过程中发生的问题,比如:内存溢出等问题。这类异常没法要求程序员去一一捕获并抛出,一般异常是Java类库或程序员自己写的代码发生的错误,这类异常可以由我们去一一捕获并...

    Java基础知识及面试题

    - **解答:** 异常处理机制允许程序在运行时检测到错误并做出适当的响应。`throws`用于声明可能抛出的异常;`throw`用于抛出异常;`try`块包含可能抛出异常的代码;`catch`块用于捕获并处理异常;`finally`块无论...

    freemark操作手册

    Freemarker是一款强大的模板引擎,常用于Web应用中的视图层渲染,比如JavaEE的Spring MVC框架就常常结合Freemarker来实现动态页面生成。本操作手册将带你深入理解Freemarker的基础概念、语法特性以及如何进行实际...

    Struts2.0框架技术详解

    - **Spring MVC**:基于Spring框架,提供了丰富的特性,如自动绑定请求参数到模型对象、灵活的结果视图渲染等。 - **Struts2**:基于WebWork框架发展而来,具有强大的插件系统和丰富的标签库。 - **Ruby on Rails**...

    Java程序员面试题大全

    - 创建表A时,要设置m字段为唯一(UNIQUE)且非空(NOT NULL),n字段初始值为0,m、n、y字段不可为空(NOT NULL)。 - 修改表A的n字段初始值,可以通过ALTER TABLE语句实现,例如`ALTER TABLE A ALTER COLUMN n ...

Global site tag (gtag.js) - Google Analytics