大家都知道spring mvc 3.0中的JSON 响应用起来很方便的, 用@ResponseBody 标记, 然后handler 的方法的返回值设为Object. 但是现在的问题是这样不能够定制Http header.
之前有网友称使用HttpEntity. 具体怎么用我也不清楚, 只是个人感觉用起来不够优雅. 所以就有了这个文章, 经过一翻尝试. 笔者实现了定制Http 响应头中的缓存信息, 不设这个的话傻傻的IE7 会把AJAX 请求作缓存. 非常讨厌.
具体实现方法是继承org.springframework.http.converter.json.MappingJacksonHttpMessageConverter, 如下是我的代码
import java.io.IOException;
import org.springframework.http.HttpOutputMessage;
import org.springframework.http.converter.HttpMessageNotWritableException;
import org.springframework.http.converter.json.MappingJacksonHttpMessageConverter;
public class NoCacheMappingJacksonHttpMessageConverter extends
MappingJacksonHttpMessageConverter {
@Override
protected void writeInternal(Object o, HttpOutputMessage outputMessage)
throws IOException, HttpMessageNotWritableException {
outputMessage.getHeaders().set("Cache-Control", "no-cache");
super.writeInternal(o, outputMessage);
}
}
当然也少不了dispatcher-servlet.xml中的配置:
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<bean class="org.springframework.http.MediaType">
<constructor-arg value="text"/>
<constructor-arg value="plain"/>
<constructor-arg value="utf8"/>
</bean>
</list>
</property>
</bean>
<!--
<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/>
-->
<bean class="com.fpi.mespvc.web.util.NoCacheMappingJacksonHttpMessageConverter"/>
</list>
</property>
</bean>
笔者亲测. 完全好用.
分享到:
相关推荐
### Spring MVC 3.0 实战指南 #### Spring MVC 框架简介 Spring MVC 是 Spring Framework 的一个重要组成部分,主要用于构建基于 Java 的 Web 应用程序。它是一种基于 Model-View-Controller (MVC) 设计模式的轻量...
根据给定的文件信息,我们将深入探讨Spring 3.0 MVC框架的核心概念、架构与实践。Spring MVC是Spring框架的一部分,专门用于构建基于Java的Web应用程序。它提供了一个灵活且强大的模型-视图-控制器(Model-View-...
在Spring MVC框架中,Ajax(Asynchronous JavaScript and XML)是一种常用的技术,用于在不刷新整个页面的情况下与服务器进行异步通信。本章将探讨如何在Spring MVC中集成和使用Ajax,以及涉及的上传和下载功能,...
5. **Message Converters**:Spring MVC提供了一组内置的消息转换器,用于将HTTP请求体和响应体与Java对象之间进行自动转换,如MappingJackson2HttpMessageConverter处理JSON格式。 6. **ModelAndView Enhancements...
在Java Web开发中,Spring MVC框架因其强大的功能和灵活性而备受青睐。在处理HTTP请求时,@RequestMapping注解扮演着至关重要的角色,它负责将客户端的请求映射到控制器中的具体方法。本文将深入探讨@RequestMapping...
在IT行业中,Spring MVC、Spring Security和Redis是三个非常重要的技术组件,它们分别在Web开发、权限管理和数据缓存方面发挥着关键作用。下面将详细解释这三个技术以及它们如何协同工作。 **Spring MVC** Spring ...
用户登录成功后生成唯一Token,并将其放置于HTTP Header中,用于后续请求的身份验证。 - **数据格式**:数据传输主要采用JSON格式,保证了数据的轻量化和易于解析。 **1.4 开发环境搭建** - **软件需求**:需要...
SpringMVC 是一款由 Spring 框架衍生出的用于构建 Web 应用程序的 Model-View-Controller(MVC)框架,它极大地简化了Java Web应用的开发。本大纲笔记将带你逐步深入理解SpringMVC的核心概念和使用方法。 一、...
在 Spring MVC 框架中,客户端通常通过浏览器向服务器发送 HTTP 请求,请求的目标是一个由 DispatcherServlet 配置的 URL。DispatcherServlet 是 Spring MVC 的核心组件,它负责处理所有到达应用程序的请求。 (2)...
Spring Boot 是一个开源的 Java 基础框架,主要用于快速、简便地创建独立的、生产级别的基于Spring的应用程序。它使用“约定优于配置”的原则,让开发者能够更快地构建项目。Spring Boot 的配置系统非常灵活,允许...
在 Spring MVC 3.0 中,开发者可以利用这些特性快速构建 RESTful 服务,实现服务的轻量化、松耦合以及跨平台通信。随着版本的更新,Spring Rest 功能越来越强大,包括支持 CORS(跨域资源共享)、WebFlux(反应式...
该资源包含以下jar包: commons-codec-1.6.jar commons-logging-1.1.1.jar fluent-hc-4.2.5.jar ... spring-webmvc-4.0.0.RELEASE.jar standard.jar struts2-core-2.3.24.jar xwork-core-2.3.24.jar
在Spring MVC框架中,注解的使用极大地简化了配置过程,使得开发者能够更加专注于业务逻辑。Spring 2.5引入了一系列注解,使得基于XML的配置可以被注解配置所替代,提高了开发效率和代码的可读性。下面将详细解释...
SpringMVC是Spring框架的一个模块,专为构建Web应用程序提供模型-视图-控制器(MVC)架构。它简化了Java Web开发,并提供了强大的组件和工具来处理HTTP请求、响应以及数据绑定。以下是对SpringMVC相关jar包的详细...
总结来说,Spring MVC中处理Controller的字符编码问题主要是通过设置响应的`Content-Type`,使用`@RequestMapping`的`produces`属性,或者直接操作`HttpServletResponse`来指定字符集。同时,了解如何使用不同的参数...
Spring MVC中的拦截器是基于AOP(面向切面编程)原理实现的,可以理解为对Controller方法调用的预处理和后处理。下面将详细探讨Spring拦截器的使用以及高级参数绑定和Controller返回值的相关知识。 首先,我们创建...
12.2.3使用RequestPostProcessor在Spring MVC测试中以用户身份运行 106 作为用户在Spring MVC测试中使用注释运行 108 12.2.4测试HTTP基本认证 109 12.3 SecurityMockMvcRequestBuilders 109 12.3.1测试基于表单的...
requestheader:Content-Type=application/json;charset=UTF-8 requestbody:{"id":3,"username":"王五","userpwd":"123456","birthdy":"2013-11-07 02-30-44"} sql文件如下: SET FOREIGN_KEY_CHECKS=0; DROP ...
3. Action类(如果有的话):在Struts或Spring MVC等MVC框架中,负责处理请求,执行业务逻辑,并以JSON格式返回结果。 总结一下,这个例子展示了如何使用JSON和AJAX进行前后端的数据交互,通过HTML页面向服务器发送...