Restful风格+介绍

Restful风格+介绍

1、介绍

​ Restful是一种软件架构风格,而不是标准,只是提供了一些设计原则和约束条件,它主要用于客户端与服务器端交互类软件。

​ REST描述了一个架构样式的网络系统,比如 web 应用程序。它首次出现在 2000 年 Roy Fielding 的博士论文中,他是 HTTP 规范的主要编写者之一。在目前主流的三种Web服务交互方案中,REST相比于SOAP(Simple Object Access protocol,简单对象访问协议)以及XML-RPC更加简单明了,无论是对URL的处理还是对Payload的编码,REST都倾向于用更加简单轻量的方法设计和实现。值得注意的是REST并没有一个明确的标准,而更像是一种设计的风格。

​ 在简单点说:Restful是一种设计风格,对于web开发人员来说,就是一个url地址表示唯一资源,然后把原来的请求参数加入到请求资源地址中,然后原来请求的CRUD操作,改为使用HTTP协议中请求方式GET,POST,PUT,DELETE。

2、在SpringMVC中如何发送GET请求,POST请求,PUT请求,DELETE请求呢?

​ 我们发起get,或者post请求时,只需要在form标签中,这是method=“get”,这就是get请求,设置成post就是post请求我们的put,delete请求要怎么发起呢?

​ 1、要有post请求的form标签

​ 2、在form表单中,添加一个额外的隐藏域_method="PUT"或者_method=“DELETE”

​ 3、在web.xml中配置一个filter过滤器org.springframework.web.filter.HiddenHttpMethodFilter

​ 配置文件:

 <filter>
        <filter-name>hiddenHttpMethodFilter</filter-name>
        <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
 </filter>
 <filter-mapping>
        <filter-name>hiddenHttpMethodFilter</filter-name>
        <url-pattern>/*</url-pattern>
 </filter-mapping>
3、案例

前端:

<a href="${pageContext.request.contextPath}/addBook">添加图书</a>

​ Controller类:

这是一个方法,restful风格后面设置一个参数,RequestMethod.POST接受post请求

    @RequestMapping(value = "/Books",method = RequestMethod.POST)
    public String addBooks(Book book){
        bookService.addBooks(book);
        return "redirect:/queryAll";
    }
4、Restful风格在高版本Tomcat中无法转发jsp页面

在Tomcat8之后的一些高版本,使用restful风格访问然后转发到jsp页面。就会有如下的错误提示:

1 使用请求重定向

2 在jsp页面的page指定中设置 isErrorPage=true.

5、@RathVariable路径参数

此注解可以接受由前端传递过来的参数

value = "/book/{id} 请求地址中 {id} 表示路径参数(路径变量). 大括号中的id,是参数名(变量名)

@PathVariable(“id”) Integer id ,@PathVariable表示取路径变量的值(取参数名或变量名为 id的值)赋给方法参数id

前端:

<a href="${pageContext.request.contextPath}/Books/${book.id}">修改</a></td>

Controller层:

  
@RequestMapping(value = "/Books/{id}",method = RequestMethod.GET)
    public String update(@PathVariable("id") Integer id,Map<String,Object> map){
        Book bookById = bookService.getBookById(id);
        map.put("Book",bookById);
        return "bookEdit";
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值