0、程序的目录结构
1、使用到的知识
- XML的解析(Dom4j)
- Servlet技术
- Java内省(BeanUtils)(参数拦截器)
- ThreadLocal线程本地化类
- 递归调用
2、需要的Jar文件
3、框架整体的设计思路
4、struts.xml配置文件的结构
<?xml version="1.0" encoding="UTF-8"?>
<struts>
<!--拦截器的信息 -->
<interceptor class="com.mystruts2.interceptor.ParamInterceptor" />
<!--配置一些常量信息 -->
<constant name="struts.action.extension" value="action" />
<!-- Action的配置 -->
<action name="helloAction" method="execute"
class="com.mystruts2.action.HelloAction">
<result name="success">/index.jsp</result>
</action>
</struts>
5、创建解析struts.xml的ConfigurationManager
在该类中,需要提供三个方法分别获得struts.xml的配置信息。
- 获得Constant配置
- 获得Interceptor的配置信息
- 获得Action配置信息
6、实现struts2里面的数据中心ActionContext
数据中心ActionContext,应该有下面的数据域
- 值栈
- Request
- Response
- Session
- ServletContext
- Param
7、ActionInvocation的创建
ActionInvocation负责完成拦截器链的调用以及Action的方法的调用,以及数据中心的初始化。具体如下,
- 准备数据中心ActionContext
- 准备拦截器链Interceptor
- 准备Action实例
- invoke()方法
8、StrutsPrepareAndExcuteFilter的创建
拦截浏览器的请求,根据浏览器的请求和struts.xml的配置,找到相应的Action。执行Action的方法,完成页面的跳转。
9、代码下载