1、请求--*.do(找到ActionServlet)->web.xml(找到就执行第2步,否则直接报错)
2、ActionServlet会去读取struts-config.xml文件,并且会根据*.do中的*去匹配对应的 ActionForm(也就是javaBean主要用于接受请求中的信息(找到就执行第3步,否则直 接报错)
3、ActionForm会调用他的validate方法,如果返回null则执行Action否则返回inout
4、Action会调用他的execute方法,
5、最后转向forward
1、他是所有form(javaBean)的父类;
2、他可以随意的被联系到一个或者多个ActionMappings(他可以根据key找到真实类的存在)
3、他的所有properties会被初始化,在调用Action.execute()方法之前
4、在调用Action.execute()方法之前,他的validate方法会被先调用,用于判断参数的是正确的和有效的
总结:
首先一个ActionForm就是一个javaBean,当服务器(tomcat开始工作<一旦有请求时>)服务器就会加载struts-config.xml中的<form-bean> (此处需要注意,服务器不会去加载struts-config.xml中其他的东西向Action都不会)并且开始初始化对应的<form-bean>,具体的初始化过程如下:
ActionServlet就会找到<action>中的input属性,并且获取此属性指向的文件响应给用户,如果ActionForm的validate返回的是null那么ActionServlet就会type属性,并且开始执行此属性指向的Action,并且执行Action的execute方法,此时才开始了真正对用户请求参数的处理对参数处理玩之后,此方法产生一个ActionMapping对象,同过此对象会向ActionServlet返回一个ActionForward对象,然后ActionServlet会再次读取struts-config.xml中的信息,此时读取的是<action-mappings>下面<action>中的<forward>,ActionServlte会根据ActionForward对象中的path属性去匹配<forward>中的name属性,然后获<forward>中path指向的文件,返回给用户。
很明显在strut1中最主要的就是以下6个类:
ActionServlet:处理客户请求的servlet,完成全部流程的的控制;
ActionFrom:是一个简单的javaBean,接受客户请求的参数并且执行简单的验证;
Action:对客户请求参数的具体操作,由ActionServlet指定;
ActionMapping:是一个映射类,通过他的findForward方法可以找到struts-config中的路径跳转<forward>
ActionForward: 是一个真实执行跳转的类,通过ActionMapping法findForward方法进行实例化。
ActionErrors、ActionMessages、ActionMessage:保存所有的错误信息,可以通过<html:errors>标签进行输出。
strut配置信息说明:
基本配置
web.xml:他是服务器启动时就要加载的文件,在struts中主要的配置就是对用户请求的servlet进行配置如下:
<servlte>
<servlet-name></servlet-name>
<servlet-class></servlet-class>
</servlte>
<servlet-mapping>
<servlet-name></servlet-name>
<url-pattern>*.do</url-pattern>:此处注意一般是servlet此处配置时使用的是"/xx"这里用*.do表示接受所以的servlet请求。
</servlet-mapping>
核心配置
struts-config.xml
<struts-config>
<form-beans>
<form-bean name="" type=""/>
</form-beans>
<action-mappings>
<action attribute=""----用于和对应的form-bean配套
path=""---------此Action的对应路径
type=""---------此Action的真实包名和类名
name=""---------用于和对应的form-bean配套
parameter="methode"
scope="request"---说明Action的作用范围(request和session)
validate="false">
<forward name="success" path="" />--指出Action的跳转路径
<forward name="failure" path="" />
</action>
</action-mappings>
<message-resources parameter="" />----输出内容的保存位置
</struts-config>