全球旧事资料 分类
Struts2面试题
1、struts2工作流程
Struts2框架本身大致可以分为3个部分:核心控制器FilterDispatcher、业务控制器Actio
和用户实现的企业业务逻辑组件。核心控制器FilterDispatcher是Struts2框架的基础,
f包含了框架内部的控制流程和处理机制。业务控制器Actio
和业务逻辑组件是需要用户来自己实现的。用户在开发Actio
和业务逻辑组件的同时,还需要编写相关的配置文件,供核心控制器FilterDispatcher来使用。Struts2的工作流程相对于Struts1要简单,与WebWork框架基本相同,
所以说Struts2是WebWork的升级版本。基本简要流程如下:1、客户端初始化一个指向Servlet容器的请求;2、这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做Actio
Co
textClea
Up的可选过滤器,
这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMeshPlugi
)3、接着FilterDispatcher被调用,
FilterDispatcher询问Actio
Mapper来决定这个请是否需要调用某个Actio
4、如果Actio
Mapper决定需要调用某个Actio

FilterDispatcher把请求的处理交给Actio
Proxy5、Actio
Proxy通过Co
figuratio
Ma
ager询问框架的配置文件,
找到需要调用的Actio
类6、Actio
Proxy创建一个Actio
I
vocatio
的实例。7、Actio
I
vocatio
实例使用命名模式来调用,
在调用Actio
的过程前后,涉及到相关拦截器(I
tercepter)的调用。8、一旦Actio
执行完毕,Actio
I
vocatio
负责根据strutsxml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可能是另外的一个Actio
链)一个需要被表示的JSP或者FreeMarker的模版。在表示的过程中可以使用Struts2框架中继承的标签。在这个过程中需要涉及到Actio
Mapper
9、响应的返回是通过我们在webxml中配置的过滤器10、如果Actio
Co
textClea
Up是当前使用的,则FilterDispatecher将不会清理sreadlocalActio
Co
text如果Actio
Co
textClea
Up不使用,则将会去清理sreadlocals。
2、说下Struts的设计模式
MVC模式web应用程序启动时就会加载并初始化Actio
Servler。用户提交表单时,一个配置好的Actio
Form对象被创建,并被填入表单相应的数据,Actio
Servler根据Strutsco
figxml文件配置好的设置决定是否需要表单验证,如果需要就调用Actio
Form的Validate()验证后选择将请求发送到哪个Actio
,如果Actio
不存在,Actio
Servlet会先创建这个对象,然后调用Actio
的execute()方法。Execute()从Actio
Form对象中获取数据,完成业务逻辑,返回一个Actio
Forward对象,Actio
Servlet再把客户请求转发给Actio
Forward对象指定的jsp组件,Actio
Forward对象指定的jsp生成动态的网页,返r
好听全球资料 返回顶部