springmvc 对REST风格的支持

1、PathVariable注解

用于映射url的占位符到目标方法的参数中

例子:

@RequestMapping("/testPathVariable/{id}")

public String testPathVariable(@PathVariable("id") Integer id) {

syso (id);

}

请求:/testPathVariable/101 输出:101

2、REST请求示例:

/order  HTTP POST --新增

/order/1  HTTP DELETE --删除

/order/1  HTTP PUT --修改

/order/1  HTTP GET --查看

3、如何发送一个PUT和DELETE请求

1)在web.xml中配置一个filter HiddenHttpMethodFilter。

2)发送一个POST请求

3)在请求参数中放入_method = DELETE 或PUT

配置:

<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>

controller:

@RequestMapping(value="/order/{id}",method=RequestMethod.GET)
    public String testGet(@PathVariable Integer id) {
        System.out.println("testGet id=" + id);
        return SUCCESS;
    }

    @RequestMapping(value="/order",method=RequestMethod.POST)
    public String testPOST() {
        System.out.println("testPOST");
        return SUCCESS;
    }

    @RequestMapping(value="/order/{id}",method=RequestMethod.PUT)
    public String testPUT(@PathVariable Integer id) {
        System.out.println("testPUT id=" + id);
        return "redirect:/success.jsp";
    }

    @RequestMapping(value="/order/{id}",method=RequestMethod.DELETE)
    public String testDELETE(@PathVariable Integer id) {
        System.out.println("testDELETE id=" + id);
        return "redirect:/success.jsp";
    }

测试:

<br>
<br>
<a href="test/order/11">test testGET</a>
<br>
<br>
<form action="test/order" method="post">
    <input type="submit" value="testPost">
</form>

<br>
<br>
<form action="test/order/11" method="post">
    <input type="hidden" name="_method" value="PUT">
    <input type="submit" value="testPUT">
</form>

<br>
<br>
<form action="test/order/11" method="post">
    <input type="hidden" name="_method" value="DELETE">
    <input type="submit" value="testDELETE">
</form>

注意tomcat8报错:

HTTP Status 405 - JSPs only permit GET POST or HEAD

1、使用低版本tomcat

2、在返回时使用重定向:return "redirect :/test.jsp"

3、写一个Filter来包装HttpRequest中的getMethod()方法

时间: 2024-10-10 03:04:48

springmvc 对REST风格的支持的相关文章

springmvc学习笔记(19)-RESTful支持

springmvc学习笔记(19)-RESTful支持 springmvc学习笔记19-RESTful支持 概念 REST的样例 controller REST方法的前端控制器配置 对静态资源的解析 本文介绍RESTful的概念,并通过一个小样例展示怎样编写RESTful风格的controller和配置前端控制器,最后展示静态资源的解析 概念 首先附上两篇博客链接 理解RESTful架构 - 阮一峰的网络日志 RESTful API 设计指南- 阮一峰的网络日志 RESTful架构.就是眼下最流

springmvc的RESTful风格

springmvc对RESTful得支持RESTful架构,就是目前最流行得一种互联网软件架构.它结构清晰.符合标准.易于理解.扩展方便,所以挣得到越来越多网站的采用. RESTful(即Representational State Transfer变现层状态转换)其实是一个开发理念,是对http 的很好的诠释. 状态转换(State Transfer) 客户端用到的手段,只能是HTTP协议.具体来说就是HTTP协议里面四个表示操作方式的动词:GET/POST/PUT/DELETE,分别对应四中

SpringMVC实现Restful风格的WebService

1.环境 JDK7 MyEclipse2014 tomcat8 maven 3.3.3 spring4.1.4 2.创建maven工程 使用MyEclipse创建maven工程的方式可以参考这篇博文(链接1), 该博文中的第四小结是关于如何创建SpringMVC+maven教程.下面只给出创建好的目录结构,其中的部分文件如java程序是后面要完成的. 3.指定依赖文件 maven具有特定的文件结构,并通过pom.xml来管理工程.下面是在实现Restful时需要的依赖. 1 <project x

springMVC的rest风格的url请求

rest是一个架构风格,用url来访问网络上的任何资源.rest的一种思想就是用http中的动作get,post,put,delete,来进行增删改查. 这里介绍的是springMVC的rest请求. 不包含webservice的JAX-RS的例子.rest风格的webservice可以用cxf框架进行实现.也很简单. 1 首先准备web项目需要的jar包,也就是springMVC所依赖的jar: 2 创建一个动态的web工程:这里首先需要配置web.xml文件注册springMVC的前端控制器

springmvc上传图片并显示图片--支持多图片上传

实现上传图片功能在Springmvc中很好实现.现在我将会展现完整例子. 开始需要在pom.xml加入几个jar,分别是: [java] view plain copy <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dep

springmvc添加mock json的支持

在springmvc中 添加对服务器classPath下的json文件解析之后返回的mock功能: import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.net.URLConnection; import javax.servlet.http.HttpServletRequest; import j

vscode代码保存时自动格式化成ESLint风格(支持VUE)

一.问题 vscode的默认的代码格式化ctrl+shift+f 无法通过eslint的代码风格检查是一个非常蛋疼的问题 同样在进行vue项目开发的时候,使用eslint代码风格检查是没啥问题的,但是eslint自动格式化是我想去搞出来的. 在保存的时候,能够使得vscode代码自动格式化成eslint风格的代码,并且支持在html和vue中的代码 二.解决 1.安装 eslint 插件 2.打开用户配置 在用户设置中填写如下配置: { "eslint.autoFixOnSave":

springMvc中restful风格的api路径中把小数点当参数,SpringMvc中url有小数点

在springMvc web项目中restful风格的api路径中有小数点会被过滤后台拿不到最后一个小数点的问题, 有两种解决方案: 1:在api路径中加入:.+ @RequestMapping("/findByIp/{ip:.+}") public Object test(@PathVariable String ip) { System.out.println(ip); return ""; } 但这种方式在web服务中感觉太过于鸡肋 所以在springMvc.

SpringMVC中REST风格

需要增加filter过滤器:HiddenHttpMethodFilter 可以将post请求转成delete和put方式的rest风格,当然也包括post: <filter> <filter-name>HiddenHttpMethodFilter</filter-name> <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class> <