您的位置:首页 > 编程语言 > Java开发

Restful在Spring中的应用

2017-09-01 09:43 211 查看
一、什么是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>

</[b]servlet
>

<servlet-mapping>

<servlet-name>SpringMVC1</servlet-name>

<url-pattern>/</url-pattern>

</servlet-mapping>

1.2.对静态资源的解析

<!-- =====================配置SpringMVC不过滤静态资源
================== -->

<mvc:resourceslocation="/image/"mapping="/image/**"/>

<mvc:resourceslocation="/bootstrap/fonts/"mapping="/bootstrap/fonts/**"/>

<mvc:resourceslocation="/bootstrap/css/"mapping="/bootstrap/css/**"/>

<mvc:resourceslocation="/bootstrap/js/"mapping="/bootstrap/js/**"/>

2 controller

定义方法,进行url映射使用REST风格的url,将查询部门信息的id传入controller .

 

输出json使用@ResponseBody将java对象输出json。

@RequestMapping("/dept10/{deptno}")

public voiddept10(@PathVariable("deptno")String
dn,HttpServletResponse response){

System.out.println(dn);

String x=dn+3;

System.out.println(x);

Dept dept=newDept(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

<%@pagecontentType="text/html;charset=UTF-8"language="java"
%>

<html>

<head>

<title>Title</title>

<scripttype="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>

<divid="res"></div>

<buttonid="btn">dept10</button>

</body>

</html>

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息