-
Struts的工作原理(附图)
普通类 -
- 支持
- 批判
- 提问
- 解释
- 补充
- 删除
-
-
Struts架构
Jsp+Struts标签库 ------View
ActionBean
-------Model
ActionFormBean
ActionServlet
--------- Cotroller
ActionMapping
Struts的流程图:Controller作为接受所有来自客户端请求的入口点,由ActionServlet来决定需要哪个动作来执行相应的操作,同时通知ActionFormBean来封装用户的表单输入,同时提交给ActionBean来执行相应的业务逻辑,通过ActionMapping来决定需要反馈给Client什么!
1. 首先在Tomcat启动的时候 ,自动检查web应用程序内是否有web.xml的配置文件,若没有找到的话就去找Tomcat下的web.xml配置文件,读取struts-config.xml配置信息然后将其加载到内存中!ActionServlet从struts- config.xml文件中读取配置信息将form-beans,action-formward等配置对象实例化!注:s-c:struts-config.xml
AM:ActionMapping2. 当ActionServlet接受一个来自客户端的请求时:
(1) 检索和用去请求向匹配ActionMapping实例,如果不存在则返回请求路径无效500错误信息。匹配则进入下一步创建ActionForm.
(2) 检查是否有ActionFrom实例存在,如果ActionFrom实例不存在,就创建一个ActionForm 对象,把用户提交的表单数据保存到ActionFrom中!
(3) 根据配置决定是否进行表单验证(validate),若需要验证就调用就调用ActionForm的validate()方法。如果ActionForm的validate()方法返回null或者返回一个不包含ActionMessage的ActionErrors的对象,说明验证成功,继续进行下一步,不成功返回错误信息!
(4) ActionServlet根据ActionMapping实例所包含的映射信息决定将请求转发给哪个Action,若没有知道相应的Action实例存在,则首先创建这个Action实例,然后调用Action的execute()方法!
(5) Action的execute()方法返回一个ActionForward对象。ActionServlet把转发给ActionForward对象指向的jsp组件。
(6) ActionForward对象指向的jsp组件生成的动态网页 返回给客户端
Struts-config.xml内action-mappings解释:
<action-mappings>
<action
name="aFBug" //要传给Action的ActionForm
path="/aBug" //访问Action的路径
input=”/error.jsp” //失败后要跳转的页面
scope="request" //这个Action的有效范围
parameter="act"
type="net.pcedu.bugsys.bug.web.ABug"
validate="false" //是否验证
>
<forward name="list" path="/ListBug.jsp"/> //要转向的页面</action>
</action-mappings> -
-
- 标签:
- struts
- 附图
- 工作
- 原理
-
加入的知识群:
学习元评论 (0条)
聪明如你,不妨在这 发表你的看法与心得 ~