美文网首页
struts2详解

struts2详解

作者: 来自火星程序猿 | 来源:发表于2017-03-27 14:48 被阅读0次

struts2简介

Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。
Struts 2是在 struts1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts1的体系结构差别巨大。Struts2以WebWork为核心,webwork的核心是XWork。

struts2的优点

  • 实现了MVC模式,层次结构清晰,使程序员只需关注业务逻辑的实
  • Struts2提供丰富的拦截器实现。
  • 强大的表达式语言(OGNL – the Object Graph Navigation Language)。
  • 丰富的标签库,大大提高了开发的效率。
  • 通过配置文件,就可以掌握整个系统各个部分之间的关系。
  • 异常处理机制,只需在配置文件中配置异常的映射,即可对异常做相应的处理。
  • Struts2的可扩展性高
  • 面向切面编程的思想在Strut2中也有了很好的体现,最重要的体现就是拦截器的使用。
另外,struts2相对比于spring mvc,Struts2对于Controller最大的改造有两点:
  • 在Controller中彻底杜绝引入HttpServletRequest或者HttpServletResponse这样的原生Servlet对象。
  • 将请求参数和响应数据都从响应方法中剥离到了Controller中的属性变量。

这两大改造被看作是框架的神来之笔。因为通过这一改造,整个Controller类彻底与Web容器解耦,可以方便地进行单元测试。

struts2工作原理

Suruts2的工作原理可以用下面这张图来描述,下面我们分步骤介绍一下每一步的核心内容,需要说明的是,struts2在2.1.3版本之后,FilterDispatcher核心控制器变成了StrutsPrepareAndExecuteFilter。


一个请求在Struts2框架中的处理大概分为以下几个步骤:

1、客户端初始化一个指向Servlet容器(例如Tomcat)的请求。
2、这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin) 。
3、接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action 。
4、如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy
5、ActionProxy通过ConfigurationManager询问框架的配置文件,找到需要调用的Action类 ,这里,我们一般是从struts.xml配置中读取。
6、ActionProxy创建一个ActionInvocation的实例。
7、ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。
8、一旦action执行完毕,ActionInvocation负责根据struts.xml的配置找到相应的返回对应的返回结果,这个结果是一个需要被表示的JSP。

【注】:详细步骤说明见http://www.cnblogs.com/zzfweb/archive/2016/05/23/5521217.html

Struts2开发流程

以Struts2输出最经典的“HelloWorld”为例:

  1. 新建web项目
  2. 为项目添加Struts2的类库
  3. 配置web.xml文件,在其中添加过滤器
  4. 编写jsp界面
  5. 编写Action
  6. 配置struts.xml文件

【注】:详细开发流程见http://www.2cto.com/kf/201402/278562.html

相关文章

  • Struts2 使用

    参考:1、SSH的jar包详解2、struts2 从2.3升级至2.5要注意哪些问题?3、struts2入门教程一...

  • Struts2框架之struts.xml详解

    Struts2框架之struts.xml详解 [TOC] 一个struts.xml的配置示例 package标签的...

  • Struts2学习笔记(核心组件详解)

    [toc] Struts2学习笔记(核心组件详解) @(_1每日记录) 返回到JQuery学习笔记@达内lang笔...

  • struts2详解

    struts2简介 Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在M...

  • Struts2 Demo

    下面两张图,用 viso 画了1个小时~ viso 很强大啊! 工作原理 Struts2的工作原理(图解)详解St...

  • struts.xml配置详解

    struts.xml配置详解 struts.xml是我们在开发中利用率最高的文件,也是Struts2中最重要的配置...

  • Struts2 Action详解

    在Struts2中,大部分的业务都是由动作来完成的,。动作类包括业务逻辑,获取资源包,保存数据,验证,并选择应该发...

  • 【Java中级】14.0 SSH之Struts2框架(一)——基

    1.0 Struts2知识路线 Struts2的概述、Struts2的入门、Struts2常见的配置、Struts...

  • Struts2系列之-----入门

    主要内容 Struts2简介 环境搭建 Struts2的执行过程及原理 Struts2的基本配置 Struts2的...

  • Struts2干货笔记——第一天

    目录 1. 什么是Struts2 2. Struts2下载 3. Struts2的目录结构 4. Struts2中...

网友评论

      本文标题:struts2详解

      本文链接:https://www.haomeiwen.com/subject/fqmgittx.html