博客源码下载:戳我一下
SpringMVC学习笔记汇总:SpringMVC学习笔记汇总
一、什么是RESTful
RESTful
架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。
RESTful
(即Representational State Transfer
的缩写)其实是一个开发理念,是对http
的很好的诠释。
1、对url
进行规范,写RESTful
格式的url
- 非
REST
的url
:http://...../queryItems.action?id=001&type=T01
REST
的url
风格:http://..../items/001
特点:url
简洁,将参数通过url
传到服务端
2、http
的方法规范
不管是删除、添加、更新。。使用url
是一致的,如果进行删除,需要设置http
的方法为delete
。
后台controller
方法:判断http
方法,如果是delete
执行删除,如果是post
执行添加。
3、对http
的contentType
规范
请求时指定contentType
,要json
数据,设置成json
格式的type
。
更多内容参考:
理解RESTful架构
二、URL
模板模式映射
@RequestMapping(value="/viewItems/{id}")
:{×××}
占位符,请求的URL
可以是“/viewItems/1”或“/viewItems/2”
,通过在方法中使用@PathVariable
获取{×××}
中的×××
变量。
@PathVariable用于将请求URL中的模板变量映射到功能处理方法的参数上。
@RequestMapping("/viewItems/{id}")
public @ResponseBody viewItems(@PathVariable("id") String id,Model model) throws Exception{
//方法中使用@PathVariable获取useried的值,使用model传回页面
//调用 service查询商品信息
ItemsCustom itemsCustom = itemsService.findItemsById(id);
return itemsCustom;
}
如果RequestMapping
中表示为"/viewItems/{id}"
,id
和形参名称一致,@PathVariable
不用指定名称。
三、RESTful
的例子
需求:
RESTful
方式实现商品信息查询,返回json
数据
1、controller
编写:
定义方法,进行url
映射使用RESTful
风格的url
,将查询商品信息的id传入controller
.
输出json
使用@ResponseBody
将java
对象输出json
。
//查询商品信息,输出json
///itemsView/{id}中的id表示这个位置的参数要传到@PathVariable指定的名称中
@RequestMapping("/itemsView/{id}")
public @ResponseBody ItemsCustom itemsView(@PathVariable("id") Integer id) throws Exception {
//调用service查询商品信息
ItemsCustom itemsCustom = itemsService.findItemsById(id);
return itemsCustom;
}
2、RESTful
方法的前端控制器配置
在web.xml
配置
<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>
3、部署调试
四、对静态资源的解析
如果在DispatcherServlet
中设置url-pattern
为 /
则必须对静态资源进行访问处理。
spring mvc
的<mvc:resources mapping="" location="">
实现对静态资源进行映射访问。
如下是对js文件访问配置:
<mvc:resources location="/js/" mapping="/js/**"/>