@RequestMapping用来映射请求:RequestMapping可以修饰方法外,还可以修饰类

1)SpringMVC使用@RequestMapping注解为控制指定可以处理哪些URL请求;

2)在控制的类定义以及方法定义处都可以使用@RequestMapping标注

---类定义:提供初步的请求映射信息,相对于WEB应用的根目录。

---方法    :提供进一步的细分映射信息,相对于类定义处的URL。若类定义处未标注@RequestMapping,则方法处标记的URL相对于WEB应用的根目录。

3)DispatcherServlet截获请求后,就通过控制器上@RequestMapping提供的映射信息确定请求所对应的处理方法。

示例:基于上一篇文章中搭建的demo project上修改HelloWord.java类。

package com.dx.springlearn.handlers;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; @Controller
@RequestMapping("class_requestmapping")
public class HelloWord {
private static String SUCCESS = "success"; @RequestMapping("/hello")
public String hello() {
System.out.println("hello word...");
return SUCCESS;
}
}

此时,index.jsp中链接路径编辑为:

<a href="class_requestmapping/hello">hello action</a>

@RequestMapping指定方法的请求方式:

1)@ReuqestMapping除了可以使用请求URL映射请求外,还可以使用请求方法、请求参数及请求头映射请求。

2)@RequestMapping的value、method、params及heads分别表示请求URL、请求方法、请求参数及请求头的映射条件,他们之间的关系是与的关系,联合使用多个条件可让请求映射更加精确化。

3)params和headers支持简单的表达式:

--- param1:表示请求必须包含名为param1的请求参数

--- !param1:表示请求不能包含名为param1的请求参数

--- param1 != value1:表示请求包含名为param1的请求参数,但其值不能为value1

--- {"param1=value1","param2"}:请求必须包含名为param1和param2的两个请求参数,且param1参数的值必须为value1

在HelloWord.java中添加testMethod方法:

package com.dx.springlearn.handlers;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; @Controller
@RequestMapping("class_requestmapping")
public class HelloWord {
private static String SUCCESS = "success"; @RequestMapping(value = "/testMethod", method = RequestMethod.POST)
public String testMethod() {
System.out.println("test method");
return SUCCESS;
} @RequestMapping("/hello")
public String hello() {
System.out.println("hello word...");
return SUCCESS;
}
}

在index.jsp中指定请求testMethod方法的html脚本:

    <form id="form_testMethod" name="form_testMethod" method="POST"
action="class_requestmapping/testMethod">
<button name="submit" id="submit">test method</button>
</form>

@RequestMapping指定请求参数和请求头

在HelloWord.java中添加testParamsAndHeaders方法:

package com.dx.springlearn.handlers;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; @Controller
@RequestMapping("class_requestmapping")
public class HelloWord {
private static String SUCCESS = "success"; @RequestMapping(value="/testParamsAndHeaders",params={"username","password!=23456"},headers={"Accept-Language=zh-CN,zh;q=0.8"})
public String testParamsAndHeaders() {
System.out.println("test params and headers");
return SUCCESS;
} @RequestMapping(value = "/testMethod", method = RequestMethod.POST)
public String testMethod() {
System.out.println("test method");
return SUCCESS;
} @RequestMapping("/hello")
public String hello() {
System.out.println("hello word...");
return SUCCESS;
}
}

修改index.jsp,添加请求链接:

<a href="class_requestmapping/testParamsAndHeaders?username=abc&password=12345">testParamsAndHeaders</a>

@RequestMapping支持Ant路径方式:

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

--- ?:匹配文件名中的一个字符;

--- * :匹配文件名中的任何个字符;

--- **:匹配多层路径

2)Ant风格示例:

--- /user/*/createuser:配置/user/aaa/createuser、user/bb/createuser等URL

--- /user/**/createuser:匹配/user/createuser、/user/abc/ab/createuser等URL

--- /user/createuser??:配置/user/createuseraa、/user/createuserbc等URL

测试方法:

    @RequestMapping("/testAnt/*/createuser")
public String testAnt(){
System.out.println("test ant");
return SUCCESS;
}

index.jsp支持的链接方式:

http://localhost:8080/SpringMVC_01/class_requestmapping/testAnt/oiasdkj/createuser

http://localhost:8080/SpringMVC_01/class_requestmapping/testAnt/oxd/createuser

SpringMVC(二):RequestMapping修饰类、指定请求方式、请求参数或请求头、支持Ant路径的更多相关文章

  1. SpringMVC(三) RequestMapping修饰类

    SpringMVC使用@RequestMapping 注解为控制器指定可以处理哪些URL请求. 可以用于类定义以及方法定义: 类定义:提供初步的请求映射信息.相对于WEB应用的根目录. 方法处:提供进 ...

  2. SpringMVC总结三:请求Controller返回视图类型以及请求方式、参数介绍

    视图解析,请求Controller返回的视图类型: @Controller @RequestMapping("/test") public class TestController ...

  3. SpringMVC之使用requestMapping映射请求、映射参数、映射头

    1. 映射请求 作用:使用requestMapping可以指定处理器可以处理那些请求 地方:类和方法前面都可以 @requestMapping 类定义处: 提供初步的请求映射信息,相对于web应用的根 ...

  4. SpringBoot08 请求方式、参数获取注解、参数验证、前后台属性名不一致问题、自定义参数验证注解、BeanUtils的使用

    1 请求方式 在定义一个Rest接口时通常会利用GET.POST.PUT.DELETE来实现数据的增删改查:这几种方式有的需要传递参数,后台开发人员必须对接收到的参数进行参数验证来确保程序的健壮性 1 ...

  5. Feign服务调用请求方式及参数总结

    前言 最近做微服务架构的项目,在用feign来进行服务间的调用.在互调的过程中,难免出现问题,根据错误总结了一下,主要是请求方式的错误和接参数的错误造成的.在此进行一下总结记录.以下通过分为三种情况说 ...

  6. 百度网盘上下载文件,调用api接口的请求方式和参数

    REST api 功能:下载单个文件. Download接口支持HTTP协议标准range定义,通过指定range的取值可以实现断点下载功能. 例如: 如果在request消息中指定“Range: b ...

  7. HTTP请求方式中8种请求方法(简单介绍)

    简单介绍 HTTP是超文本传输协议,其定义了客户端与服务器端之间文本传输的规范.HTTP默认使用80端口,这个端口指的是服务端的端口,而客户端使用的端口是动态分配的.当我们没有指定端口访问时,浏览器会 ...

  8. go中处理各种请求方式以及处理接口请求参数

    话不多说直接上代码,解读内容全部在代码中 1.处理请求方式 package main import ( "fmt" "io/ioutil" "net/ ...

  9. (2).net web api 请求方式与参数

    一.GET 二.POST 如果方法名前缀不带GET 默认为POST请求方法 1.无参数 2.带一个参数 客户端请求时,名称必须为空,不能是dictCategory.不是空的话,会返回空数据 [ ] 3 ...

随机推荐

  1. linux 下后台运行python脚本

    这两天要在服务器端一直运行一个Python脚本,当然就想到了在命令后面加&符号 $ python /data/python/server.py >python.log &说明:  ...

  2. window.open打开文件乱码

    问题:刚开始使用window.open在IE兼容模式下打开文件下载出现乱码. 一开始以为是文件名是中文导致的.然后使用a标签的download属性更改文件名解决. <a class=" ...

  3. UWP:可滚动的PivotHeader

    UWP开发里,Pivot真是个令人又爱又恨的控件.为了实现某些可滚动Header的效果,有些大佬甚至去掉了原本的Header,使用一个ListView或者ListBox自己画Header,不过这样会让 ...

  4. React简明学习

    前面的话 React让组件化成为了前端开发的基本思路,比传统思路可以更好的控制前端复杂度,旧的开发方法受到了影响,如分离式的HTML/CSS.非侵入式JS.模板语言.MVC.CSS文件.Bootstr ...

  5. Python中列表、元组、字典增删改查基本区别

    1.定义: 列表:num = ["a","b"."c"] ##定义后可增删改查 元组:num = ("a"," ...

  6. Algorithm --> 小于N的正整数含有1的个数

    //https://leetcode.com/problems/number-of-digit-one/ Given an integer n, count the total number of d ...

  7. JSON字符串转为JSON对象

    在数据传输流程中,json是以文本,即字符串的形式传递的,而JS操作的是对象,所以,JSON对象(js对象)和JSON字符串之间的相互转换是关键. JSON可以有两种格式,一种是对象格式的,另一种是数 ...

  8. 和sin有关的代码

    include include using namespace std; const double TINY_VALUE=1e-10; double tsin(double x) { double g ...

  9. 十个 PHP 开发者最容易犯的错误

    PHP 语言让 WEB 端程序设计变得简单,这也是它能流行起来的原因.但也是因为它的简单,PHP 也慢慢发展成一个相对复杂的语言,层出不穷的框架,各种语言特性和版本差异都时常让搞的我们头大,不得不浪费 ...

  10. 集大1513 & 1514班 软件工程第二次作业评分与点评

    谢谢按时完成作业的同学. 请大家在今后的作业中多思考,认真完成并注意作业的原创性. 学号 作业标题 作业地址 提交日期 分数 201521121087 微信APP简要分析 http://www.cnb ...