1.通过ServletAPI获取
将HttpServletRequest作为控制器方法的形参,此时HttpServletRequest类型的参数表示封装了当前请求的请求报文的对象
新建一个控制层类
添加Controller注解标注成控制层组件
在index.html的页面文件中添加代码如下所示:
在TestParamController中添加请求映射:
运行结果如下所示:
填写信息后点击登录后在控制台展示的数据如下所示:
2.通过控制器方法的形参获取请求参数和@RequestParam的使用
在index.html的页面中添加表单代码如下所示:
在TestParamController的类中添加通过控制器方法的形参来获取
运行结果如下所示:
点击登陆按钮:
在TestParamController的类中添加通过控制器方法的形参来获取的升级方式
在浏览器输入栏输入:
结果如下所示:
3.@RequestHeader和@CookieValue
在TestParamController的类中添加通过控制器方法的形参来获取的升级方式
在index.html中添加页面代码如下所示:
先访问API才会创建Cookie :
在界面中输入信息:
运行结果而如下所示:
4.通过pojo获取请求参数
在控制器方法的形参位置,来设置一个实体类的形参,只要能保证实体类中的属性跟请求参数的名字一样,就可以直接把当前的请求参数的值封装到实体类类型的形参中,
新创建一个类,并设置有参和无参构造方法和set和get方法以及toString方法:
将发送请求设置为/param/pojo,在index.html文件中添加
在控制类中添加通过控制器方法的形参来获取的数据
运行结果如下所示:
在页面中输入数据
在控制台获取数据:
5.解决获取请求参数的乱码问题
将index.html文件的请求方式修改为post
运行程序,输入数据:
结果如下所示,在username处出现了乱码问题:
解决方式:
设置请求和响应的编码,在web.xml文件中添加如下代码:
再次运行并输入数据:
结果如下所示:
注意:
SpringMVC中处理编码的过滤器一定要配置到其他过滤器之前,否则无效
因为:设置编码之前一定不能获取其他的请求参数,若获取了其他的请求参数设置的编码就失去了效果