Struts2学习记录(1)
2013-04-27 15:02
387 查看
因为某种原因,忽然从一个熟悉的城市来到新的城市,本以为找工作是件很容易的事情,但刚开始经过几家后忽然发现原来很熟的东西全部都不记得了,在遭受几经鄙视后痛定思痛,将最基本的东西重新梳理下并作以记录。
Struts2,由WebWork2发展而来,其优点:
Struts2不依赖与Servlet,属于无侵入式设计。
Struts2选择使用POJO类来封装请求的参数,或者直接使用Action的属性。
提供了拦截器,利用拦截器可进行AOP编程
提供了类型转换器,可以把特殊的请求参数转换成所需要的类型
Struts2web.xml配置
<display-name>Struts2</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
Struts2工作原理:
在服务器启动时StrutsPrepareAndExecuteFilter的init()方法会将读取类路径下的Struts.xml文件,然后将读取的内容以javaBean的形式存放在内存中
一个请求在Struts2框架中的处理大概分为以下几个步骤
1 .客户端初始化一个指向Servlet容器(例如Tomcat)的请求 ,即HttpServletRequest请求。
2 .这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin)
3. 接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action
4 .如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy
5 .ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类
6 .ActionProxy创建一个ActionInvocation的实例。
7 .ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。
8 .一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可 能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。在表示的过程中可以使用Struts2 框架中继承的标签。在这个过程中需要涉及到ActionMapper
在上述过程中所有的对象(Action,Results,Interceptors,等)都是通过ObjectFactory来创建的。
Struts2,由WebWork2发展而来,其优点:
Struts2不依赖与Servlet,属于无侵入式设计。
Struts2选择使用POJO类来封装请求的参数,或者直接使用Action的属性。
提供了拦截器,利用拦截器可进行AOP编程
提供了类型转换器,可以把特殊的请求参数转换成所需要的类型
Struts2web.xml配置
<display-name>Struts2</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
Struts2工作原理:
在服务器启动时StrutsPrepareAndExecuteFilter的init()方法会将读取类路径下的Struts.xml文件,然后将读取的内容以javaBean的形式存放在内存中
一个请求在Struts2框架中的处理大概分为以下几个步骤
1 .客户端初始化一个指向Servlet容器(例如Tomcat)的请求 ,即HttpServletRequest请求。
2 .这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin)
3. 接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action
4 .如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy
5 .ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类
6 .ActionProxy创建一个ActionInvocation的实例。
7 .ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。
8 .一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可 能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。在表示的过程中可以使用Struts2 框架中继承的标签。在这个过程中需要涉及到ActionMapper
在上述过程中所有的对象(Action,Results,Interceptors,等)都是通过ObjectFactory来创建的。
相关文章推荐
- struts2的dojo插件一些学习记录
- 【JavaEE企业应用实战学习记录】struts2登录
- Struts2 学习记录(3)
- Struts2学习记录
- Struts2学习记录2(ValueStack(值栈)和ognl)
- Struts2 学习记录-1--Struts2中的配置文件
- Struts2学习记录
- Struts2 学习记录(4)
- struts2 学习记录
- Struts2的输入校验流程(学习记录)
- 【ssh2学习记录】4、struts2验证框架内置校验器列表
- Struts2学习记录1
- struts2学习记录
- Struts2 学习记录(2)
- struts2 学习记录 之 国际化
- S02-45 struts2 最新漏洞 学习记录
- struts2学习记录
- struts2视频学习错误记录1-7讲
- Struts2学习记录-Value Stack(值栈)和OGNL表达式
- Struts2_struts2学习记录