一、
什么是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。。
1.2
REST的例子
1.2.1 需求
查询部门信息,返回json数据。
整合步骤:
1.准备环境:
1.1.在web.xml中配置rest
<!--
配置
SpringMVC
,
rest-->
<
servlet
>
<
servlet-name
>
SpringMVC1
</
servlet-name
>
<
servlet-class
>
org.springframework.web.servlet.DispatcherServlet
</
servlet-class
>
<
init-param
>
<
param-name
>
contextConfigLocation
</
param-name
>
<
param-value
>
classpath:springmvc.xml
</
param-value
>
</
init-param
>
</
servlet
>
<
servlet-mapping
>
<
servlet-name
>
SpringMVC1
</
servlet-name
>
<
url-pattern
>
/
</
url-pattern
>
</
servlet-mapping
>
1.2.对静态资源的解析
<!-- =====================
配置
SpringMVC
不过滤静态资源
================== -->
<
mvc
:resources
location
="/image/"
mapping
="/image/**"
/>
<
mvc
:resources
location
="/bootstrap/fonts/"
mapping
="/bootstrap/fonts/**"
/>
<
mvc
:resources
location
="/bootstrap/css/"
mapping
="/bootstrap/css/**"
/>
<
mvc
:resources
location
="/bootstrap/js/"
mapping
="/bootstrap/js/**"
/>
2 controller
定义方法,进行url映射使用REST风格的url,将查询部门信息的id传入controller .
输出json使用@ResponseBody将java对象输出json。
@RequestMapping
(
"/dept10/{deptno}"
)
public void
dept10(
@PathVariable
(
"deptno"
)String dn,HttpServletResponse response){
System.
out
.println(dn);
String x=dn+
3
;
System.
out
.println(x);
Dept dept=
new
Dept(
10
,
"aa"
,
"aaa"
);
try
{
response.getWriter().write(dept.toString());
}
catch
(IOException e) {
e.printStackTrace();
}
}
@RequestMapping
(value=
"
/dept10/{deptno}
"
):{×××}占位符,请求的URL可以是“
/dept10/1
”或“
/dept10/2
”,通过在方法中使用@PathVariable获取{×××}中的×××变量。
@PathVariable用于将请求URL中的模板变量映射到功能处理方法的参数上。
如果
RequestMapping
中表示为
"
/dept10/{deptno}
",id和形参名称一致,
@PathVariable不用指定名称。
3.showdept10.jsp
<%@
page
contentType
="
text/html;charset=UTF-8
"
language
="
java
" %>
<
html
>
<
head
>
<
title
>
Title
</
title
>
<
script
type=
"text/javascript"
src=
"
${
pageContext.request.contextPath
}
/bootstrap/js/jquery.min.js"
></
script
>
<
script
>
$
(
function
() {
$
(
"#btn"
).
on
(
"click"
,
function
() {
$
.
get
(
"dept/dept10/10"
,
function
(data) {
$
(
"#res"
).
html
(data);
});
});
});
</
script
>
</
head
>
<
body
>
<
div
id=
"res"
></
div
>
<
button
id=
"btn"
>
dept10
</
button
>
</
body
>
</
html
>