2021-08-19每日作业(一)

【作业1】:今日知识点文字总结(RedirectAttributes的用途、@RequestBody和@ResponseBody两个注解的使用位置和作用、基于Servlet3.0标准规范的Multipart文件上传和下载的开发步骤、HandlerInterceptor的用法和用途)

解答:

  • RedirectAttributes的用途:

RedirectAttributes是Spring mvc3.1版本之后的其中一个功能,专门用于重定向还能带参数跳转的工具类。有以下两种带参的方式:第一种,redirectAttributes.addAttribute(“param”,”value”),这种方法相当于在重定向链接地址追加传递的参数;第二种,redirectAttributes.addFlashAttribute(“param”,”value”),这种方法隐藏了参数,链接地址上不直接暴露,但能切只能在重定向的页面获取param参数值。这是因为参数值被放入session中,session在跳到页面后立马移除对象。若重定向在一个controller中就获取不到param属性,需要在controller中用(@RequestPrama(value = "prama")String prama)注解,采用传参的方式。

  • @RequestBody和@ResponseBody两个注解的使用位置和作用:

@RequestBody使用在方法传入参数上,作用是从请求体request body中读取json,并转换成Book对象,而@ResponseBody使用在方法体上,作用是使服务器端网页停留在第一次请求访问的页面,不进行第二次跳转,作用等同于removesession,即会话的销毁。

理解不清楚参见:

@Responsebody注解表示该方法的返回的结果直接写入 HTTP 响应正文中,一般在异步获取数据时使用;
在使用@RequestMapping后,返回值通常解析为跳转路径,加上@Responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP 响应正文中。例如,异步获取json数据,加上@Responsebody注解后,就会直接返回json数据。
@RequestBody注解则是将 HTTP 求正文插入方法中,使用适合的HttpMessageConverter将请求体写入某个对象。

————————————————
版权声明:本文为CSDN博主「CG国斌」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_35246620/article/details/59620858

  • 基于Servlet3.0标准规范的Multipart文件上传和下载的开发步骤:

主要配置步骤如下:

1、容器启动时,加载”文件上传配置参数”,

2、创建Multipart解析器Bean(Bean的名称必须为“multipartResolver”),

  • HandlerInterceptor的用法和用途:

用途:HandlerInterceptor有以下方法:

1、preHandle:在业务处理器处理请求之前被调用。预处理,可以进行编码、安全控制、权限校验等处理;

2、postHandle:在业务处理器处理请求执行完成后,生成视图之前执行。后处理(调用了Service并返回ModelAndView,但未进行页面渲染),有机会修改ModelAndView (这个博主就基本不怎么用了);

3、afterCompletion:在DispatcherServlet完全处理完请求后被调用,可用于清理资源等。返回处理(已经渲染了页面);

用法:自定义一个HandIerInterceptor的实现类,实现类需要实现HandlerInterceptor接口,此时即拦截器就已经存在,第二步需要对拦截器进行注册,使用WebMvcConfigurer下的addInterceptors方法才能使拦截器生效。

【作业2】:MyBatis的一级缓存和二级缓存有什么区别?

解答:一级缓存和二级缓存都存在于同一个SqlSession生命周期中。不同的是,

  1. 一级缓存在同一个SqlSession中,MyBatis会把执行的方法和参数通过算法生成缓存的键值,将键值和结果存放在同一个Map中,若后续的键值一样,则直接从Map(一级缓存)中获取数据;其次,不同的SqlSession之间的缓存是相互隔离的,同一个SqlSession可以通过配置使得在查询前清空缓存,任何UPDATE、DELETE、INSERT语句都会清空缓存。
  2. 而二级缓存是以namespace为单位的,不同namespace下的操作互不影响;它更新时会以namespace为单位更新从而刷新缓存。

【作业3】:MyBatis的优势有哪些?

解答:MyBatis相对传统JDBC来说,利用sql映射简化了其繁琐的增删改查,同时通过缓冲池的连接作为缓存,缓解了以往多次重复调用相同数据的压力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值