SpringMVC 获取请求参数 的几种方式

简介: SpringMVC 获取请求参数 的几种方式

一、获取基本类型参数

Controller中的业务方法的参数名称要与请求参数的name一致,参数值会自动映射匹配

http://localhost:8080/zhuyuanjie_springmvc1/quick?username=zhangsan&age=12

@RequestMapping("/quick")
@ResponseBody
public void quickMethod(String username,int age) throws IOException {
    System.out.println(username);
    System.out.println(age);
}

二、获取POJO类型参数

Controller中的业务方法的POJO参数的属性名与请求参数的name一致,参数值会自动映射匹配

http://localhost:8080/zhuyuanjie_springmvc1/quick?username=zhangsan&age=12  

public class User {
    private String username;
    private int age;
    getter/setter…
}
@RequestMapping("/quick")
@ResponseBody
public void quickMethod(User user) throws IOException {
    System.out.println(user);
}

三、获取数组类型参数

Controller中的业务方法数组名称与请求参数的name一致,参数值会自动映射匹配

http://localhost:8080/zhuyuanjie_springmvc1/quick?strs=111&strs=222&strs=333

@RequestMapping("/quick")
@ResponseBody
public void quickMethod(String[] strs) throws IOException {
    System.out.println(Arrays.asList(strs));
}

四、参数绑定注解 @requestParam

当请求的参数名称与Controller的业务方法参数名称不一致时,就需要通过@RequestParam注解显示的绑定

< form action= " ${ pageContext.request.contextPath } /quick" method= "post" >

       < input type= "text" name= "name" >< br >

       < input type= "submit" value= " 提交 " >< br >

</ form >

@RequestMapping("/quick")
@ResponseBody
public void quickMethod(@RequestParam("name") String username) throws 
IOException {
    System.out.println(username);
}

注解@RequestParam还有如下参数可以使用:

  • value:与请求参数名称
  • required:此在指定的请求参数是否必须包括,默认是true,提交时如果没有此参数则报错
  • defaultValue:当没有指定请求参数时,则使用指定的默认值赋值
@RequestMapping("/quick")
@ResponseBody
public void quickMethod(@RequestParam(value="name",required = 
false,defaultValue = "zhuyuanjie") String username) throws IOException {
    System.out.println(username);
}

五、获得Restful风格的参数

Restful风格的请求是使用“url+请求方式”表示一次请求目的的,HTTP 协议里面四个表示操作方式的动词如下:

  • GET:用于获取资源
  • POST:用于新建资源
  • PUT:用于更新资源
  • DELETE:用于删除资源

例如:

  • /user/1 GET : 得到 id = 1 的 user
  • /user/1 DELETE: 删除 id = 1 的 user
  • /user/1 PUT: 更新 id = 1 的 user
  • /user POST: 新增 user

六、使用URL占位符

上述url地址/user/1中的1就是要获得的请求参数,在SpringMVC中可以使用占位符进行参数绑定。地址 /user/1 可以写成 /user/{id},占位符 {id} 对应的就是1的值。在业务方法中我们可以使用@PathVariable注解进行占位符的匹配获取工作

http://localhost:8080/zhuyuanjie_springmvc1/quick19/zhangsan

@RequestMapping("/quick/{name}")
@ResponseBody
public void quickMethod(@PathVariable(value = "name",required = true) String name){
    System.out.println(name);
}

七、通过Servlet相关API

SpringMVC支持使用原始ServletAPI对象作为控制器方法的参数进行注入,常用的对象如下:

  • HttpServletRequest
  • HttpServletResponse
  • HttpSession
@RequestMapping("/quick")
@ResponseBody
public void quickMethod(HttpServletRequest request,HttpServletResponse response,HttpSession session){
    System.out.println(request);
    System.out.println(response);
    System.out.println(session);
}


目录
相关文章
|
C语言
【C语言】大小写字母的相互转化:多种方法解析及原理说明
【C语言】大小写字母的相互转化:多种方法解析及原理说明
948 0
|
7月前
|
Java Spring
Spring Boot的核心注解是哪个?他由哪几个注解组成的?
Spring Boot的核心注解是@SpringBootApplication , 他由几个注解组成 : ● @SpringBootConfiguration: 组合了- @Configuration注解,实现配置文件的功能; ● @EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项 ● @ComponentScan:Spring组件扫描
|
10月前
|
JSON 数据格式 开发者
SpringMVC--获取请求参数
在SpringMVC中,获取请求参数有多种方法,分别适用于不同的场景。通过使用 `@RequestParam`、`@PathVariable`、`@RequestBody`、`HttpServletRequest`和 `@ModelAttribute`等注解和对象,可以方便地从请求中提取所需的数据。了解和掌握这些方法,有助于编写高效且健壮的Web应用程序。
147 6
|
5月前
|
缓存 Java Nacos
如何优雅上线、下线?原来 大厂应用 是这样 优雅发布的!
如何优雅上线、下线?原来 大厂应用 是这样 优雅发布的!
如何优雅上线、下线?原来 大厂应用 是这样 优雅发布的!
|
Java 应用服务中间件 Maven
ContextLoaderListener在Spring应用中的作用与配置方法
ContextLoaderListener在Spring应用中的作用与配置方法
|
12月前
|
监控 Java API
|
存储 监控 算法
(六)JVM成神路之GC基础篇:对象存活判定算法、GC算法、STW、GC种类详解
经过前面五个章节的分析后,对于JVM的大部分子系统都已阐述完毕,在本文中则开始对JVM的GC子系统进行全面阐述,GC机制也是JVM的重中之重,调优、监控、面试都逃不开的JVM话题。
585 8
|
安全 Shell PHP
pear文件利用 (远程文件下载、生成配置文件、写配置文件) 从一道题看——CTFshow私教 web40
pear文件利用 (远程文件下载、生成配置文件、写配置文件) 从一道题看——CTFshow私教 web40
710 0
|
存储 边缘计算 数据管理
数据库技术的革新与变革:塑造未来数据管理的新趋势
一、引言 随着信息技术的飞速发展,数据库技术作为数据管理的基础,也在不断革新与变革
1410 0
|
关系型数据库 MySQL 数据库
【已解决】[图文步骤] message from server: “Host ‘172.17.0.1‘ is not allowed to connect to this MySQL server“
【已解决】[图文步骤] message from server: “Host ‘172.17.0.1‘ is not allowed to connect to this MySQL server“
478 0