SpringMVC学习(二)之@RequestMapping
来源:互联网 发布:雪梨淘宝店衣服怎么样 编辑:程序博客网 时间:2024/05/18 20:53
一、@RequestMapping修饰类
控制器代码:
package controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@RequestMapping("/springmvc")@Controllerpublic class SpringMVCTest { private static final String SUCCESS = "success"; /** * 1.@RequestMapping 除了修饰方法,还可以修饰类 * 2. * 1). 类定义处: 提供初步的请求映射信息。相对应 WEB 应用的根目录 * 2). 方法定义处:提供进一步细分映射信息 * 相对应类定义处的 URL ,若类定义出未标注 @RequestMapping , 则方法处标记的URL比,相对应 WEB 引用的根目录 */ @RequestMapping("/testRequestMapping") private String testRequestMapping() { System.out.println("testRequestMapping"); return SUCCESS; }}
URL请求:
<a href="springmvc/testRequestMapping">testRequestMapping</a>
二、@RequestMapping之请求方式
标志的HTTP请求报头包括:请求方法、URL、HTTP协议及版本、报文头、报文字体
@RequestMapping除了可以使用请求URL映射请求外,还可以使用请求方法,请求参数及请求头映射请求。
@RequestMapping的value、method、params及hands分别表示请求URL、请求方式、请求请求参数及请求头的映射条件,它们之间是与的关系,联合使用多个条件可狼请求映射更加精确。
请求方式:
在SpringMVCTest 上添加方法:
/** * 最常用:使用method属性来指定请求方式 */ @RequestMapping(value="/testMethod", method=RequestMethod.POST) private String testMethod() { System.out.println("testMethod"); return SUCCESS; }
URL请求:
<form action="springmvc/testMethod" method="POST"> <input type="submit" value="testMethod"> </form>
三、RequestMapping之请求参数&请求头
/** * 了解:可以使用params和handers来更加精确的映射请求 * params和headers支持简单的表达式 * params1:表示请求必须包含名为param1的请求参数 * !param1:表示请求不能包含名为param1的请求参数 * param1!=value1:表示请求包含名为param1的请求参数,但其值不能为value1 * {"param1=value1","param2"}:请求必须包含名为param1和param2的两个请求参数, * 且param1参数的值必须为value1 */ @RequestMapping(value="/testParamsAndHanders", params={"username", "age!=10"}, headers={"Accept-Language!=zh-CN,zh;q=0.8,en;q=0.6"}) private String testParamsAndHanders() { System.out.println("testParamsAndHanders"); return SUCCESS; }
请求URL:
<a href="springmvc/testParamsAndHanders?username=aaa&age=10">testParamsAndHanders</a> <br>
四、RequestMapping之Ant路径
/** * 是用@RequestMapping映射请求支持Ant风格 * 3种匹配符: * ? :匹配文件名中的一个字符 * * :匹配文件名中的任意字符 * ^^ :匹配多层路径 */ @RequestMapping(value="mvc/*/testAntPath") private String testAntPath() { System.out.println("testAntPath"); return SUCCESS; }
请求URL
<a href="springmvc/mvc/6666/testAntPath">testAntPath</a> <br>
五、RequestMapping之PathVariable注解
/** * 通过@PathVariable可以将URL中占位符参数绑定到控制器处理方法的入参中 * @param id * @return */ @RequestMapping(value="testPathVariable/{id}") private String testPathVaria(@PathVariable("id") Integer id) { System.out.println("testPathVariable:"+id); return SUCCESS; }
URL请求:
<a href="springmvc/testPathVariable/1">testPathVariable</a> <br>
六、RequestMapping之HiddenHttpMethodFilter过滤器
在web.xml文件中配置HiddenHttpMethodFilter过滤器
<!-- 配置 HiddenHttpMethodFilter, 用于使用Rest风格--> <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>
控制器的方法创建Rest风格的目标方法
/** * Rest 风格的 URL * 以 CURD 为例 * 新增: order POST * 删除: order/1 DELETE * 修改: order/1 PUT * 获取: order/1 GET * * 如何发送 PUT 和 DELETE 请求呢? * 1. 配置 HiddenHttpMethodFilter * 2. 发送 发送 POST 请求 * * 在使用 SpringMVC 的目标方法如何获得id呢? * 使用 @PathVariable 注解 * * @return */ @RequestMapping(value="testRest", method=RequestMethod.POST) private String testRestPost() { System.out.println("Post"); return SUCCESS; } @RequestMapping(value="testRest/{id}", method=RequestMethod.DELETE) private String testRestDelete(@PathVariable("id") Integer id) { System.out.println("Delete:"+id); return SUCCESS; } @RequestMapping(value="testRest/{id}", method=RequestMethod.PUT) private String testRestPut(@PathVariable("id") Integer id) { System.out.println("Put:"+id); return SUCCESS; } @RequestMapping(value="testRest/{id}", method=RequestMethod.GET) private String testRestGet(@PathVariable("id") Integer id) { System.out.println("Get:"+id); return SUCCESS; }
URL请求
<form action="springmvc/testRest" method="post"> <input type="submit" value="新增"> </form> <br> <form action="springmvc/testRest/1" method="post"> <input type="hidden" name="_method" value="DELETE"> <input type="submit" value="删除"> </form> <br> <form action="springmvc/testRest/1" method="post"> <input type="hidden" name="_method" value="PUT"> <input type="submit" value="更改"> </form> <br> <a href="springmvc/testRest/1">获取</a> <br>
0 0
- SpringMVC学习(二)之@RequestMapping
- 学习SpringMVC(二)之RequestMapping
- SpringMVC学习(二) @RequestMapping映射请求
- SpringMVC(二)@RequestMapping详解
- 【学习】springmvc之@RequestMapping映射请求
- 【springMVC 学习三】springmvc常用注解之@Controller和@RequestMapping
- SpringMVC学习笔记-@RequestMapping
- SpringMVC之@RequestMapping
- SpringMVC之@RequestMapping注解
- SpringMVC之@RequestMapping
- springmvc 注解之 @RequestMapping
- springMVC之@RequestMapping作用
- springMVC之@RequestMapping作用
- SpringMVC 之 @RequestMapping
- SpringMVC学习(二)-RequestMapping修饰类&请求参数&请求方式&请求头
- SpringMVC 学习笔记(二) @RequestMapping、@PathVariable等注解
- SpringMVC 学习笔记(二) @RequestMapping、@PathVariable等注解
- (4) SpringMVC 学习笔记(二) @RequestMapping、@PathVariable等注解
- [未完]Gson处理json资源帖
- uboot功能分析与patch
- spark streaming 多表查询运行日志
- Java 与 C++ 中的多态区别
- 【附原文:深度学习-开始Tensorflow】1.Getting Started With TensorFlow
- SpringMVC学习(二)之@RequestMapping
- 多线程(线程通信)
- 算法训练 数的划分 (动态规划)
- 【剑指offer】面试题10:二进制中1的个数
- Leetcode刷题记——75. Sort Colors(颜色排序)
- 从源码编译MYSQL5.7
- Noip 2009 解题报告(潜伏着,Hankson的趣味题,最优贸易,靶形数独)
- 2016年校招秋招 C++开发 面试问题总结(中兴、CVTE、瑞晟、华为、YY)
- javascript笔记整理系列