SpringMVC框架 第4章 处理请求数据


4 处理请求数据

4.1请求处理方法签名

  1)  Spring MVC 通过分析处理方法的签名,HTTP请求信息绑定到处理方法的相应人参中。

  2)  Spring MVC 对控制器处理方法签名的限制是很宽松的,几乎可以按喜欢的任何方式对方法进行签名。

e```````````````````````````````````````````````````````````````````````````````

4.5 使用POJO作为参数

  4)  Spring MVC 框架会将 HTTP 请求的信息绑定到相应的方法入参中,并根据方法的返回值类型做出相应的后续处理。

4.2 @RequestParam注解

1)在处理方法入参处使用 @RequestParam 可以把请求参数传递给请求方法

2)value:参数名

3)required:是否必须。默认为 true, 表示请求参数中必须包含对应的参数,若不存在,将抛出异常

4)defaultValue: 默认值,当没有传递参数时使用该值

4.2.1 实验代码

  1)  增加控制器方法

4.3 @RequestHeader 注解

  1 )  使用 @RequestHeader 绑定请求报头的属性值

   2)  请求头包含了若干个属性,服务器可据此获知客户端的信息,通过 @RequestHeader 即

  • 可将请求头中的属性值绑定到处理方法的入参中

4.3.1 实验代码

4.4 @CookieValue 注解

  1)  使用 @CookieValue 绑定请求中的 Cookie 值

  2)  @CookieValue 可让处理方法入参绑定某个 Cookie 值

4.4.1实验代码

  1)  增加控制器方法

/

4.5 使用POJO作为参数 

  1)  使用 POJO 对象绑定请求参数值

  2)  Spring MVC 会按请求参数名和 POJO 属性名进行自动匹配,自动为该对象填充属性值支持级联属性。如:deptId、dept.address.tel 等

  4.5.1实验代码

  1)  增加控制器方法、表单页面

  4)  如果中文有乱码,需要配置字符编码过滤器,且配置其他过滤器之前,

如(HiddenHttpMethodFilter),否则不起作用。(思考method=”get”请求的乱码问题怎么解决的)

4.6 使用Servlet原生API作为参数

  1)  MVC 的 Handler 方法可以接受哪些 ServletAPI 类型的参数

  • HttpServletRequest
  • HttpServletResponse
  • HttpSession
  • security.Principal
  • Locale
  • InputStream
  • OutputStream
  • Reader
  • Writer

  2)  源码参考:AnnotationMethodHandlerAdapterL866

  3) 

4.6.1 实验代码