读书人

struts散发请求的过程与相关配置

发布时间: 2012-11-23 22:54:33 作者: rapoo

struts分发请求的过程与相关配置

struts散发请求的过程与相关配置

/02_struts分发请求的过程与相关配置
按照mvc模式设计出的web层框架,其实就是一个大大的servlet,
我们可以在web.xml文件中将符合某种特征所有请求交给这个Servlet处理,
这个servlet再参照一个配置文件(struts-config.xml)将各个请求分配给不同的action去处理
根据struts提供的例子http://localhost:8080/struts-mailreader-1.3.10/Logon.do

<form id="LogonForm" method="post" action="/struts-mailreader-1.3.10/SubmitLogon.do;jsessionid=FAD709E61ABC01E37FBF31FDF3D6CAAA" onsubmit="return validateLogonForm(this);">

查看源代码后知道提交后交给/SubmitLogon.do。
在web.xml文件中查找/SubmitLogon.do没有找到,有通配符*.do

<!-- Action Servlet Configuration -->    <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>         <load-on-startup>1</load-on-startup>    </servlet>    <!-- Action Servlet Mapping -->    <servlet-mapping>        <servlet-name>action</servlet-name>        <url-pattern>*.do</url-pattern>    </servlet-mapping>

action对应一个叫ActionServlet的类;
查询struts-config.xml中/SubmitLogon;不能加.do。后缀名可以改变

 <!-- Process a user logon -->        <action                path="/SubmitLogon"                type="org.apache.struts.apps.mailreader.actions.LogonAction"                name="LogonForm"                scope="request"                cancellable="true"                validate="true"                input="Logon">            <exception                    key="expired.password"                    type="org.apache.struts.apps.mailreader.dao.ExpiredPasswordException"                    path="/ChangePassword.do"/>            <forward                    name="Success"                    path="/MainMenu.do"/>        </action>

而注册页面的转到/SaveRegistration.do却找不到,有*号通配符防止膨胀
<action path="//BaseAction"
input="Input"
type="org.apache.struts.apps.mailreader.actions.{1}Action"
name="{1}Form"
scope="request">
<forward
name="Success"
path="/{1}.jsp"/>
<forward
name="Input"
path="/{1}.jsp"/>
</action>

<action
path="/Save*"
extends="//BaseAction"
parameter="Save"
cancellable="true"
validate="true"> //是否需要校验
<forward
name="Success"
path="/MainMenu.do"/>
</action>

03_struts封装请求参数的过程与相关配置
将参数封装成formbean对象(就是一个java类),这个类的每一个属性对应一个请求参数。Formbean有一个validata的方法

struts散发请求的过程与相关配置

读书人网 >Web前端

热点推荐