@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. 排序算法Java实现(快速排序)

    算法描述:对于一组给定的记录,通过一趟排序后,将原序列分为两部分,其中前一部分的所有记录均比后一部分的所有记录小,然后再依次对前后两部分的记录进行快速排序,递归该过程,直到序列中的所有记录均有序为止. ...

  2. SpringBoot中MongoDB注解概念及使用

    spring-data-mongodb主要有以下注解 @Id 主键,不可重复,自带索引,可以在定义的列名上标注,需要自己生成并维护不重复的约束.如果自己不设置@Id主键,mongo会自动生成一个唯一主 ...

  3. Algorithm --> 投资组和求最大利润

    投资组和求最大利润 题目: 投资人出资一笔费用mount,投资给不同的公司(A,B,C....),求最大获取利润? 例如:投资400百万,给出两家公司A和B: 1.如果投资一百万给A公司,投资3百万给 ...

  4. Spring Boot 2.0(五):Docker Compose + Spring Boot + Nginx + Mysql 实践

    我知道大家这段时间看了我写关于 docker 相关的几篇文章,不疼不痒的,仍然没有感受 docker 的便利,是的,我也是这样认为的,I know your felling . 前期了解概念什么的确实 ...

  5. 理解HDFS

    综述 当数据集的大小超过一台独立的物理计算机的存储能力时,就有必要对它进行分区并存储到若干台单独的计算机上.HDFS是hadoop的主要分布式存储系统,一个HDFS集群主要包括NameNode用来管理 ...

  6. [poj3349]Snowflake Snow Snowflakes_hash

    Snowflake Snow Snowflakes poj-3349 题目大意:给出n片雪花,每片雪花有6个角,每个角有一个权值.如果两片雪花中能够各选出一个点,使得从该点顺时针或者逆时针转,得到的权 ...

  7. runtime.getruntime.availableprocessors

    1:获取cpu核心数: Runtime.getRuntime().availableProcessors(); 创建线程池: Executors.newFixedThreadPool(nThreads ...

  8. 慢查询日志分析(mysql)

    开启慢查询日志之后,慢查询sql会被存到数据库系统表mysql.slow_log或是文件中,可参考.有两个工具可以帮助我们分析输出报告,分别是mysqldumpslow和pt-query-digest ...

  9. C语言第三次作业--嵌套循环

    一.PTA实验作业 题目1:硬币数 1. 本题PTA提交列表 2. 设计思路 步骤一:定义整型变量fen5,fen2,fen1,表示1分2分和5分,零钱数额x,总硬币数total,换法count 步骤 ...

  10. 团队开发---”我爱淘“校园二手书店 NABC分析

    本项目特点之一:可预订 N:对于一些抢手的书可以提前预定,避免学生买不到书 A:网上下单,通过手机便捷购物 B:使得订书更加方便快捷 C:二手书摊.网上书店 团队成员:杨广鑫.郭健豪.李明.郑涛