• 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:ActionMapping

    2. 当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条)

    评论为空
    聪明如你,不妨在这 发表你的看法与心得 ~



    登录之后可以发表学习元评论
      
暂无内容~~
顶部