restful思想中一个很牛的特行就是内容协商
意思是根据请求参数决定响应的格式,如json xml等
废话少说,直接上代码
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd"
default-autowire="byName">
<context:component-scan base-package="com.h2h.business.web.controller, com.h2h.business.web.ajax" />
<bean id="handlerAdapter" class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" >
<property name="messageConverters">
<list>
<bean class = "org.springframework.http.converter.StringHttpMessageConverter">
<property name = "supportedMediaTypes">
<list>
<value>text/plain;charset=UTF-8</value>
</list>
</property>
</bean>
</list>
</property>
</bean>
<!--
<bean id="handlerMapping" class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<property name="interceptors">
<list>
<bean class="com.h2h.web.interceptor.IfModifiedSinceInterceptor" />
</list>
</property>
</bean>
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="messages"/>
</bean>
<bean id="exceptionResolver" class="com.justel.idpro.web.springmvc.handler.ExceptionHandler">
<property name="defaultErrorView" value="error"/>
</bean>
-->
<!-- 总错误处理-->
<bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="defaultErrorView">
<value>/500</value>
</property>
<property name="defaultStatusCode">
<value>500</value>
</property>
</bean>
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="3145728"/>
</bean>
<!-- ==================================== 以下是restful 内容协商的配置 ================================ -->
<!-- 根据客户端的不同的请求决定不同的view进行响应, 如 /blog/1.json /blog/1.xml -->
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<!-- 设置为true以忽略对Accept Header的支持-->
<property name="ignoreAcceptHeader" value="true"/>
<!-- 在没有扩展名时即: "/user/1" 时的默认展现形式 -->
<property name="defaultContentType" value="text/html"/>
<!-- 扩展名至mimeType的映射,即 /user.json => application/json -->
<property name="mediaTypes">
<map>
<entry key="json" value="application/json" />
<entry key="xml" value="application/xml" />
</map>
</property>
<!-- 用于开启 /userinfo/123?format=json 的支持 -->
<property name="favorParameter" value="false"/>
<property name="viewResolvers">
<list>
<bean class="org.springframework.web.servlet.view.BeanNameViewResolver" />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/pages"/>
<property name="suffix" value=".jsp"/>
</bean>
</list>
</property>
<property name="defaultViews">
<list>
<!-- for application/json -->
<!-- <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" /> -->
<!-- for application/xml -->
<bean class="org.springframework.web.servlet.view.xml.MarshallingView" >
<property name="modelKey" value="toBeMarshalled"/>
<property name="marshaller">
<bean class="org.springframework.oxm.xstream.XStreamMarshaller">
<property name="annotatedClasses">
<list>
<value>com.h2h.business.domain.Company</value>
</list>
</property>
</bean>
</property>
</bean>
</list>
</property>
</bean>
</beans>
分享到:
相关推荐
综上所述,Spring 3.0中的Spring MVC提供了全面的支持来构建RESTful服务,包括定义控制器、处理HTTP方法、路径变量、响应状态码、内容协商等。`RestUrlRewriteFilter.java`可能是一个定制的过滤器,用于进一步优化和...
- **内容格式协商**:允许客户端指定接受的内容格式,如JSON或XML。 - **HTTP缓存**:利用HTTP协议中的缓存机制,减少重复请求,提高性能。 - **Cache-Control**:用于控制缓存的行为。 - **ETags**:一种标识资源...
Spring MVC Restful 基础搭建 ,主要包括:采用 GET POST PUT DELETE 进行数据的 CRUD ,以及内容协商机制,通过不同的请求返回不同的数据格式,包括 JSON XML 以及 HTML
5. **RESTful 支持**:通过 `@RequestMapping` 注解的 `produces` 和 `consumes` 属性,Spring MVC 3 支持创建 RESTful 风格的服务,方便构建 Web API。 6. **MVC 注解配置**:`@EnableWebMvc` 和 `@Configuration`...
- **内容格式协商**:允许客户端指定希望接收的数据格式(如JSON或XML)。 - **HTTP缓存**:通过设置适当的缓存头(如Cache-Control、ETags)来减少不必要的网络往返,提高响应速度。 #### 安全性 - **鉴权**:...
6. REST支持:Spring 3.x增加了对RESTful Web服务的全面支持,允许开发者通过注解轻松地将控制器映射到HTTP请求,并支持多种内容协商机制。 7. 测试支持:Spring提供了一套完整的测试支持库,包括模拟对象、测试上...
Spring 3.2版本新增了对Servlet 3异步请求处理的支持、改进了Spring MVC的测试框架、增强了内容协商功能、支持泛型的RestTemplate、对@RequestBody参数的支持,以及对日期和时间格式化的全球支持等。另外,Spring ...
除了阅读入门文章,初学者还可以通过其他资源继续深入学习Spring MVC,例如Keith Donald的Spring MVC 3 Showcase以及其他在线和印刷的资源。通过这些学习资源,初学者可以逐步掌握Spring MVC的高级功能,包括表单...
- **内容协商**: 支持多种格式的响应,如 JSON、XML。 4. **CRUD 操作** - **Create**: 创建新记录,通常使用 POST 请求。 - **Read**: 获取记录,GET 请求用于查询。 - **Update**: 更新记录,PUT 请求用于...
在"SpringMVC3.0_Demo"中,"spring3"目录可能包含了Spring的核心配置文件(如`applicationContext.xml`)、SpringMVC的配置文件(如`dispatcher-servlet.xml`)、以及Spring相关的bean定义。"jpa"目录则可能包含JPA...
1. **注解驱动的开发**:在 Spring MVC 3.0 中,开发者可以大量使用注解来简化配置,如 `@Controller`,`@RequestMapping`,`@Service`,`@Autowired` 等,这使得代码更加简洁且易于理解。 2. **类型安全的参数绑定...
其次,Spring MVC是Spring框架中的Web层组件,用于构建Web应用程序。4.2.0版本在处理HTTP请求、响应和视图解析方面进行了改进,支持更多的HTTP方法和内容协商策略。此外,它还加强了对RESTful服务的支持,使得构建...
此外,Spring MVC还提供了一些核心组件,如ContentNegotiationManager和ContentNegotiationStrategy,它们用于处理内容协商,即确定客户端期望的响应格式。根据HTTP请求头中的Accept字段,服务器可以选择合适的内容...
5. **RESTful服务增强**:Spring MVC在4.0.5中进一步优化了处理RESTful请求的能力,包括更好的HTTP方法支持、更强大的路径变量解析和内容协商功能。 6. **数据访问增强**:Spring Data项目得到了扩展,增加了对更多...
3.2.0引入了路径变量、内容协商、部分响应以及更好的RESTful支持。 4. **数据访问**:Spring 3.2.0加强了对JPA、Hibernate和MyBatis等持久层框架的支持,提供了统一的数据访问抽象,简化了事务管理。同时,增加了对...
Spring MVC在3.1.0中引入了路径变量、内容协商、RESTful风格的改进,提升了Web应用的开发效率和灵活性。例如,@PathVariable注解用于从URL中提取动态参数,增强了路由功能。 7. **类型安全的转换服务** 3.1.0版本...
4. **Web层的REST支持**:Spring MVC增加了对RESTful服务的支持,通过`@RequestMapping`注解可以轻松创建RESTful API。 5. **声明式模型验证**:Spring 3.2支持JSR-303/JSR-349标准的声明式模型验证,简化了数据校验...
在4.1版本中,Spring MVC增加了对ContentNegotiatingViewResolver的改进,使得内容协商更加智能,可以更好地处理多种格式的响应,如JSON、XML等。此外,模型视图名转换器(ModelAndViewNameTransformer)的引入允许...
3. **Dispatcher** - 负责路由请求到相应的Web Script,类似于Spring MVC中的DispatcherServlet。 4. **Adapter** - 框架提供的一系列适配器,用于将脚本执行的结果转换为HTTP响应,包括内容类型协商、错误处理等。 ...