SpringMVC之使用 @RequestMapping 映射请求

简介: SpringMVC之使用 @RequestMapping 映射请求

@RequestMapping注解


SpringMVC使用该注解让控制器知道可以处理哪些请求路径的,除了可以修饰方法,还可以修饰在类上


– 类义处:提供初求映射信息。相WEB 用的根目
方法:提供分映射信息。相义处URL。若
义处@RequestMapping方法处标记URL
WEB 用的根目录 。


DispatcherServlet作为SpringMVC的前置控制器,拦截客户端请求后,通过该注解的映射信息确定请求的处理方法。


@RequestMapping接口定义:


@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Mapping
public @interface RequestMapping {


下面是一个测试类


package com.led.test;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
 * @author Alan
 * @date 2018/5/25 22:03
*/
@Controller
@RequestMapping("/test")
public class SpringMVCTest {
    private static final String SUCCESS = "success";
    @RequestMapping("/testRequestMapping")
    public String testRequestMapping(){
        System.out.println("testRequestMapping");
        return SUCCESS;
    }
}


index.jsp加上发送对应请求的链接:


<a href="test/testRequestMapping">Test RequestMapping</a>


运行项目,点击该链接,可以看到请求路径是类上的请求路径和方法的请求路径拼接起来的,同时控制台也有对应输出。



 

@RequestMapping里面还可以使用method属性定义请求方式:


/**
     * 使用method定义请求方式
     * @return
     */
    @RequestMapping(value = "/testMethod",method = RequestMethod.POST)
    public String testMethod(){
        System.out.println("test method");
        return SUCCESS;
    }


index.jsp新增发送post方式的按钮,点击后成功跳转到success.jsp


<form action="test/testMethod" method="post">
      <input type="submit" value="submit">
  </form>




如果使用超链接方式(其实发送的是GET请求),将报如下错误:



@RequestMapping映射求参数(params)、求方法或头 (headers)示例;

//使用params和headers可以更精确地映射请求
@RequestMapping(value = "/testParamsAndHeaders",
            headers = {"Accept-Language=zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7"},
            params = {"username","age!=10"})
    public String testParamsAndHeaders(){
        System.out.println("testParamsAndHeaders");
        return SUCCESS;
    }


index.jsp加上测试链接:


<a href="test/testParamsAndHeaders?username=zhangsan&age=11">Test ParamsAndHeaders</a>


 

由于params和headers都符合设置的值,所以成功返回success.jsp,使用说明如下


params 和 headers支持简单的表达式:
– param1: 表示请求必须包含名为 param1 的请求参数
– !param1: 表示请求不能包含名为 param1 的请求参数
– param1 != value1: 表示请求包含名为 param1 的请求参数,但其值
不能为 value1
– {“param1=value1”, “param2”}: 请求必须包含名为 param1 和param2
的两个请求参数,且 param1 参数的值必须为 value1


支持Ant风格url


@RequestMapping("/testAntPath/*/good")
    public String testAntPath(){
        System.out.println("testAntPath");
        return SUCCESS;
    }


index.jsp:


<a href="test/testAntPath/as/good">Test AntPath</a>


箭头的地方改成任意值都能跳转到success.jsp,这就是通配符的作用:



Ant 风格资源地址支持 3 种匹配符:
– ?:匹配文件名中的一个字符
– *:匹配文件名中的任意字符
– **:** 匹配多层路径
相关文章
|
应用服务中间件
SpringMVC中的@RequestMapping注解的详细介绍过程~
SpringMVC中的@RequestMapping注解的详细介绍过程~
|
28天前
|
前端开发 Java 开发者
Spring MVC中的请求映射:@RequestMapping注解深度解析
在Spring MVC框架中,`@RequestMapping`注解是实现请求映射的关键,它将HTTP请求映射到相应的处理器方法上。本文将深入探讨`@RequestMapping`注解的工作原理、使用方法以及最佳实践,为开发者提供一份详尽的技术干货。
107 2
|
JSON 前端开发 Java
SpringMVC中@RequestBody和@ResponseBody两个注解的区别
📒 程序员小王的博客:程序员小王的博客 🎉 欢迎点赞 👍 收藏 ⭐留言 📝 😊 如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕 🍅java自学的学习路线:java自学的学习路线 今天我想详细的了解一下Spring MVC中@RequestBody和@ResponseBody的区别,让我自己在开发中更好的使用这两个注解
230 0
SpringMVC中@RequestBody和@ResponseBody两个注解的区别
|
7月前
|
前端开发 Java
@RequestMapping 注解以及其它使用方式
@RequestMapping 注解以及其它使用方式
196 0
SpringMVC@RequestMapping相关属性
SpringMVC@RequestMapping相关属性
53 0
SpringMVC @GetMapping注解路径冲突问题
SpringMVC @GetMapping注解路径冲突问题
232 0
SpringMVC @GetMapping注解路径冲突问题
SpringMVC的请求映射路径
SpringMVC的请求映射路径
79 0
|
前端开发 程序员
SpringMVC——@RequestMapping定义请求规则,控制器接收请求参数的三种方式
SpringMVC——@RequestMapping定义请求规则,控制器接收请求参数的三种方式
SpringMVC——@RequestMapping定义请求规则,控制器接收请求参数的三种方式
SpringMVC中RequestMapping注解【作用、出现的位置、属性】
SpringMVC中RequestMapping注解【作用、出现的位置、属性】
SpringMVC中RequestMapping注解【作用、出现的位置、属性】
|
前端开发 Java Spring
SpringMVC @RequestMapping用法 参数绑定
@RequestMapping 简介 在Spring MVC 中使用 @RequestMapping 来映射请求,也就是通过它来指定控制器可以处理哪些URL请求,相当于Servlet中在web.xml中配置
222 0
SpringMVC @RequestMapping用法 参数绑定