本文第1部分是从书上抄来的,第2部分是自己总结书上的。


1.导入相关jar包。
  将Struts2的lib文件夹下的commons-fileupload.jar,commons-io.jar,freemarker.jar,javassist.jar,ognl.jar,struts-core.jar,xwork-core.jar
复制到Web应用的WEB-INF/lib路径下。如果需要在Web应用中使用Struts2的更多特性,则需要将相应的JAR文件复制到Web应用的WEB-INF/lib路径下。


2.在web.xml文件中定义核心Filter来拦截用户请求。



   由于Web应用是基于请求/响应架构的应用,所以不管哪个MVC Web框架,都需要在web.xml中配置核心Filter或Servlet,这样才可以让该框架介入Web应用中。



    定义Struts2的核心Filter

<filter>
  
   <filter-name>struts2</filter-name>
  
   <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  
  </filter>
  
 让Struts2的核心Filter拦截所有请求
  
  <filter-mapping>
  
   <filter-name>struts2</filter-name>
  
   <url-pattern>/*</url-pattern>
  
  </filter-mapping>


3.如果需要以POST方式提交请求,则定义包含表单数据的JSP页面。如果仅仅只是以GET方式发送请求,
则无须经过这一步。



 



4.定义处理用户请求的Action类。
  这一步也是所有MVC框架中必不可少的,因为这个Action就是MVC中的C,也就是控制器。该控制器负责调用Model里的方法来处理请求。



 



  在MVC框架中,控制器实际上由2个部分共同组成,即拦截所有用户请求,处理请求的通用代码都由核心控制器完成,而实际的业务控制(诸如调用Model,返回处理结果等)则由Action处理。



 



5.配置Action。



  对于Java领域的绝大部分MVC框架而言,都非常喜欢使用XML来配置管理。配置Action就是指定哪个请求对应用哪个Action进行处理,从而让核心控制器根据配置来创建合适的Action实例,并调用该Action的业务控制方法。




6.配置处理结果和物理视图资源之间的对应关系。



  当Action处理用户请求结束后,通常会返回一个处理结果(通常使用简单的字符串就可以了),我们可以认为该名称是逻辑视图名,这个逻辑视图名和指定物理视图资源关联才有价值。所以,我们还需要配置处理结果之间的对应关系。



 



7.编写视图资源。



   如果Action需要把一些数据传给视图资源,则可以借助OGNL表达式。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  上面介绍的Struts2应用的开发流程实际上是按照请求-响应的流程来开发的。



  1.用户通过浏览器发送请求。



  2.核心控制器StrutsPrepareAndExecuteFilter拦截用户请求,调用Action的execute方法(也可以是用户定义的其它方法)响应用户请求。



  3.XxxAction的execute方法调用业务方法。



  4.业务方法返回结果。



  5.XxxAction的execute方法返回逻辑视图名。



  6.forward(跳转)到物理视图,然后生成响应内容,比如JSP页面。



  7.输出响应内容到浏览器,响应用户的请求。