SpringMVC获取请求参数
1.通过ServletAPI获取
将HttpServletRequest作为控制器方法的形参,此时HttpServletRequest类型的参数表示封装了当前请求的请求报文的对象
结果:
2.通过控制器方法的形参获取请求参数
在控制器方法的形参位置,设置和请求形参同名的形参,当浏览器发送请求,匹配到请求映射时,在DispatcherServlet中就会将请求参数赋值给相应的形参
结果:
注意:
若请求所传输的请求参数中有多个同名的请求参数,此时可以在控制器方法的形参中设置字符串数组或者字符串类型的形参接收此请求参数
3.@RequestParam
@RequestParam是将请求参数和控制器方法的形参创建映射关系
@RequestParam注解一共有三个属性:
value:指定为形参赋值的请求参数的参数名
简写:
详细:
required:设置是否必须传输此请求参数,默认值为true
required:设置为false时,不需要必须传输value所指定的请求参数,若没有传输,则注解所标识的形参的值为null
required:设置为true时,必须传输value所指定的请求参数,否则报错!!
(若设置为true时,则当前请求必须传输value所指定的请求参数,若没有传输该请求参数,且没有设置 defaultValue属性,则页面报错400:Required String parameter ‘xxx’ is not present;若设置为false,则当 前请求不是必须传输value所指定的请求参数,若没有传输,则注解所标识的形参的值为null)
当某些参数传不传值都不是必须时,如果没有传值或传入空字符串时则表示为dafeultValue设置的值!!!!(设置空形参的默认值)
4.@RequestHeader
@RequestHeader是将请求头信息和控制器方法的形参创建映射关系
@RequesrHeader注解一共有三个属性:value,required,defaultValue,用法同@RequestParam
5.@CookieValue
6.通过POJO(实体类)获取请求参数
1.创建实体类对象(实体类对象属性要与提交信息保持一致)
2.创建控制器方法
3.编写页面:
4.查看结果:
sex中出现乱码问题:解决方法在下面
7.解决获取请求参数乱码问题
1).GET请求乱码,在TOMCAT的conf目录下找的server.xml中按照图片添加 URIEncoding="UFT-8"即可
2).在POST请求下需要在web.xml文件中进行配置SpringMVC编码过滤器