ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Day64

2021-06-14 13:33:23  阅读:204  来源: 互联网

标签:拦截器 return 线程 Day64 放行 运行 afterCompletion


Day64

 

ResponseBody

处理ajax

 

SprinMVC文件下载(不建议用)

步骤:1、找到要下载的文件的流

找到要下载的真实路径

new byte[] ,读取文件流,

 

2、要下载的文件流返回

new httpHeaders()

htppHeaders.set()

 

HttpMessageConverter< T >接口

里面的方法:

Boolean canRead:是否能读

Boolean canWrite:是否能写

 

List<Media Type> getSupportMedia Types() --->转换器支持的媒体类型

如果能读能写,就调用下面两个方法。

T read -->>把信息流读出来,然后封装成我们需要的对象

void write ---->>把读出来的数据,写出去。

 

拦截器(接口)

拦截器是过滤器的升级版

跟Filter差不多,一个是javaWeb 一个是SpringMVC。

 

HandleInterceptor比较强大一点。有三个方法

preHandle:在目标方法之前调用,返回boolean;return True 放行;return false不放行。

postHandle:在目标方法运行之后调用,目标方法调用之后。可以给ModeAndView添加对象

afterCompletion:在请求整个完成之后,来到目标页面之后。资源响应之后。

正常情况

1)拦截器是一个接口

2)实现HandleInterceptor接口。

3)配置拦截器

4)了解拦截器的运行流程。

拦截器的preHandle---->>目标方法--->>拦截器postHandle---->>页面 ----->>.拦截器的afterCompletion

 

其他情况

1、只要preHandle不放行,后面都不运行。

2、只要放行了,不管怎么样。afterCompletion都会执行;

 

多个拦截器的情况下 :

运行流程跟filter有点像

先进后出。

preA运行--->preB运行 ----->目标方法----->postB运行----->postA运行---->页面--->afterB运行---->afterA运行。

 

不放行的情况下:都不运行;

第二个拦截器不放行,但是前面已经放行的拦截器的afterCompletion总会运行。‘

 

preHandle执行成功后,会记录索引位置。

第一次:ConversionServiceExposingIntercepter -->> interceptorIndex=0;

第二次:firstInterceptor -->> interceptorIndex=1;

第三次:secondInterceptor 执行afterCompletion()

已经放行的拦截器的afterCompletion一定会执行

 

 

SpringMVC的国际化

1.写好国际化资源文件

2.让Spring的ResourceBoudleMessageSouce管理国际化资源文件。

3.直接去页面取值。

2021.6.7每天继续。

 

 

 

小知识

Map和Collection接口


线程和进程的知识:

1、一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程(通常说的主线程)。 2、资源分配给进程,同一进程的所有线程共享该进程的所有资源。 3、线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。 4、处理机分给线程,即真正在处理机上运行的是线程。 5、线程是指进程内的一个执行单元,也是进程内的可调度实体。

 


SSH的知识

SSH(Struts,Spring,Hibernate) Struts进行 流程控制,Spring进行业务流转,Hibernate进行数据库操作的封装。


修饰符总结


  • return i++ 比较特殊,先是return i;然后i++。

  • return i=i+ 1 则不同,它是先让i=i+1,再return。


包装类是针对 *基本数据类型* 的。


数值型变量在默认情况下为Int型,byte和short型在计算时会自动转换为int型计算,结果也是int 型。所以a1*a2的结果是int 型的。

标签:拦截器,return,线程,Day64,放行,运行,afterCompletion
来源: https://www.cnblogs.com/sorrymaker/p/14882327.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有