springmvc @requestbody_Day063-springmvc

第127次(SpringMVC)

学习主题:SpringMVC框架

学习目标:

1 掌握springMVC注解

2 掌握springMVC获取参数

1. 注解式开发之annotation-driven解释

(1) mvc注解驱动在哪个文件中配置?

在springmvc.xml文件中配置

(2) 配置mvc注解驱动使用哪个标签?

<mvc:annotation-driven/>

2. 注解式开发之视图解析器

(1) 视图解析器起到什么作用?

将逻辑视图解析为一个具体的视图对象

(2) 视图解析器如何使用?

v2-64d409d7b307f06fa84a54731551e687_b.png

3. 处理器方法常用参数

(1) 处理器方法的常用参数有哪些?

HttpServletRequest

HttpServletResponse

HttpSession

用于承载数据的Model、Map、ModelMap

请求中所携带的请求参数

(2) SpringMVC控制层常用的承载数据的对象有哪些?

Model、Map、ModelMap

4. 参数接收之逐个接收

(1) 在后端控制器中如何接收前台参数?

1. 逐个接收(涉及注解@RequestParam)

2. 以对象形式整体接收

3. 域属性参数的接收

4. 数组或集合参数的接收

5. restful风格,传参(涉及注解@PathVariable)

6. 接收json字符串(涉及注解@RequestBody,注册mvc注解驱动,导入jackson包)

(2) 在后端控制器中接收前台“age”参数,是否需要手动转换成int类型,为什么?

不需要,springmvc会自动进行类型转换。

5. 参数接收之对象整体接收

(1) 简述以对象形式整体接收参数的步骤?

定义接收参数的类,类中的属性名要和接收的参数的name属性值一致。

(2) 以对象形式整体接收参数有什么要求?

对象的属性名要和接收的参数的name属性值一致。

6. 参数接收之数组或集合接收参数

(1) 请简述用数组或集合接收参数的步骤?

多个参数的name属性都要相同并且和要接收的数组的数组名相同。

(2) 请描述数组和集合接收参数的区别?

数组不需要加注解,集合接收参数需要加上@requestParam注解

7. 参数接收之域属性参数接收及restful风格传参

(1) 域属性参数的接收需要注意什么?

参数的name属性格式应该为 域属性名.域属性的属性名

(2) 什么是restful风格传参?

参数作为路径的一部分。

第128次(springMVC)

学习主题:springMVC

学习目标:

1 掌握springmvc接受json,获取请求头信息

2 掌握springmvc返回值,转发和重定向,文件上传下载

3 掌握springmvc拦截器,自定义拦截器

8. 参数接收之接收json

(1) 如何在后端控制器中接收前台传过来的Json字符串?

在接收参数前加上注解@RequestBody

(2) 如何将页面中的Json对象转换成Json字符串?

JSON.stringify(Json对象)

9. 获取请求头中信息@RequestHeader

(1) 请求头中有哪些常用信息?

host、cookie

(2) @RequestHeader该注解放到什么位置?

形参前。

10. 处理器方法返回值类型String

(1) 处理器方法何时使用String作为返回值类型?

只跳转资源不传递数据。

(2) 如果处理器方法返回值类型为String,默认情况访问该方法会如何跳转?

请求转发。

11. 处理器方法无返回值void

(1) 如果处理器方法无返回值,那么能否进行资源跳转及传递数据,如何实现?

通过response对象。

(2) 何时处理器方法无返回值较合适?

处理异步请求。

12. 处理器方法返回值类型Object

(1) 如何将处理器方法返回值返回到前台?

在方法前添加@ResponseBody注解

13. 请求转发与重定向

(1) 请描述请求转发与重定向区别?

请求转发:一次请求涉及多个servlet,共享request、response对象中的数据,url地址不变,url为第一次请求的地址。

重定向:多次请求,由服务器响应告诉客户端重定向的地址,不能共享request、response对象中的数据,url地址栏发生变化,url为最后一次请求的地址,重定向可以在不同的服务器下完成。

(2) 在javaEE中请求转发和重定向是如何实现的?

request.getRequestDispatcher("/资源路径").forward();

response.sendRedirect("/虚拟项目名/资源路径");

14. 文件上传

(1) 文件上传时,表单中添加了什么属性,具体值是什么?

enctype="multipart/form-data"

(2) 使用springMVC进行文件上传时,接收文件的参数类型是什么?

MultipartFile

15. 文件下载

(1) 该视频中后端控制器方法的返回值类型是什么?

ResponseEntity<byte[]>

(2) 文件下载时后端控制器中涉及哪些步骤?

1. 指定下载文件

2. 创建字节数组,并且设置数组大小为预估的文件字节数

3. 将输入流中字符存储到缓存数组中

4. 获取要下载文件的文件名,并解决中文乱码

5. 设置http响应头信息,并且通知浏览器以附件的形式进行下载

6. 设置Http响应状态信息

16. 自定义拦截器

(1) 如何自定义拦截器?

v2-e17ee0a6de6d866a22846a6ef244d9cf_b.jpg

v2-0c3f70aec6bfc728d2a2c423f02e0b77_b.jpg

(2) 如何注册拦截器?

<mvc:interceptors>

<mvc:interceptor>

<mvc:mapping path="/资源路径"/><!--/** 全部拦截-->

<mvc:exclude-mapping path="/资源路径"/><!--放行指定资源-->

<bean class="拦截器的全限定路径"></bean>

</mvc:interceptor>

</mvc:interceptors>

17. 自定义拦截器-添加拦截器后执行流程(对应31-32视频)

(1) 自定义拦截器实现HandlerInterceptor接口需要实现哪些方法,这些方法分别是何时执行?

v2-6270df165c91edd1f4e7a6826963537c_b.jpg

v2-871a5f913e0cf5e22ccdb986f5275691_b.jpg

v2-41dd98fced160e0d755cfadb867db4d4_b.jpg

(2) 程序中有多个拦截器,那么程序的执行流程是怎样的?

先注册先执行,假如有两个先后注册的拦截器1,2,假如都放行则执行顺序为:先执行1的preHandle->再执行2的preHandle->执行处理器方法->2的postHandle->1的postHandle->2的afterCompletion->1的afterCompletion

18. Spring与SpringMVC父子容器关系解释

(1) 简述Spring与SpringMVC的关系?

在Spring整体框架的核心概念中,容器是核心思想,就是用来管理Bean的整个生命周期的,而在一个项目中,容器不一定只有一个,Spring中可以包括多个容器,而且容器由上下层关系,目前最常见的一种场景就是在一个项目中引入Spring和SpringMVC这两个框架,那么它其实就是两个容器,Spring是父容器,SpringMVC是其子容器,并且在Spring父容器中注册的Bean对于SpringMVC容器是可见的,而在SpringMVC容器中注册的Bean 对于Spring父容器中是不可见的,也就是子容器可以看见父容器中的注册的Bean,反之就不行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值