Restful架构,就是目前 流行的一种互联网架构。他结构清晰,符合标准,已于理解,扩展方便,所以正得到越来越多网站的采用。Restful架构对url进行规范,写restful格式的url是怎么样子呢》我们一般请求的url是类似 这样子的:
http://...../xxx.action?id=001&type=aaa
而rest的url的风格是什么样子的呢?一般他类似于:http://..../xxx/001
所以REST有个很明显的特点:使url变得简洁 ,将参数通过url传到服务器,springmvc也是支持这种REST风格的url的,我们定义一个controller来测试一下:
//查询商品信息,输出json。使用RESTful。
@RequestMapping("/itemView/{id}")
public @ResponseBody ItemCustom itemView(@PathVariable(“id”) Integer id) throwException{
ItemsCustom itemsCustom = itemsService.findItemsById(id); return itemsCustom;
}
@ResponseBody是用来将itemsCustom转成json注解的,而@PathVariable注解则是跟REST有关了。
@RequestMapping(value="/itemView/{id}")中的{id}表示一个占位符,那么这里面传过来的值会被传到@PathVariable编辑的形参
,如果形参和占位符中的变量是一样的话,可以不用再注解中的指定了。否则注解中要指定这个占位符 中的变量(即id).
这样的话,参数就可以通过url传到形参中来了。
但是这样还不行。还要在前端控制器总针对REST进行配置,如下:
<!-- 配置springmvc的前端控制器DispatcherServlet,REST配置 -->
<servlet>
<servlet-name>springmvc_rest</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/springmvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc_rest</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
拦截的是多有的url(/).这个配置跟以前配置好的前端控制器是没有冲突的。可以并存。经过这样的配置后,就可以
在浏览器中输入http://localhost:8080/SpringMVV_studyView/1 来测试返回到浏览器的数据了。乐意看到返回遗传json数据。
但是有个问题,使用上面的配置后悔拦截所有的url.那么对静态资源也会拦截。所以DispatcherServlet也会解析静态资源,但是这样的话就会出错,所以我们要设置一下不让解析静态资源springmvc.xml.如;
<!-- 静态资源解析,包括js,css,img... --> <mvc:resources location="/js/" mapping="/js/**"></mvc:resources> <mvc:resources location="/img/" mapping="/img/**"></mvc:resources>
如果还有其他静态资源的话,也要设置一下,这样就不会去解析静态资源呢了,访问静态资源的时候就可以直接访问。
这里是我转载的 https://www.cnblogs.com/shanheyongmu/p/5882125.html