一、SpringMVC中的拦截器(在进行处理器前做一些操作)
1.实现方式
a.实现HandlerInterceptor接口,或者继承实现HandlerInterceptor接口的实现类(如HandlerInterceptorAdapter);
- HandlerInterceptor接口中定义了一下3个方法,分别是preHandle、postHandle和afterCompletion;
preHandler:主要用于在执行控制器方法之前执行,返回值为boolean,若为false,则表示
拦截请求,不再往下执行;
postHandler:该方法在执行控制器方法之后,且在返回ModelAndView之前执行,多用于处
里返回的视图;
afterCompletion:该方法在执行完控制器之后执行,适合进行一些资源清理、记录日志新型
操作;
- 在Spring的类加载配置文件中配置拦截器实现类
-
- HandlerMapping配置
-
<bean id="Interceptor" class="拦截器实现类的全路径地址">....(多个拦截器配置多个bean)
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
<property name="interceptord">
<list>
<ref bean="Interceptor"/>
....
</list>
</property>
</bean>
- 全局配置
<mvc: interceptors>:标签配置全局拦截器;
<mvc: interceptor>:配置特定路径的路径拦截器;其子元素必须按照<mvc:mapping>-><mvc:exclude-mapping>-><bean>的顺序书写;
b.实现WebRequestInterceptor接口,或者继承实现HandlerInterceptor接口的实现类(如WebRequestInterceptorAdapter);
2.多个拦截器的执行流程
多个拦截器的设计是基于“责任链”的模式。换句大白话来说,就是多个拦截器的prehandler方式是按照配置文件中的顺序来执行的,但是posthandler和afterCompletion方法的执行顺序是与配置文件中的顺序向反的。
二、Java应用首选向的存储(用来保存他们的首选项和定制信息)
1.属性映射(Properties)
a.属性映射是一种存储键/值对的数据结构,主要用来存储配置信息,其键和值是字符串,映射可以很容易地存入文件以及从文件加载,以及有一个二级表保存默认值;
b.Properties setting = new Properties();
setting,setProperty();
setting.store()将属性映射列表保存到一个文件中;
c.可以通过先设置二级映射,再当声明一级映射的时候将二级映射当做构造器的参数来设置默认的参数列表;
2.首选项API(Preferences)
有一个树状存储结构,每一个节点分别有一个单独的键/值对表
三、分组交换
端系统间彼此交换报文,报文能够包含协议设计者所需要的任何东西。报文被划分为较小的数据块,这个操作称为分组。
1.存储转发传输
是指在交换机能够开始向输出链路传输该分组的第一个bit之前,必须接收到整个分组。则N条速均为R的链路组成的路径(共有N-1台路由器)的端到端的存储转发时延为NL/R;
2.排队时延和分组丢失
- 对于每个分组交换机的链路都应该具有一个输出缓存,用于存储路由器准备发往链路的分组;当该链路忙于传输其他分组时,该到达分组必须在该输出缓存中等待—>排队时延
- 由于缓存空间的大小时有限的,当一个到达的分组发现该缓存已被其他等待传输的分组充满了,这种情况下降出现分组丢失(丢包),之前到达的分组之一将被丢弃;
3.转发表和路由选择协议(类似于一个不使用地图而喜欢问路的汽车驾驶员)
- 每台路由器具有一个转发表用于将目的地址(或者是地址的一部分)映射成为输出链路;
- 路由选择协议可以自动决定到达每个目的地的最短路径,并且使用这些最短路径来配置路由转发表;
四、电路交换
通过网络链路和交换机移动数据有两种基本方法:电路交换和分组交换。在电路交换网络中,在端系统间通信会话期间,预留了端系统间通信沿路径所需要的资源(缓存、链路传输速率)。
1.电路交换网络中的复用
- 频分复用(FDM)
链路的频谱由跨越链路创建的所有连接所共享;
- 时分复用(TDM)
对于一条TDM链路,时间被划分为固定区间的帧,并且每帧又被划分为固定数量的时隙。当网络跨越一条链路创建一条连接时,网络在每个帧中为该连接指定一个时隙,这些时隙专门由该连接单独使用;
五、网络的网络
主要是为了解决端系统接入ISP后与其他ISP连接的问题。
1、网络结构1:数十万个接入ISP + 单一的全球承载ISP互联所有接入ISP。接入ISP是客户,全球承载ISP是供应商。
2、网络结构2:数十万个接入ISP+多个全球承载ISP
3、网络结构3:多层ISP,例如在中国,每个城市有接入ISP,它们与省级ISP连接,省级ISP又与国家级ISP连接,国家ISP最终与第一层ISP连接。这样的多层等级结构仅仅与今天的Internet粗略相似。
4、网络结构4:在网络结构3上增加存在点(PoP)、多宿、对等和因特网交换点(IXP)来构成与目前因特网更为相似的网络。
- PoP:供应商网络中的一台或多台路由器群组;
- 多宿:即可以与两个或更多提供商ISP连接。这样当它的供应商之一出现故障,仍然可以基础发送和接收分组;
- 对等:位于相同等级结构层次的邻近一对ISP的网络连到一起,使他们之间的流量直接连接而不是通过上游的中间ISP传输;
- IXP(网络交换点):是一个汇合点,多个ISP在这里共同对等。
5、网络结构5:在网络结构4的基础上增加了内容提供商网络。跨越全球,但独立于公共英特网,主要用于承载提供商自己服务器主机的流量。