SpringMVC中RequestMapping注解(作用、出现的位置、属性)

 更新时间:2021年01月25日 14:14:56   作者:牛哄哄的柯南  
这篇文章主要介绍了SpringMVC中RequestMapping注解(作用、出现的位置、属性),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

RequestMapping注解

作用出现位置属性

作用

用于建立请求 URL 和处理请求方法之间的对应关系。

出现位置

1.作用在类上:请求 URL 的第一级访问目录。此处不写的话,就相当于应用的根目录。写的话需要以/开头。
2.作用在方法上:请求 URL 的第二级访问目录。

控制器中部分代码示例:

@Controller
@RequestMapping(path = "/user") //第一级的访问目录
public class HelloController {

 @RequestMapping(path = "/hello") //第二级的访问目录
 public String sayHello(){
 System.out.println("Hello SpringMVC");
 return "success";
 }

 @RequestMapping(value = "/testRequestmapping") //第二级的访问目录
 public String testRequestmapping(){
 System.out.println("测试注解");
 return "success";
 }
}

jsp中部分代码示例:

<!-- 第一种访问方式 --> 
<a href="${pageContext.request.contextPath}/user/hello">sayHello</a> <br/>
<!-- 第二种访问方式 --> 
<a href="user/testRequestmapping">测试注解</a>

需要注意的细节:

1.细节:路径可以不编写 / 表示应用的根目录开始
2.细节:${ pageContext.request.contextPath }也可以省略不写,但是路径上不能写 /

属性

value: 用于指定请求的 URL。它和 path 属性的作用是一样的。
method: 用于指定请求的方式。
params: 用于指定限制请求参数的条件。它支持简单的表达式。要求请求参数的 key 和 value 必须和配置的一模一样。

例如:
params = {“username”},表示请求参数必须有 username
params = {“age!100”},表示请求参数中 age 不能是 100

headers: 用于指定限制请求消息头的条件。

注意:以上四个属性只要出现 2 个或以上时,他们的关系是与的关系。

value或path 属性的示例

上面出现位置的示例就是value或path 属性的示例。

method 属性的示例

控制器的部分代码:

@RequestMapping(value="/saveAccount",method=RequestMethod.POST)
public String saveAccount() {
	System.out.println("保存了账户");
	return "success"; 
}

jsp的部分代码:

<!-- 请求方式的示例 --> 
<a href="account/saveAccount">保存账户,get 请求</a> <br/>
<form action="account/saveAccount" method="post"> 
	<input type="submit" value="保存账户,post 请求">
</form>

注意:当使用 get 请求时即method="get",提示错误信息是 405,信息是方法不支持 get 方式请求。

在这里插入图片描述

params 属性的示例

控制器的部分代码:

@RequestMapping(value="/removeAccount",params= {"accountName","money>100"})
public String removeAccount() {
	System.out.println("删除了账户");
	return "success"; 
}

jsp的部分代码:

<!-- 请求参数的示例 --> 
<a href="account/removeAccount?accountName=aaa&money>100">删除账户,金额 100</a> <br/>
<a href="account/removeAccount?accountName=aaa&money>150">删除账户,金额 150</a>

注意:
当我们点击第一个超链接时,可以访问成功。
当我们点击第二个超链接时,无法访问。如下图:

在这里插入图片描述

params键值对的情况以及headers属性

还存在params = {"username=keafmd"}键值对的情况:这个示例的意思就是不光要有username的属性还要求值为Keafmd。
同时headers属性也就是表示必须包含相应的请求头才可以。
控制器的部分代码:

@Controller
@RequestMapping(path = "/user")
public class HelloController {

 @RequestMapping(value = "/testRequestmapping",method = {RequestMethod.GET},params = {"username=keafmd"},headers = {"Accept"})
 public String testRequestmapping(){
  System.out.println("测试注解");
  return "success";
 }
}

jsp的部分代码:

<a href="user/testRequestmapping?username=keafmd">RequestMapping注解</a>

这样就是可以成功访问的。

以上就是SpringMVC中RequestMapping注解【作用、出现的位置、属性】全部内容。

到此这篇关于SpringMVC中RequestMapping注解(作用、出现的位置、属性)的文章就介绍到这了,更多相关SpringMVC中RequestMapping注解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 深入探究Java线程的状态与生命周期

    深入探究Java线程的状态与生命周期

    在java中,任何对象都要有生命周期,线程也不例外,它也有自己的生命周期。线程的整个生命周期可以分为5个阶段,分别是新建状态、就绪状态、运行状态、阻塞状态和死亡状态
    2022-04-04
  • SpringBoot整合RestTemplate用法的实现

    SpringBoot整合RestTemplate用法的实现

    本篇主要介绍了RestTemplate中的GET,POST,PUT,DELETE、文件上传和文件下载6大常用的功能,具有一定的参考价值,感兴趣的可以了解一下
    2023-08-08
  • Spring Security实现5次密码错误触发账号自动锁定功能

    Spring Security实现5次密码错误触发账号自动锁定功能

    在现代互联网应用中,账号安全是重中之重,然而,暴力 破解攻击依然是最常见的安全威胁之一,攻击者通过自动化脚本尝试大量的用户名和密码组合,试图找到漏洞进入系统,所以为了解决这一问题,账号锁定机制被广泛应用,本文介绍了Spring Security实现5次密码错误触发账号锁定功能
    2024-12-12
  • Java ShardingJDBC实战演练

    Java ShardingJDBC实战演练

    Sharding-JDBC 采用在 JDBC 协议层扩展分库分表,是一个以 jar 形式提供服务的轻量级组件,其核心思路是小而美地完成最核心的事情
    2021-11-11
  • Java创建线程池为什么一定要用ThreadPoolExecutor

    Java创建线程池为什么一定要用ThreadPoolExecutor

    本文介绍了Java创建线程池为什么一定要用ThreadPoolExecutor,手动方式使用ThreadPoolExecutor创建线程池和使用Executors执行器自动创建线程池,下文更多相关内容需要的小伙伴可以参考一下
    2022-05-05
  • Springboot整合Freemarker的实现详细过程

    Springboot整合Freemarker的实现详细过程

    这篇文章主要介绍了Springboot整合Freemarker的实现详细过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • SpringBoot测试类注入Bean失败的原因及分析

    SpringBoot测试类注入Bean失败的原因及分析

    SpringBoot 2.2版本前后测试类有所变化,2.2版本之后使用JUnit 5,导入注解@SpringBootTest和@Test来自junit.jupiter.api包;而2.2版本之前使用JUnit 4,需要额外导入@RunWith注解来自junit.runner包,无论哪个版本,都需确保测试类和启动类的包名一致
    2024-09-09
  • Java中常见的几种四舍五入方法总结

    Java中常见的几种四舍五入方法总结

    在Java编程中四舍五入是一个常见的数学运算需求,下面这篇文章主要给大家介绍了关于Java中常见的几种四舍五入方法,文章通过代码介绍的非常详细,对大家的学习或者工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-08-08
  • MyBatis-Plus结合Layui实现分页方法

    MyBatis-Plus结合Layui实现分页方法

    MyBatis-Plus 使用简单,本文主要介绍使用 service 中的 page 方法结合 Layui 前端框架实现分页效果,具有一定的参考价值,感兴趣的可以了解一下
    2021-08-08
  • JAVA生成pdf文件的实操教程

    JAVA生成pdf文件的实操教程

    PDF是可移植文档格式,是一种电子文件格式,具有许多其他电子文档格式无法相比的优点,下面这篇文章主要给大家介绍了关于JAVA生成pdf文件的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-11-11

最新评论