SpringMVC框架|restful开发风格


一、关于RESTful的理解

RESTful架构,就是一种流行的互联网软件架构,即Representational StateTransfer的缩写,翻译为"表现层状态转化"。

  • 表现层:指通过一个URI就可以访问到的资源。如果一个架构符合REST原则,就称它为RESTful架构。
  • 状态转化 :客户端想要操作服务器,只能通过HTTP协议,具体就是指四种基本操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源。
  • 每一个URI代表一种资源;
  • 客户端和服务器之间,传递这种资源的某种表现层;
  • 客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。

二、演示restful开发风格

  • Url的非restful风格:127.0.0.1:8080/SprinvMVC02/add.do?username=Tom&age=20
  • Url的restful风格:127.0.0.1:8080/SprinvMVC02/add/Tom/20

下面的代码只是为了测试restful开发风格,简单的pojo和SpringMVC的配置就不再赘述。

1.restful风格的前端控制器配置

新添加了一个restful的前端控制器,这与原来的前端控制器并不冲突。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	id="WebApp_ID" version="2.5">
	<display-name>SpringMVC01</display-name>

	<!-- 前端控制器 -->
	<servlet>
		<servlet-name>springmvc</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<!-- 加载SpringMVC配置文件 -->
		<init-param>
				<param-name>contextConfigLocation</param-name>
				<param-value>classpath:springmvc_upload.xml</param-value>
		</init-param>
	</servlet>

	<servlet-mapping>
		<servlet-name>springmvc</servlet-name>

		<url-pattern>*.do</url-pattern>
	</servlet-mapping>
	
	<!-- 前端控制器_restful风格 -->
	<servlet>
		<servlet-name>springmvc_restful</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
				<param-name>contextConfigLocation</param-name>
				<param-value>classpath:springmvc_upload.xml</param-value>
		</init-param>
	</servlet>
	<servlet-mapping>
		<servlet-name>springmvc_restful</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>
	
</web-app>

2.测试restful开发风格

测试restful开发风格,需要使用到@PathVariable注解
该注解将url中的参数与方法中的参数进行了映射。

package com.gql.upload;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import com.gql.ex.MyException;
import com.gql.pojo.User;

/**
 * 类说明:
 *		测试restful风格
 * @guoqianliang1998.
 */
@Controller
@RequestMapping("/user")
public class UserController {
	
	@RequestMapping("/addRestFul/{id}/{name}")
	public String addRestFul(@PathVariable("id") Integer id,@PathVariable("name") String name){
		return "success";
	}
}

在浏览器输入url:http://localhost:8080/SpringMVC02/user/addRestFul/5/Hudie,成功访问到了跳转页面,并且可以在调试页面看到,使用restful风格成功接收到到了来自url中的值
在这里插入图片描述

在这里插入图片描述

3.HTTP协议中的restful风格

四种基本操作:

  • GET用来获取资源
  • POST用来新建资源(也可以用于更新资源)
  • PUT用来更新资源
  • DELETE用来删除资源。

restful开发风格使用四个单词来进行不同种类的操作,但在实际开发只有get和post使用的比较频繁。完全可以不使用restful开发风格。

	@RequestMapping(value="/add",method=RequestMethod.POST)
	public String post(){
		//POST进行添加操作
		return null;
	}
	@RequestMapping(value="/find",method=RequestMethod.GET)
	public String get(){
		//GET进行查询操作
		return null;
	}
	@RequestMapping(value="/update",method=RequestMethod.PUT)
	public String update(){
		//PUT进行更新操作
		return null;
	}
	@RequestMapping(value="/delete",method=RequestMethod.DELETE)
	public String delete(){
		//DELETE进行删除操作
		return null;
	}
发布了427 篇原创文章 · 获赞 1123 · 访问量 25万+

猜你喜欢

转载自blog.csdn.net/weixin_43691058/article/details/104417593