日期:2014-05-17 浏览次数:20863 次
接上一篇对spring rest的描述.
?
?
?
一.REST内容协商介绍?
?
?
?
RESTful服务中很重要的一个特性即是同一资源,多种表述.也即如下面描述的三种方式:
GET /user/123 HTTP/1.1 Accept: application/xml //将返回xml格式数据 GET /user/123 HTTP/1.1 Accept: application/json //将返回json格式数据?
/user/123.xml 将返回xml格式数据 /user/123.json 将返回json格式数据 /user/123.html 将返回html格式数据?
/user/123?format=xml //将返回xml数据 /user/123?format=json //将返回json数据?
chrome: Accept:application/xml,application/xhtml+xml,textml;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 firefox: Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 IE8: Accept:image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, application/x-silverlight, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*?
    <!-- 根据客户端的不同的请求决定不同的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">