`
lishu-luo
  • 浏览: 3754 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

struts2源码解析–前期准备

阅读更多

转载请注明出处,作者:罗立树

 

在之前的文章里我分享了阅读源代码的方法,假如没有阅读过该文章的同学可以参考这里源代码阅读技巧。大家觉得感兴趣的话,也可以加入我的群:74914061,进行技术交流。在今后的系列文章,我将会由浅入深给大家讲解Struts2的设计思想,设计原理,和具体实现。

在深入讲解之前,大家可以阅读一下以下的资料:

 

java servlet2.3标准 (了解Servlet标准,方便对框架的了解)

OGNL表达式语言 (学习struts2 web界面编程和valuestack有用)

MVC框架模式  (总体了解设计原理)

JAVA反射机制  (了解struts2中的method是怎么执行的)

HTTP协议  (对HTTP了解,从而了解请求的过程,以及Servlet标准的实现机制)

java ThreadLocal (ActionContext有用)

命令模式 (Action的设计原则)

 

 

针对上面的知识,大家假如觉得比较陌生的话,就需要多些深入了解一下了,要不然就像我在源代码阅读的经验介绍中那样,即使看到源代码,也会感觉理解的不够深入,不够透彻。

 

在接下来的课程中,我们针对几个疑问点进行自问和解答

 

1.struts2是什么?有没有类似的框架?

 

struts2是一套MVC的web开发框架,它的前身是Webwork。和struts2类似的框架有struts1(目前已经停止维护),还有SpringMVC、阿里巴巴的webx、Tapestry、JSF等等。关于他们之间的优点和缺点不在这里详细描述,我们会在后面的系列文章中再专门去比较。

 

2.框架的作用是什么?

 

在传统的开发模式上(譬如基于Servlet和jsp的开发中,开发起来比较麻烦,页面和代码逻辑之间参数的传递,页面和代码逻辑之间的数据交互转向都比较困难),代码组织比较零散,存在着大量的重复代码,而且缺乏规范,导致在维护和理解分析上需要投入更多的时间。框架的作用就是将一系列通用的逻辑,进行抽象和封装,从而降低使用的难度和复杂度,复用更多的共用逻辑,使得形成一定的标准和规范。从而降低了软件开发的成本,并使得整体架构更加清晰明确,易于扩展维护。

 

为此struts2对整体结构进行了抽象,可以参考以下的架构图:

 

Struts2的总体架构图

 

struts2架构

 

Struts2中的关键域对象有:

 

1.Action 负责web层逻辑处理的对象(参考command模式)

 

2.Interceptor struts2拦截器,在action执行的前后做一些处理的工作。

 

3.Result 在action或者Interceptor的执行中,假如需要返回结果,终止本次请求行为,则可以返回一个Result,Result是对结果的抽象,有不同的实现,这是对展示层的一个封装。

 

其它的关键类会在下一节中进行更加详细的描述。

 

在本系列的文章中,我们会按照下列的顺序来讲解:

 

1.一次请求的执行过程从Filter到Action的返回的过程,源码跟踪

 

2.xwork技术原理源码解读

 

3.struts2的插件机制源码解读

分享到:
评论

相关推荐

    STRUTS2源码解析

    STRUTS2源码解析STRUTS2源码解析STRUTS2源码解析STRUTS2源码解析STRUTS2源码解析STRUTS2源码解析STRUTS2源码解析STRUTS2源码解析STRUTS2源码解析STRUTS2源码解析STRUTS2源码解析STRUTS2源码解析STRUTS2源码解析...

    struts2源码解析.pdf

    在"struts2源码解析.pdf"文档中,主要探讨了以下几个关键组件及其功能: 1. **ActionContext**: - `ActionContext`是Struts2的核心上下文,它存储了与当前Action执行相关的所有信息,如请求参数、session数据等。...

    Struts2源码分析

    配置相关的类位于`org.apache.struts2.config`包,这里包含读取和解析XML及properties文件的类。`org.apache.struts2.interceptor`包定义了内置的拦截器,例如身份验证、异常处理等,开发者可以根据需要自定义拦截器...

    struts2源码分析

    struts2源码详细解析51CTO下载-struts2源代码分析(个人觉得非常经典)

    struts2源码解析,个人感觉很不错

    ### Struts2源码解析及工作原理 #### Struts2简介 Struts2是一个流行的Java Web应用程序框架,它继承和发展了Struts1.x的一些特性,同时又采用了WebWork框架的核心技术,使得Struts2在设计理念和技术实现上都有了...

    Struts1源码解析

    本文将深入解析Struts1的源码,以帮助理解其内部工作原理。 首先,我们从ActionServlet的生命周期开始。ActionServlet是Struts1的核心组件,它的生命周期分为初始化、拦截请求和销毁三个阶段。在初始化阶段,`init...

    struts2 源码分析

    Struts2 源码分析 Struts2 是一个基于MVC 模式的Web 应用程序框架,它的源码分析可以帮助我们更好地理解框架的内部机制和工作流程。下面是Struts2 源码分析的相关知识点: 1. Struts2 架构图 Struts2 的架构图...

    struts2 源码解读

    总的来说,这篇“Struts2源码解读”的博文应该是对Struts2核心机制进行了详细的解析,包括Action、Interceptor、Result等关键组件的工作原理,以及整个请求处理流程。通过学习这些内容,开发者可以深化对Struts2的...

    Struts2源码阅读

    4. `ConfigurationProvider`和`Configuration`:`ConfigurationProvider`解析Struts2的配置文件,如`struts.xml`。默认实现`XmlConfigurationProvider`和`StrutsXmlConfigurationProvider`负责读取和解析这些配置。 ...

    struts2源码解析

    Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品. 文档中对于代码进行重要部分...

    struts2源码最新

    最新版的Struts2源码可以从GitHub的Apache官方仓库获取,这为我们提供了深入理解其内部工作原理和定制功能提供了可能。 Struts2的核心特性包括: 1. **Action与结果**:在Struts2中,业务逻辑处理主要由Action类...

    struts2源码解析[归纳].pdf

    这份"struts2源码解析[归纳].pdf"文档显然深入探讨了Struts2的核心组件和工作原理。以下是对其中提到的关键概念的详细解释: 1. **ActionContext**: ActionContext是Struts2中一个非常重要的类,它封装了当前请求...

    struts2源码分析总结

    总的来说,Struts2的初始化过程涉及了日志、配置解析、ActionContext管理等多个重要环节,这些都为处理HTTP请求做好了准备。理解这些源码细节有助于开发者更好地定制和优化Struts2应用,提高系统性能和可维护性。...

    struts 2 源码 导入eclipse工程

    将Struts 2源码导入Eclipse工程,对于学习和理解框架的工作原理以及进行自定义开发具有重要意义。 首先,导入Struts 2源码到Eclipse需要遵循以下步骤: 1. 下载Struts 2的源码包,通常可以从Apache官方网站获取...

    struts2深入详解源码1-5章

    本资料包包含的是《Struts2深入详解》一书的源码分析,涵盖了从第一章到第五章的内容,并附带了相关的jar包,方便读者结合理论与实践进行学习。 首先,让我们从第一章开始,Struts2的基础知识。这一章通常会介绍...

    struts2.1.8 struts2源码 Eclipse关联这个可以

    - `org.apache.struts2.config`: 配置处理相关的类,如StrutsConfig、PackageConfig等,用于解析和管理应用的配置信息。 - `org.apache.struts2.interceptor`: 包含各种内置拦截器,如DebuggingInterceptor、...

    struts2 源码绝对完整

    在深入研究Struts2源码时,我们可以关注以下几个关键部分: 1. **org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter**:这是Struts2的核心过滤器,它初始化并调用Struts2的生命周期。 2. **...

    struts2框架源码

    深入理解Struts2的源码对于提升Java Web开发技能,尤其是在面试中讨论底层实现时,具有非常重要的价值。 首先,我们来看看Struts2的核心组件和设计理念: 1. **Action**:在Struts2中,Action类是业务逻辑处理的...

    Struts2源代码与源码解析文档

    Struts2的源码解析文档通常会涵盖以下几个核心部分: 1. **FilterDispatcher**:这是Struts2框架的入口点,负责拦截HTTP请求并根据配置将请求转发到相应的Action。源码分析会解释其如何处理请求、如何查找Action及...

    Struts 2的源码

    通过对`org`目录下源码的分析,我们可以看到Struts 2的内部工作机制,包括Action的执行流程、拦截器链的构建、配置解析的过程等,这有助于我们更好地优化和调试基于Struts 2的应用程序。同时,对于想要为Struts 2...

Global site tag (gtag.js) - Google Analytics