前几篇博客主要介绍的ActionServlet的初始化和Struts是如何完成截取字符串工作的,今天继续分析Struts截取完字符串所要做的工作。
在struts专栏的开篇mvc小实例中我们编写了ActionMapping这样一个类、struts-config.xml配置文件,在那时我们对截取的字符串匹配,利用dom4j来读取了配置文件的信息,并且把他以ActionMapping的形式保存在内存中。
今天我们深入的来看看struts是怎样拿到ActionMapping的,依旧和上篇的博客思路一样,利用断点调试的方式来进入源代码中,具体做法见上篇博客。
紧接着上篇博客,我们的断点走出了processpath方法,
在上一篇博客中我们已经讲解了,这个方法是用来截取字符串的,今天我们来看怎样获得ActionMapping的方法---processMapping。
在此之前简单说一下ActionMapping,它的源代码中可以看出,其中最重要的属性和我们的mvc小实例中的ActionMapping类似,都是有path、type还有forwardMap,主要是对应的struts-config配置文件而来,这个就是保存这个配置文件的信息到内存中。
具体的mvc小实例的ActionMapping代码如下:
而Struts中的Actionconfig(因为ActionMapping是继承这个ActionConfig的,所以我们来看ActionConfig更加直接)的代码如下:
从这两部分代码来看,更加印证了我在开篇写的mvc小实例是一个struts框架的雏形。
讲完ActionMapping的一些内容后,相信对ActionMapping有所了解,那么系统是如何生成ActionMapping和如何找到ActionMapping的呢?这就是今天要说的整体:
不知道读者还记不记得,我们在分析实例的第一篇的时候web.xml中有一个<load-on-startup>2</load-on-startup> 配置信息,这个信息就是说明了但服务器已启动就动态读取struts-config配置文件把配置文件的信息put到ActionMapping中。所以当我们运行服务器的时候,我们在内存中已经存在对应struts-config配置文件信息对应的ActionMapping。今天就是要通过processMapping读取这个ActionMapping类。
进入断点调试,首先在processMapping方法上设置断点。
进入源代码中:
首先我们传入我们在上一步截取的路径,通过moduleConfig的findAction方法来查找ActionConfig,并且返回ActionMapping。具体代码是:
如果找到,那么就讲ActionMapping存放到request的context中。代码:
如果没有通过path找到mapping,则在Actionconfig中遍历为未知路径寻找mapping,如果找到则存放到request中,如果没有找到,则返回错误信息,具体代码如下:
通过这一段代码我们就能通过截取的字符串来找到匹配的ActionMapping,并且为下面获取ActionForm做铺
垫。这篇博客主要是让读者明白,Struts是如何生成ActionMapping和如何获得ActionMapping的,下一篇博客要介绍如何获得ActionForm。敬请期待!
分享到:
相关推荐
总之,“深入浅出Struts2”这份资料全面讲解了Struts2的各个关键组成部分,包括其工作原理、配置方式、拦截器机制、OGNL表达式、插件使用以及与Spring的整合,是学习和掌握Struts2框架的宝贵资源。通过深入学习和...
这本书"深入浅出Struts2源代码"是针对该框架源码的深度解析,旨在帮助读者理解Struts2的工作原理,提升开发技能。 Struts2的核心组件包括: 1. **FilterDispatcher**:这是Struts2的入口点,它是一个Servlet ...
综上所述,《深入浅出Struts2》这本书应该详细讲解了这些知识点,并通过实例和代码示例帮助读者掌握Struts2框架的各个方面。通过阅读和实践书中的内容,开发者能够更好地理解和运用Struts2来开发web应用。
Struts 是一个开源的Java Web框架,由Apache软件基金会维护,用于构建基于MVC(Model-View-Controller)模式的Web应用程序。...同时,结合《深入浅出Struts》这本书的理论讲解,将使你的学习事半功倍。
通过学习这本书"深入浅出Struts2.0",开发者不仅可以掌握Struts2的基本用法,还能了解其内在机制,从而更好地运用到实际项目中。书中可能涵盖了上述所有概念的详细解释、实例演示以及最佳实践,有助于提升开发者在...
本资料"深入浅出Struts2"将带你深入了解这个框架的核心概念、配置、拦截器以及实际应用。 1. **基础概念**: - MVC模式:Struts2基于MVC设计模式,它将业务逻辑、数据和用户界面分离,使得代码更易于维护和测试。 ...
《深入浅出Struts源代码》一书旨在帮助读者理解Struts的工作原理,通过分析源代码,让开发者能够深入到框架内部,更好地利用其功能,并解决实际开发中遇到的问题。书中的内容可能包括: 1. **Struts架构**:介绍...
总之,《深入浅出Struts 2》是一本深度和广度兼具的教材,不仅适合初学者,也适用于有一定经验的开发者,它通过实例和详尽的解释,引导读者逐步探索和精通Struts 2框架的各个方面。通过学习这本书,开发者可以更好地...
### 深入浅出Struts2中文版关键知识点概览 #### 1. Struts2框架概述 - **框架定位**:Struts2作为Java Web应用开发中的一个重要框架,继承了Struts1的设计思想,并在此基础上进行了大量优化和扩展。它通过一系列的...
### 深入浅出Struts2:关键知识点解析 #### 一、Struts2概述 **Struts2** 是一款基于 **MVC (Model-View-Controller)** 架构模式的开源Java Web应用程序框架。它由Apache Struts 1发展而来,在保持了Struts 1的...
它专注于展示层的生成,与主流Web框架如struts2、springmvc集成良好,使得开发更为简单易学。同时,它支持多种方式加载模板,例如从文件系统、数据库等,并且可以自定义宏和函数,使开发更加灵活。 然而,...
本资源包含了《深入浅出Struts2》的原书扫描版以及与之配套的完整实例代码,旨在帮助开发者全面理解和掌握Struts2框架的精髓。 《深入浅出Struts2》这本书详细介绍了Struts2的基础概念、核心组件以及高级特性的使用...
本实例将深入浅出地介绍如何使用Struts进行简单的Web应用开发。 首先,理解MVC模式至关重要。在MVC模式中,Model代表业务逻辑,负责处理数据;View是用户界面,展示数据;Controller作为两者之间的桥梁,接收用户...
### Struts框架及标记库详解 #### Struts框架概述 Struts框架,作为Java Web开发中的经典MVC(Model-View-Controller)架构实现之一,自问世以来便因其组件的模块化、灵活性以及高重用性,而备受开发者青睐。其...
综上所述,《Struts in Action中文版》这本书不仅深入浅出地介绍了Struts框架的技术要点,还通过具体的案例分析帮助读者更好地理解和掌握Struts框架的实际应用。对于想要学习Struts框架的开发者来说,这本书是一本...
在《MyEclipse6 Java开发中文教程》的第十二章中,作者深入浅出地讲解了Struts2与Spring框架的整合应用及其开发过程。该章节不仅包含了理论知识的介绍,还提供了丰富的实践案例和代码示例,旨在帮助读者理解和掌握这...
这个"深入浅出StrutsBookApps"可能包含了多个示例应用,演示了上述概念的实际应用,通过这些实例,学习者可以更直观地理解Struts框架的工作原理和使用方法。解压后,你可以逐个浏览每个示例,研究它们的配置文件、...