MVC:Model组件(用于数据处理)、View视图(响应并生成结果)、Controller控制器-Action(处理用户请求)
1.在web.xml文件中定义核心Filter来拦截用户请求
web应用是基于请求/响应架构的应用,所以不管哪个MVC Web框架,都需要在web.xml中配置该框架的核心Servelt或Filter,这样才可以让该框架介入Web应用中。
2.如果需要以POST方式提交请求,则定义包含表单数据的JSP页面。如果仅仅只是以GET方式发送请求,则无须经过这一步。
3.定义处理用户请求的Action类。
这一步是所有MVC框架中必不可少的,因为这个Action就是MVC中的C,也就是控制器,该控制器负责调用Model里的方法来处理请求。
MVC框架的底层机制是:核心Servlet或Filter接收到用户请求后,通常会对用户请求进行简单预处理,例如解析、封装参数等,然后通过反射来创建Action实例,并调用Action的指定方法(Struts
²
²
在MVC框架中,控制器实际上由2个部分共同组成,即拦截所有用户请求,处理请求的通用代码都由核心控制器完成,而实际的业务控制(诸如调用Model,返回处理结果等)则由Action处理。
4.配置Action。对于Java领域的绝大部分MVC框架而言,都非常喜欢使用XML文件来配置管理。配置Action就是指定哪个请求对应用哪个Action进行处理,从而让核心控制器根据该配置来创建合适的Action实例,并调用该Action的业务控制方法。例如,通常需要采用如下代码片段来配置:
<action
...
</action>
5.配置处理结果和物理视图资源之间对应关系。
当Action处理用户请求结束后,通常会返回一个处理结果(通常使用简单的字符串就可以了),可以认为该名称是逻辑视图名,这个逻辑视图名需要和指定物理视图资源关联才有价值。所以还需要配置处理结果之间的对应关系。
例如,通过如下代码片段来配置处理结果和物理视图的映射关系。
<action
<!--
<result
<result
<result
</action>
上面粗体字代码指定了3个处理结果和3个物理视图之间的映射关系,配置片段指定当lee.LoginAction返回input时,实际将进入/login.jsp页面;当返回error时,实际将进入/error.jsp页面;当返回success时,实际将进入/welcome.jsp页面。
6.编写视图资源。
如果Action需要把一些数据传给视图资源,则可以借助于OGNL表达式。
经过上面6个步骤,就可以基本完成一个Struts
![Struts 2的请求——响应完整流程图 - 无名 - 爪哇咖啡馆](http://img246.ph.126.net/5FheD-HS0rE6GTpZsl5z5w==/1457758904385959660.jpg)
Struts2除了可使用struts.xml文件来管理配置之外,还可使用struts.properties文件来管理常量,该文件定义了Struts2框架的大量常量,开发者可以通过改变这些常量来满足应用的需求。struts.properties文件是一个标准的Properties文件,该文件包含了系列的<key-value>对,每个key就是一个Struts2常量,该key对应的value就是一个Struts2常量值。
只要将struts.properties文件放在Web应用的类加载路径下,Struts2框架就可以加载该文件。通常我们将该文件放在Web应用的WEB-INF/classes路径下。
Struts2默认会加载类加载路径下的struts.xml、struts-default.xml、struts-plugin.xml三类文件,其中struts.xml是开发者定义的默认配置文件,
Struts
通过struts.properties文件。
通过struts.xml配置文件
通过Web应用的web.xml文件。
Struts