Java 知识点总结框架篇
一、Struts1 的运行原理
在启动时通过前端总控制器 AconServlet 加载 struts-cong.xml 并进行解析,当用户在 jsp
页面发送请求被 struts1 的核心控制器 AconServlet 接收,AconServlet 在用户请求时将请
求参数放到 S 对应的 AconForm 对象中的成员变量中,然后 AconServlet 则会根据 struts-
cong.xml 中的映射关系找到相应的 Acon 中的方法,将对应的 AconForm 一并传给这个
Acon 中的方法里,然后执行相应的业务逻辑操作,最后就根据 AconMapping 的
ndforward 方法返回一个 AconForward,之后在 struts-cong.xml 中找到与之对应的
forward 标签,根据它的配置路径找到对应的 jsp 页面。
二、Struts2 的运行原理
1、tomcat 启动的时候会加载 web.xml 、核心控制器 FilterDispatcher 会加载并解析
struts.xml
2、客户端会发送一个请求到 acon 、FilterDispatcher 会根据后缀名进行拦截
3、FilterDispatcher 根据 struts.xml 的配置文件信息 找到 某个 acon 对应的某个类里的指
定方法
4、执行相关的业务逻辑最后返回 一个 String
5、 里配置 name 的属性值与返回的 String 进行匹配,跳转到指定的 jsp 页面。
三、struts2 的体系结构
1、客户端向 Servlet 容器(例如 Tomcat)发送一个请求;
2、这个请求经过一系列的过滤器(Filter);
3、接着 FilterDispatcher 被调用,FilterDispatcher 询问 AconMapper 来决定这个请求是否
需要调用某个 Acon;
4、如果 AconMapper 决定需要调用某个 Acon,FilterDispatcher 把请求的处理交给
AconProxy;
5、AconProxy 通过 Conguraon Manager 询问框架的配置文件,找到需要调用的 Acon
类;
6、AconProxy 创建一个 AconInvocaon 的实例。
7、AconInvocaon 在调用 Acon 的过程前后,涉及到相关拦截器(Intercepter)的调用。
8、一旦 Acon 执行完毕,AconInvocaon 负责根据 struts.xml 中的配置找到对应的返回结
果。返回结果通常是 jsp 或者 FreeMarker 的模版。(体系结构图见下一页)