Struts的工作流程
- 格式:docx
- 大小:164.62 KB
- 文档页数:7
Struts MVC框架的基本结构Struts的工作流程在采用Struts的Web应用程序中,当Web应用程序启动的时候,就会初始化ActionServlet,在初始化ActionServlet时会加载struts-config.xml这个配置文件,加载成功后,会把这些URL 和控制器的映射关系存放在ActionMapping对象或其它对象中。
当ActionServlet接受到用户请求,就会按照下面的流程对用户请求进行处理。
(1)ActionServlet接受到用户请求以后,会根据URL寻找匹配的ActionMapping对象。
如果不存在匹配的示例,说明用户请求的URL路径信息有误,所以返回“请求路径无效”的信息,当找到匹配的ActionMapping对象的时候,就会进入下一步操作。
(2)当ActionServlet找到匹配的ActionMapping对象的时候,会根据ActionMapping 中的映射信息判断对应的ActionForm对象是否存在,如果不存在就创建一个新的ActionForm对象,并且把用户提交的表单内容保存到这个新的ActionForm对象中。
(3)在Struts-config.xml这个配置文件中,同样可以配置表单是否需要验证,如果表单需要验证,就调用ActionForm中的validate()方法对用户输入的表单信息进行验证。
(4)如果ActionForm的validate()方法返回了ActionErrors对象,说明表单验证没有通过,这时候ActionServlet把页面返回到用户输入页面,提示用户重新输入,如果validate()方法返回null,就说明表单验证已经通过,可以进入下一步处理过程。
(5)ActionServlet可以根据ActionMappping对象中查找把用户请求转发给哪个控制器Action,如果对象的Action对象不存在,就创建这个对象,并调用这个Action的execute()方法。
(6)控制器Action的execute()方法会返回一个ActionForward对象,ActionServlet 把控制器处理的结果转发到ActionForward对象指定的JSP页面。
(7)ActionForward对象指定的JSP页面根据返回的处理结果,用合适的形式把服务器处理的结果展示给用户。
Struts的工作流程Web.xml配置文件<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "/dtd/web-app_2_3.dtd"><web-app><filter><filter-name>Set Character Encoding</filter-name><filter-class>com.forms.platform.filter.SetCharacterEncodingFilter </filter-class><init-param><param-name>encoding</param-name><param-value>GBK</param-value></init-param></filter><filter-mapping><filter-name>ResponseOverrideFilter</filter-name><url-pattern>*.jsp</url-pattern></filter-mapping><servlet><servlet-name>action</servlet-name><servlet-class>mon.servlet.impl.SysServlet</servlet-class><init-param><param-name>config</param-name><param-value>/WEB-INF/struts-config.xml,/WEB-INF/model/mgacct/personal/struts-config-ljs.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><servlet-name>GetDaysServlet</servlet-name><servlet-class>com.forms.mgacct.profitanalyse.pdrealtimemea.servlet.GetDaysServl et</servlet-class></servlet><servlet-mapping><servlet-name>GetDaysServlet</servlet-name><url-pattern>/servlet/GetDaysServlet</url-pattern> </servlet-mapping><servlet-mapping><servlet-name>action</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping><session-config><session-timeout>60</session-timeout></session-config><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><error-page><error-code>505</error-code><location>/commons/errorpage/505.jsp</location></error-page><taglib><taglib-uri>/taglibs/tags-forms</taglib-uri><taglib-location>/WEB-INF/forms.tld</taglib-location> </taglib><resource-ref><description>ORACLE DATABASE Connection</description><res-ref-name>jdbc/cmpe</res-ref-name><res-type>javax.sql.DataSource</res-type><res-auth>Container</res-auth></resource-ref></web-app>Struts-config.xml配置文件:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN""/struts/dtds/struts-config_1_1.dtd"><struts-config><data-sources /><form-beans><form-bean name="authMaintForm"type="mon.auth.form.AuthMaintForm"> </form-bean></form-beans><global-exceptions /><global-forwards><forward name="success" path="/commons/returnpage/success.jsp"contextRelative="true" /></global-forwards><action-mappings><actionAttribute=”authMaintForm”Input=”/helloworld.jsp”Name=” authMaintForm”Path=”/helloworld”Scope=”request”Type=” mon.auth.action.AuthMaintAction”Parameter=” list”<forward name=”succ” path=” /helloworld.jsp”/></action></action-mappings><message-resourcesparameter="mon.ApplicationResources" /></struts-config>Struts的几个核心类1.ActionServletStruts中的控制器是由org.apache.struts.action.ActionServlet类实现的,它是javax.servlet.http.HttpServlet的子类。