首先,作为struts框架的核心描述符,struts-config.xml可以说一切尽在掌握中了,它描述了MVC模型,定义了所有的视图层和 控制层的接口,与控制层和模型层的接口进行结合。struts的控制器主要是actionservlet,但对于业务逻辑的操作,主要由 action,actinmapping,actinforward协调来完成,(在这里简单说一下,action主要是调用业务逻辑 的,actinmapping,actinforward主要是负责指定不同业务逻辑的运行方向,actionservlet是将这三者集中控制的中区)
action类必须继承org.apache.struts.action.Action,action类的目标是处理一个请求,struts框架为每一个action类只创建一个实例,所以action类被运行在一个多线程的环境中。
actionservlet类的作用大概分以下几个:
1. 为来到的请求找到URL。
2.把URL映射到适当的actionmapping。
3.创建或找到封装相关的actionmapping实例。
4.找到actionform声明,找到相应的bean实例。
5.对应action实例,找到适当的execute方法。
6.接受execute方法返回的actionforward,转发相应到相应的目的地。
actionservlet是struts的核心,所有向struts发送的请求都将被该servlet拦截。actionservlet在 web.xml中配置,actionservlet是一个标准的servlet,该servlet用于拦截所有的HTTP请求。
而actionform用于封装用户的请求,因此actionform通常与表单页面相对应,每个表单域对应actionform的一个属性。 action是系统的业务控制器,它用于接受从actionservlet转发过来的请求,并调用模型层的方法处理请求,action负责管理与之关联的 actionform,action也需要配置实现类,还需要配置action的path属性,该属性用于被用户请求。
action从转发过来的actionform中解析请求参数,对应的actionform则由actionservlet在接受用户请求时负责实例化。下面说一下action在struts-config.xml中的属性说明,
path----actionservlet根据该属性来转发用户的请求。
name---这里的name是与action相关联的actionform,因此,该name属性必须是前面存在的actionform名。
type---该属性用于指定action的实现类,也就是用于处理用户请求的业务控制器。
最后说一下forward吧,它的作用是定义转发逻辑名和表现层资源的关联,forward又分为局部forward和全局forward两种,前者是在action里面配置,仅对该action有效;后者单独配置,对所有的action有效。
forward在struts-config.xml中的属性:
name---表是该forward的逻辑值
path---该forward映射到的JSP资源文件
redirect---是否应用重定向