Struts2简介

本文转载之https://blog.csdn.net/u011958281/article/details/74685659

1. 什么是Struts2?

  1. Struts2 是一个非常优秀的MVC框架,基于Model2 设计模型 
    由传统Struts1和WebWork两个经典框架发展而来
  2. Strust2 核心功能 
    (1)允许POJO(Plain Old Java Objects)对象 作为Action 
    (2)Action的execute 方法不再与Servlet API耦合,更易测试 
    (3)支持更多视图技术(JSP、FreeMarker、Velocity) 
    (4)基于Spring AOP思想的拦截器机制,更易扩展 
    (5)更强大、更易用输入校验功能

2. 定位

SSH框架系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层(实体层)。

这里写图片描述 
Struts2作为表现层的框架设计存在,Hibernate处于数据持久层,Spring处于业务逻辑层,担任连接Struts和Hibernate桥梁的角色。系统的整个层次关系可以一目了然。

3. 技术优势

Struts2有两方面的技术优势,一是所有的Struts2应用程序都是基于client/server HTTP交换协议,The Java Servlet API揭示了java Servlet只是Java API的一个很小子集,这样我们可以在业务逻辑部分使用功能强大的Java语言进行程序设计。 
二是提供了对MVC的一个清晰的实现,这一实现包含了很多参与对所以请求进行处理的关键组件,如:拦截器、OGNL表达式语言、堆栈。 
因为struts2有这样目标,并且有这样的优势,所以,这是我们学习struts2的理由,下面,我们在深入剖析一下struts的工作原理。

这里写图片描述

  • ActionServlet,前端控制器

    1、根据相应的规则截取Http请求的URL 
    2、将Http请求分发到相应的Action处理

  • ActionForm,相当于实体

    1、收集表单数据,将表单数据转换成相应的数据类型

  • Action,业务层控制器

    1、 取得表单数据 
    2、调用业务逻辑 
    3、返回转向信息

4.深入理解Struts2的工作过程

  • 工作流程图

这里写图片描述

  • 工作原理图 
    这里写图片描述

    (1) 客户端(Client)向Action发用一个请求(Request) (2) Container通过web.xml映射请求,并获得控制器(Controller)的名字 (3) 容器(Container)调用控制器(StrutsPrepareAndExecuteFilter或FilterDispatcher)。在Struts2.1以前调用FilterDispatcher,Struts2.1以后调用StrutsPrepareAndExecuteFilter (4) 控制器(Controller)通过ActionMapper获得Action的信息 (5) 控制器(Controller)调用ActionProxy (6) ActionProxy读取struts.xml文件获取action和interceptor stack的信息。 (7) ActionProxy把request请求传递给ActionInvocation (8) ActionInvocation依次调用action和interceptor (9) 根据action的配置信息,产生result (10) Result信息返回给ActionInvocation (11) 产生一个HttpServletResponse响应 (12) 产生的响应行为发送给客服端。

相关文章
相关标签/搜索