Struts的工作原理(附图)

本文深入讲解了Struts框架的工作原理及流程,对比传统MVC架构,详细介绍了Struts中的核心组件如ActionServlet、ActionFormBean等的作用及交互过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Strtus工作原理
                                                                                                         Made By Zhangxu
                                                                                                               08.4.27
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
传统的MVC架构:
Jsp----->view(视图)
Servlet------>Cotroller(控制)
JavaBean------->Model(模型)
 
传统的流程图:
客户端的Request请求到达Servlet,然后获取用户输入,Set到Model中
由Model负责赋值,再有View层get数据 Response到Client(客户端)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
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配置信息然后将其加载到内存中!ActionServletstruts- config.xml文件中读取配置信息将form-beans,action-formward等配置对象实例化!
   
注:s-c:struts-config.xml
    AM:ActionMapping
2.    当ActionServlet接受一个来自客户端的请求时:
(1)      检索和用去请求向匹配ActionMapping实例,如果不存在则返回请求路径无效500错误信息。匹配则进入下一步创建ActionForm.
(2)      检查是否有ActionFrom实例存在,如果ActionFrom实例不存在,就创建一个ActionForm 对象,把用户提交的表单数据保存到ActionFrom中!
(3)      根据配置决定是否进行表单验证(validate),若需要验证就调用就调用ActionFormvalidate()方法。如果ActionFormvalidate()方法返回null或者返回一个不包含ActionMessageActionErrors的对象,说明验证成功,继续进行下一步,不成功返回错误信息!
(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"             //要传给ActionActionForm
       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>
 
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值