SpringMvc- 请求处理参数 和 响应数据处理

本文详细介绍了SpringMvc中请求处理参数的方法,包括@RequestParam、@RequestHeader、@CookieValue、实体参数和原生Servlet API。同时,文章还讲解了响应数据处理的各种方式,如ModelAndView、Map、Model、forward/redirect以及@ResponseBody的使用,强调了各方法的特性和应用场景,以及在实际使用中需要注意的配置和依赖。
摘要由CSDN通过智能技术生成

1、请求处理参数

1.1 请求参数 @RequestParam

1.1.1 不使用 @RequestParam 注解

请求参数处理, 不使用参数注解 :

1.如果 请求参数名 和请求处理的 形参名一致 ,springMvc 框架会 自动 将你的请求 参数名对应的参数值 , 绑定 到请求方法的 形参中 , 方法内 就可以 直接使用 ,不用手动获取;

2.如果你的请求 没有携带参数 ,不会报错,只不过,请求处理方法的 形参值都是null或其他值 ,如果请求处理方法形参是一个实体参数,原理和单个类型参数一致(只要请求参数名和实体名一致也可以自动绑定);

测试不使用 @RequestParam 注解

@RequestMapping("/testSpringMvcNoRequestParam")
public String testSpringMvcNoRequestParam( String userId,String userName){

    System.out.println(String.format("------ 请求参数:uid :%s ,uname:%s------",userId,userName));

    return "success";
}

测试 请求不带参数

测试 请求带参数

1.1.3 使用 @RequestParam 注解

@RequestParam 只能 写在请求方法的 形参上 ;

required = false 设置 参数不是必传 ;

defaultValue 默认值 ;

  • 1.如果请求处理方法,形参前, 只增加了此注解 ,没有指定任何属性:
    • 作用:当前 形参必传 ,且 参数名 与 形参名 必须 一致 ,如果不一致,参数绑定失败,请求直接报400错误,提示你的参数没有提供;
  • 2.如果请求处理方法,形参前,只 增加了此注解 ,并 添加了value属性值 :
    • 作用:请求的 参数名 必须和 value属性指定 的名称一致,此value属性可以省略(只写 请求参数别名时,如果有其他的属性,value属性必须指定);
  • 3.如果要 取消 每个参数的 必传校验 ,可以给此注解增加属性 required=false (默认是true,必传),参数可以不传,不需要参数值的绑定;
  • 4.如果某个参数必传,但是为了防止请求没有携带此参数,可以通过指定属性 defaultValue增加默认值 ,如果调用当前请求方法处理,没有提供参数,自动使用默认值,绑定到方法的对应形参中;

测试

@RequestMapping("/testSpringMvcRequestParam")
public String testSpringMvcRequestParam(@RequestParam("uid") String userId,
     
SpringMVC是一个用于构建Web应用程序的Java框架。在SpringMVC中,处理请求响应是通过使用控制器方法来实现的。控制器方法使用@RequestMapping注解来映射请求的URL,并通过方法参数来获取请求参数响应对象。 在处理请求,可以使用@RequestParam注解来获取请求参数的值。例如,可以在方法参数上使用@RequestParam注解来获取请求中的特定参数值。另外,也可以使用@PathVariable注解来获取URL中的路径参数。 在处理响应,可以使用@ResponseBody注解将方法的返回值直接写入HTTP响应体中,而不是进行视图跳转。这样可以直接返回字符串、JSON格式的数据或其他类型的数据。 另外,在SpringMVC中,还有一些核心组件,如处理器映射器、处理器适配器和视图解析器。处理器映射器负责将请求映射到相应的控制器方法,处理器适配器负责将请求参数绑定到方法参数,并调用相应的控制器方法,视图解析器负责将方法的返回值解析为视图。 总结起来,SpringMVC通过控制器方法、注解和核心组件来处理请求响应,使得开发者可以方便地构建Web应用程序。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [springMVC请求响应](https://blog.csdn.net/weixin_38088097/article/details/105840310)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [SpringMVC请求响应](https://blog.csdn.net/weixin_51146329/article/details/123166475)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值