什么是RESTful?
Restful就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格,是对http协议的诠释。
资源定位:
互联网中的所有的事物都被称为资源,但是Restful风格就是要求网页请求的URl路径中没有动词,没有参数,只有名词。
举例:一般开发中大部分页面在传递时都会带有参数,常用的方式例如:http://www.xxxx.com?id=5,而使用Restful风格之后页面URL的格式是这样的:https://blog.csdn.net/weixin_43061807/article/details/82153150
资源操作:
使用put、delete、post、get方式,使用不同方法对资源进行操作。分别对应添加、删除、修改、查询。一般使用时还是post和get。Put和Delete几乎不使用。
使用Restful一般都是结合SpringMVC来使用
使用Restful的配置:
<servlet>
<servlet-name>springmvc-servlet-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-servlet-rest</servlet-name>
//拦截所有的请求
<url-pattern>/</url-pattern>
</servlet-mapping>
URL模板映射:
@RequestMapping(value="/viewItems/{id}") 其中{xxx}表示占位符,请求的URl可以是/viewItems/1、也可以是/viewItems/2,通过在方法中使用@PathVariable来获取{xxx}中的xxx变量,@PathVariable用于将请求URL中的模板变量映射到功能处理方法的参数上。
例如:
@RequestMapping("/viewItems/{id}")
public @ResponseBody viewItems(@PathVariable("id") String id,Model model) throws Exception{
//方法中使用@PathVariable获取id的值,使用model传回页面
//调用 service查询商品信息
ItemsCustom itemsCustom = itemsService.findItemsById(id);
如果/viewItems/{id},id和形参名称一致,@PathVariable可以不用指定名称。
注意:如果在DispatcherServlet中设置url-pattern为 /则必须对静态资源进行访问处理。因为此时是默认拦截所有的请求包括所有的静态资源。使用spring mvc 的<mvc:resources mapping="" location="">实现对静态资源进行映射访问。
例如:<mvc:resources location="/js/" mapping="/js/**"/> 放开对静态资源js的访问