【SpringMVC整合MyBatis】springmvc对RESTful支持

  1. 云栖社区>
  2. 博客>
  3. 正文

【SpringMVC整合MyBatis】springmvc对RESTful支持

光仔december 2015-08-15 11:35:00 浏览1400
展开阅读全文
1.什么是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。。

2.REST的例子
2.1需求
查询商品信息,返回json数据。

2.2controller
定义方法,进行url映射使用REST风格的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;
}

@RequestMapping(value="/ itemsView/{id}"):{xxx}占位符,请求的URL可以是“/viewItems/1”或“/viewItems/2”,通过在方法中使用@PathVariable获取{xxx}中的xxx变量。
@PathVariable用于将请求URL中的模板变量映射到功能处理方法的参数上。
如果RequestMapping中表示为"/ itemsView /{id}",id和形参名称一致,@PathVariable不用指定名称。

2.3REST方法的前端控制器配置
在web.xml配置:
<!-- SpringMvc前端控制器,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>

浏览器输入:http://localhost:8080/springmvc_mybatis1507/items/itemsView/1进行测试,测试结果:

REST的url风格配置成功!

3.对静态资源的解析

配置前端控制器的url-parttern中指定/,对静态资源的解析出现问题:


在springmvc.xml中添加静态资源解析方法。
<!-- 静态资源的解析
包括:js/css/img... -->
<mvc:resources location="/js/" mapping="/js/**"/>
<mvc:resources location="/img/" mapping="/img/**"/>
<mvc:resources location="/css/" mapping="/css/**"/>

再次测试:


解决了静态资源不能访问的问题

转载请注明出处:http://blog.csdn.net/acmman/article/details/47680449


网友评论

登录后评论
0/500
评论
光仔december
+ 关注