文档介绍:1. 架构原理 . Struts2 工作原理 Struts2 请求响应流程: 在struts2 的应用中,从用户请求到服务器返回相应响应给用户端的过程中,包含了许多组件如: Controller 、ActionProxy 、ActionMapping 、Configuration Manager 、ActionInvocation 、Inerceptor 、Action 、Result 等。下面我们来具体看看这些组件有什么联系,它们之间是怎样在一起工作的。(1)客户端( Client )向 Action 发用一个请求( Request ) (2)Container 通过 映射请求,并获得控制器(Controller )的名字(3)容器( Container )调用控制器( StrutsPrepareAndExecuteFilter 或 FilterDispatcher )。在 以前调用 FilterDispatcher ,Struts2. 1 以后调用 StrutsPrepareAndExecuteFilter (4)控制器( Controller )通过 ActionMapper 获得 Action 的信息(5)控制器( Controller )调用 ActionProxy (6)ActionProxy 读取 文件获取 action 和interceptor stac k 的信息。(7)ActionProxy 把request 请求传递给 ActionInvocation (8)ActionInvocation 依次调用 action 和interceptor (9)根据 action 的配置信息,产生 result (10)Result 信息返回给 ActionInvocation (11)产生一个 HttpServletResponse 响应(12)产生的响应行为发送给客服端。 . Spring 工作原理内部最核心的就是 IOC 了, 动态注入,让一个对象的创建不用 new 了,可以自动的生产,这其实就是利用 java 里的反射。反射其实就是在运行时动态的去创建、调用对象,Spring 就是在运行时,跟xml Spring 的配置文件来动态的创建对象,和调用对象里的方法的。 Spring 还有一个核心就是 AOP 这个就是面向切面编程,可以为某一类对象进行监督和控制(也就是在调用这类对象的具体方法的前后去调用你指定的模块) 从而达到对一个模块扩充的功能。这些都是通过配置类达到的。Spring 目的: 就是让对象与对象(模块与模块)之间的关系没有通过代码来关联,都是通过配置类说明管理的( Spring 根据这些配置内部通过反射去动态的组装对象) 要记住:Spring 是一个容器,凡是在容器里的对象才会有 Spring 所提供的这些服务和功能。 Spring 里用的最经典的一个设计模式就是:模板方法模式。(这里我都不介绍了, 是一个很常用的设计模式) Spring 里的配置是很多的,很难都记住,但是 Spring 里的精华也无非就是以上的两点,把以上两点跟理解了也就基本上掌握了 Spring. . SpringMVC 工作原理上面的是 springMVC 的工作原理图: 1、客户端发出一个 http 请求给 web 服务器,web 服务器对 http 请求进行解析, 如果匹配 DispatcherServlet 的请求映射路径( 中指定),web 容器将请求转交给 DispatcherServlet. 2、DipatcherServlet 接收到这个请求之后将根据请求的信息(包括 URL 、Htt p 方法、请求报文头和请求参数 Cookie 等)以及 HandlerMapping 的配置找到处理请求的处理器( Handler )。 3-4 、DispatcherServlet 根据 HandlerMapping 找到对应的 Handler, 将处理权交给Handler (Handler 将具体的处理进行封装),再由具体的 HandlerAdapte r 对Handler 进行具体的调用。 5、Handler 对数据处理完成以后将返回一个 ModelAndView() 对象给 DispatcherServlet 。 6、Handler 返回的 ModelAndView() 只是一个逻辑视图并不是一个正式的视图, DispatcherSevlet 通过 ViewResolver 将逻辑视图转化为真正的视图 View 。 7、Dispatcher 通过 model 解析出 ModelAndView() 中的参数进行解析最终展现出完整的 v