zoukankan      html  css  js  c++  java
  • struts执行过程

            通过jsp中的form表单中的action属性,在WEB-INF文件夹下的web.xml文件中找到对应的<servlet-mapping>中找到对应的<servlet-name>,再在<servlet>中通过该<servlet-name>找到<servlet-class>,确认为ActionServlet,即,struts框架,然后在WEB-INF文件夹下的struts-config.xml文件的<action-mappings>中的<action>中通过jsp中的form表单中的action(对应<action>中的path)属性找到对应的name和type,即ActionForm和Action,先通过生成实例执行ActionForm中的validate()方法,出错则调到<action>中的input属性页面,没有出错则通过生成实例执行Action中的execute()方法,再该方法中转向响应的jsp页面完成最终的客户内容显示。

      所以总体上,提交表单后,先到项目文件夹下的WEB-INF文件夹下的web.xml文件中确认为Struts框架,即表单接收方为org.apache.struts.action.ActionServlet,再到项目文件夹下的WEB-INF文件夹下的struts-config.xml文件中找到对应的ActionForm和Action开始执行。

        web.xml文件:

    <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
    <param-name>config</param-name>
    <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
    <param-name>debug</param-name>
    <param-value>3</param-value>
    </init-param>
    <init-param>
    <param-name>detail</param-name>
    <param-value>3</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup>
    </servlet>
    <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
    </servlet-mapping>

        struts-config.xml文件:

    <struts-config>
    <form-beans>
    <form-bean name="helloForm"
    type="org.lxh.struts.form.HelloForm" />
    </form-beans>

    <global-exceptions />
    <global-forwards />
    <action-mappings>
    <action attribute="helloForm" input="/hello.jsp"
    name="helloForm" path="/hello" scope="request"
    type="org.lxh.struts.action.HelloAction">
    <forward name="show" path="/hello.jsp"></forward>
    </action>
    </action-mappings>

    <message-resources parameter="org.lxh.struts.ApplicationResources" />
    </struts-config> 

  • 相关阅读:
    跨域(cross-domain)访问 cookie (读取和设置)
    实用的PHP正则表达式
    Leetcode:find_minimum_in_rotated_sorted_array
    spring Jdbc自己主动获取主键。
    《学习opencv》笔记——矩阵和图像操作——cvSetIdentity,cvSolve,cvSplit,cvSub,cvSubS and cvSubRS
    HTML5 input placeholder 颜色 改动
    Java面试宝典2014版
    Go语言 关于go error处理风格的一些讨论和个人观点(上)
    动静结合学内核:linux idle进程和init进程浅析
    【Bootstrap3.0建站笔记二】button可下拉弹出层
  • 原文地址:https://www.cnblogs.com/huhewei/p/13026852.html
Copyright © 2011-2022 走看看