struts2概述

1.HTTP协议
HTTP(Hypertext Transfer Protocol,超文本传输协议)主要用来定义一个客户端/服务器端通信的规范,它定义了数据以何种形式在网络中进行传递、接收
HTTP协议有以下几个特点:
1)它是一个无状态的协议,服务器端在处理相应请求后不会保留任何客户端的信息。
2)客户端与服务器端的每一次数据交互,都要经过一次请求/响应的过程。
3)服务器端无法识别能够触发客户端请求的方法。

2.Servlet
Servlet是基于Java编程语言的服务器端编程技术,通过使用Servlet技术我们可以在服务器端获得客户的请求信息,并动态生成响应信息返回给客户端。

3.Web容器(Servlet/Jsp容器)
Servlet本身是不会主动去处理各种请求的,必须通过Web容器来管理Servlet,并为其提供所需的运行环境。Web容器的功能包括:
1)建立起Servlet与Web服务器的连接并提供两者之间的通信支持。
2)管理Servlet的生命周期。
3)提供JSP的支持。
Web容器负责将一个到来的请求映射到该容器中已经注册的Servlet,并调用Servlet的方法处理请求信息。处理完毕后,容器负责将Servlet处理生成的响应对象转换为一个HTTP响应返回给客户端。

4.Struts2框架中的MVC(Model/View/Controller)
1)控制器:Struts2框架中作为控制器的是FilterDispatcher,它是一个Servlet过滤器。
2)模型:Action在Struts2框架中是作为模型而存在的,它主要有两个功能:首先Action可以用来调用业务逻辑处理请求,其次Action可以进行数据的传递。
3)视图:Struts2框架中视图有多种形式,包括JSP、velocity、FreeMarker、Tiles等。

5.Struts2的工作流程
Struts2官方给出的工作流程图:

整个工作流程分为如下几步:
1)客户端初始化一个指向Web容器的请求。
2)请求经过一系列过滤器(Filter)的过滤并传递给FilterDispatcher。
3)FilterDispatcher接收到请求信息后,会根据URL在ActionMapper中搜索指定Action的映射信息。
4)如果找到符合的映射信息,ActionProxy通过Configuration Manager在struts.xml配置文件中搜索被请求Action的类。
5)ActionProxy创建一个被请求Action的实例,该实例将用来处理请求信息。
6)如果在struts.xml文件中存在与被请求Action相关的拦截器配置,那么该Action的实例被调用前后,这些拦截器也会先被执行。
7)Action对请求处理完毕以后返回一个逻辑视图,由此逻辑视图寻找对应的物理视图返回给客户端。

posted @ 2010-07-18 15:27  MikeLin  阅读(941)  评论(0编辑  收藏  举报