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> 

  • 相关阅读:
    大数据经典学习路线(及供参考)
    Redis配置规范
    mysql中datetime和timestamp类型的区别
    bigint(10)和bigint(20)的区别
    Redis分布式锁,基于StringRedisTemplate和基于Lettuce实现setNx
    Spring security UserDetailsService autowired注入失败错误
    Java Print 打印
    Spring boot Junit Test单元测试
    RESTful作用与特性
    JS匿名函数理解
  • 原文地址:https://www.cnblogs.com/huhewei/p/13026852.html
Copyright © 2011-2022 走看看