Struts2框架(一)

Struts2框架

一、什么是框架,框架有什么用?

1、框架 是 实现部分功能的代码 (半成品),使用框架简化企业级软件开发 ,提高开发效率。

2、学习框架 ,清楚的知道框架能做什么? 还有哪些工作需要自己编码实现

二、什么是struts2框架,它有什么用?

1、Struts 2是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。

2、其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心

3、struts2=struts1+webwork;

4、struts2框架是apache产品。

5、struts2是一个标准的mvc框架

6、javaweb中的model2模式就是一个mvc模式。 model2=servlet+jsp+javaBean

7、struts2框架只能在javaweb开发中使用的

8、使用struts2框架,可以简化我们的web开发,并且降低程序的耦合度

 

三、XWork—它是webwork核心,提供了很多核心功能: 

1、前端拦截机(interceptor)

2、运行时表单属性验证

3、类型转换

4、强大的表达式语言(OGNL – the Object Graph Navigation Language)

5、IoC(Inversion of Control反转控制)容器等

 

四、一个请求在Struts2框架中的基本工作过程如下:

Struts2框架(一)

 

Struts2框架(一)

 

 

         操作(Actions)  拦截器(Interceptors)      值栈(Value Stack)/OGNL    结果(Result)/结果类型

 

而Struts2 与传统的MVC框架略有不同,因为它由Action扮演模型的角色,而不是控制器,虽然这样会有一些重叠。

 

1、客户端初始化一个指向Servlet容器(例如Tomcat)的请求

2、这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin);

3、接着StrutsPrepareAndExecuteFilter被调用,StrutsPrepareAndExecuteFilter询问ActionMapper来决定这个请求是否需要调用某个Action(一般web.xml加载过滤器);

4、如果ActionMapper决定需要调用某个Action,StrutsPrepareAndExecuteFilter把请求的处理交给ActionProxy;

5、ActionProxy通过ConfigurationManager询问框架的配置文件,找到需要调用的Action类(配置文件struts.xml)

6、ActionProxy创建一个ActionInvocation的实例。

7、ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。

8、一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。

 

Struts2下载

第一步:  在以下网址中下载最新的struts2版本。

http://struts.apache.org/download.cgi

 

第三步:单击“struts-2.3.37-all.zip”下载struts 2.3.37的完整版 。你也可以下载最新版的,但新版是不太稳定,所以我们不推荐使用。

第四步:进行下载文件的文件夹,进行解压

 

struts 2的目录结构如下图所示。

Struts2框架(一)

 

 

struts2的目录结构:

(1)apps: 该文件夹包含了基于struts2 的示例应用,这些示例应用对于学习者是非常有用的;例子程序war后缀表示web压缩文件

(2)docs : 该文件夹下包含了struts2 相关文档,包括struts2 快速入门、struts2的文档以及API文档等

(3)lib : 该文件夹下包含了Struts2框架和核心类库,以及struts2第三方插件类库

开发时没必要将lib目录下jar文件全部复制到项目中

(4)src : 该文件夹下包含了Struts2框架的全部源代码

A、core 它是struts2的源代码

B、xwork-core struts2底层使用了xwork,xwork的源代码