博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二、@ResquestMapping
阅读量:4073 次
发布时间:2019-05-25

本文共 4850 字,大约阅读时间需要 16 分钟。

2.1使用 @RequestMapping 映射请求

  • Spring MVC 使用 @RequestMapping 注解为控制器指定可以处理哪些 URL 请求
  • 在控制器的类定义及方法定义处都可标注
    @RequestMapping
    类定义处:提供初步的请求映射信息。相对于 WEB 应用的根目。
    方法处:提供进一步的细分映射信息。相对于类定义处的 URL。若类定义处未标注 @RequestMapping,则方法处标记的 URL 相对于WEB 应用的根目录
  • DispatcherServlet 截获请求后,就通过控制器上@RequestMapping 提供的映射信息确定请求所对应的处理方法。

2.1.1测试@ResquestMapping

SpringMVCTest.java

package com.atguigu.springmvc.handlers;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@RequestMapping("/springmvc")@Controllerpublic class SpringMVCTest {
private static final String SUCCESS="success"; @RequestMapping("/testRequestMapping") public String testRequestMapping() { System.out.println("testRequestMapping"); return SUCCESS; }}

2.1.2index.jsp中的写法

index.jsp

Test RequestMapping

2.2映射请求参数、请求方法或请求头

  • @RequestMapping 除了可以使用请求 URL 映射请求外,还可以使用请求方法、请求参数及请求头映射请求
  • @RequestMapping 的 value、method、params 及 heads分别表示请求 URL、请求方法、请求参数及请求头的映射条件,他们之间是与的关系,联合使用多个条件可让请求映射更加精确化。
  • params 和 headers支持简单的表达式:
    – param1: 表示请求必须包含名为 param1 的请求参数
    – !param1: 表示请求不能包含名为 param1 的请求参数
    – param1 != value1: 表示请求包含名为 param1 的请求参数,但其值不能为 value1
    – {“param1=value1”, “param2”}: 请求必须包含名为 param1 和param2的两个请求参数数,且 param1 参数的值必须为 value1

2.2.1@RequestMapping中使用Method属性

SpringMVCTest.java

package com.atguigu.springmvc.handlers;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;@RequestMapping("/springmvc")@Controllerpublic class SpringMVCTest {
private static final String SUCCESS="success"; @RequestMapping("/testRequestMapping") public String testRequestMapping() { System.out.println("testRequestMapping"); return SUCCESS; } //使用Method属性来指定请求方式 @RequestMapping(value="/testMethod",method=RequestMethod.POST) public String testMethod() { System.out.println("testMethod"); return SUCCESS; }}

2.2.2在index.jsp中测试

index.jsp

2.2.3@RequestMapping中指定params和heads属性

SpringMVCTest.java

package com.atguigu.springmvc.handlers;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;@RequestMapping("/springmvc")@Controllerpublic class SpringMVCTest {
private static final String SUCCESS="success"; @RequestMapping("/testRequestMapping") public String testRequestMapping() { System.out.println("testRequestMapping"); return SUCCESS; } //使用Method属性来指定请求方式 @RequestMapping(value="/testMethod",method=RequestMethod.POST) public String testMethod() { System.out.println("testMethod"); return SUCCESS; } //可以使用params和headers来更加精确地映射请求,params和headers支持简单的表达式 @RequestMapping(value="testParamsAndHeaders", params={
"username","age!=10"}, headers={
"Accept-Language=zh-CN,zh;q=0.8"}) public String testParamsAndHeaders() { System.out.println("testParamsAndHeaders"); return SUCCESS; }}

2.2.4index.jsp中测试

index.jsp

testParamsAndHeaders

浏览器中:

http://localhost:8080/springmvc-1/springmvc/testParamsAndHeaders?username=zhangsan&age=11

2.3@RequestMapping支持Ant风格的URL

Ant 风格资源地址支持 3 种匹配符:

- ?:匹配文件名中的一个字符
- *:匹配文件名中的任意字符
- 匹配多层路径

@RequestMapping 还支持 Ant 风格的 URL

- /user/*/createUser: 匹配/user/aaa/createUser、/user/bbb/createUser 等 URL
- /user/**/createUser: 匹配/user/createUser、/user/aaa/bbb/createUser 等 URL
- /user/createUser??: 匹配/user/createUser**aa**、/user/createUser**bb **等 URL

2.3.1@RequestMapping中指定Ant格式的属性

SpringMVCTest.java

package com.atguigu.springmvc.handlers;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;@RequestMapping("/springmvc")@Controllerpublic class SpringMVCTest {
private static final String SUCCESS="success"; @RequestMapping("/testRequestMapping") public String testRequestMapping() { System.out.println("testRequestMapping"); return SUCCESS; } //使用Method属性来指定请求方式 @RequestMapping(value="/testMethod",method=RequestMethod.POST) public String testMethod() { System.out.println("testMethod"); return SUCCESS; } //可以使用params和headers来更加精确地映射请求,params和headers支持简单的表达式 @RequestMapping(value="testParamsAndHeaders", params={
"username","age!=10"}, headers={
"Accept-Language=zh-CN,zh;q=0.8"}) public String testParamsAndHeaders() { System.out.println("testParamsAndHeaders"); return SUCCESS; } @RequestMapping("/testAntPath/*/abc") public String testAntPath() { System.out.println("testAntPath"); return SUCCESS; }}

2.3.2index.jsp中进行测试

index.jsp

TestAntPath

转载地址:http://gfkni.baihongyu.com/

你可能感兴趣的文章
rst文件的实时预览(我最后再vscode上实现了)
查看>>
vscode怎样预览markdown文件
查看>>
VSCode设置网页代码实时预览
查看>>
烧固件注意以下几点
查看>>
相机标定的目的:获取摄像机的内参和外参矩阵(同时也会得到每一幅标定图像的选择和平移矩阵),内参和外参系数可以对之后相机拍摄的图像就进行矫正,得到畸变相对很小的图像。
查看>>
PX4无人机ROS下仿真开发(基于volans项目,这也是volans写的)
查看>>
可以打印看下图像消息的具体信息,里面应该包含分辨率等等的,不一定是都用rqt_image_view查看,这个只能看到图像其他看不到。
查看>>
对PX4官方手册里mavros-offboard代码注释讲解的博文合集
查看>>
PX4官方手册给的mavros-offborad代码页面复制,做备份用,方便自己日后随时翻看。
查看>>
视觉标记定位aruco使用
查看>>
使用opencv的aruco库进行位姿估计(得到的是旋转矩阵与平移矩阵)
查看>>
opencv官方中文英文文档地址
查看>>
ARUCO marker的解释(ARUCO二维码的含义说明)
查看>>
SLAM学习——使用ARUCO_marker进行AR投影
查看>>
ArUco----一个微型现实增强库的介绍及视觉应用(一)
查看>>
ROS学习笔记(2):在ROS中使用OpenCV进行简单的图像处理---代码实现篇
查看>>
ubuntu中显示隐藏文件,主要是为了显示.bashrc
查看>>
opencv本质是什么,你自己写个opencv工程出来就清楚了(是个类库)
查看>>
Opencv安装与环境配置
查看>>
关于def __init__(self)的一些知识点
查看>>