我们的GET方式直接在网页后用?和&来书写传递参数:
文章插图
我们的POST方式只能在下方的body中书写参数:
文章插图
然后我们需要注意到的是这里的中文同样会出现乱码行为
这次我们选择在ServletContainersInitConfig中处理数据:
// 下述代码基本属于我们创建项目的固定代码package com.itheima.config;import org.springframework.web.filter.CharacterEncodingFilter;import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;import javax.servlet.Filter;public class ServletContainersInitConfig extends AbstractAnnotationConfigDispatcherServletInitializer {protected Class<?>[] getRootConfigClasses() {return new Class[0]{SpringConfig.class};}protected Class<?>[] getServletConfigClasses() {return new Class[]{SpringMvcConfig.class};}protected String[] getServletMappings() {return new String[]{"/"};}//乱码处理@Overrideprotected Filter[] getServletFilters() {// CharacterEncodingFilter 属于处理中文编码的过滤器,我们直接创建即可(一次性操作)CharacterEncodingFilter filter = new CharacterEncodingFilter();filter.setEncoding("UTF-8");return new Filter[]{filter};}}
按参数方式我们按参数来分类主要分为五种:- 普通参数
- POJO类
- 嵌套式POJO类
- 数组参数
- 集合参数
普通参数普通参数:请求参数和形参变量名相同时,自动匹配
package com.itheima.controller;import com.itheima.domain.User;import org.springframework.format.annotation.DateTimeFormat;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import java.util.Arrays;import java.util.Date;import java.util.List;//请求参数@Controllerpublic class UserController {//普通参数:请求参数与形参名称对应即可完成参数传递@RequestMapping("/commonParam")@ResponseBodypublic String commonParam(String name ,int age){System.out.println("普通参数传递 name ==> "+name);System.out.println("普通参数传递 age ==> "+age);return "{'module':'common param'}";}}
Postman操作:文章插图
这里需要注意:当请求参数名与形参名不同时 , 使用@RequestParam注解关联请求参数名称与形参名称之间的关系
package com.itheima.controller;import com.itheima.domain.User;import org.springframework.format.annotation.DateTimeFormat;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import java.util.Arrays;import java.util.Date;import java.util.List;//请求参数@Controllerpublic class UserController {//普通参数:请求参数名与形参名不同时,使用@RequestParam注解关联请求参数名称与形参名称之间的关系@RequestMapping("/commonParamDifferentName")@ResponseBodypublic String commonParamDifferentName(@RequestParam("name") String userName , int age){System.out.println("普通参数传递 userName ==> "+userName);System.out.println("普通参数传递 age ==> "+age);return "{'module':'common param different name'}";}}
Postman操作:文章插图
@RequestParam:绑定请求参数与处理器方法形参间的关系POJO参数POJO参数:请求参数名与形参对象属性名相同 , 定义POJO类型形参即可接收参数
包含有两个参数
required:是否为必传参数
defaultValue:参数默认值
package com.itheima.controller;import com.itheima.domain.User;import org.springframework.format.annotation.DateTimeFormat;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import java.util.Arrays;import java.util.Date;import java.util.List;//请求参数@Controllerpublic class UserController {//POJO参数:请求参数与形参对象中的属性对应即可完成参数传递@RequestMapping("/pojoParam")@ResponseBodypublic String pojoParam(User user){System.out.println("pojo参数传递 user ==> "+user);return "{'module':'pojo param'}";}}
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 火山视频怎么挣钱的(火山挣钱还是抖音挣钱)
- 第一篇 TTD 专题 :C# 那些短命线程都在干什么?
- 火山小视频怎么赚钱(玩火山怎么赚钱)
- 怎么用支付宝花呗付款(支付宝花呗付款码限额)
- 花呗如何用(花呗的使用方式)
- 怎样使用花呗(花呗12期能一次全还吗)
- 1+volte怎么关闭(怎么关闭volte通话)
- 高清视频通话怎么关闭(红米怎么关闭高清通话)
- 耳机界四大王牌厂商大盘点 耳机四大厂
- 移动volte怎么关闭(怎么取消volte功能)