`
skyline0813
  • 浏览: 583 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Struts2的原理解析及应用

    博客分类:
  • j2ee
阅读更多
 

阐述struts2的执行流程:

  Struts 2框架本身大致可以分为3个部分:核心控制器FilterDispatcher、业务控制器Action和用户实现的企业业务逻辑组件。

  核心控制器FilterDispatcher是Struts 2框架的基础,包含了框架内部的控制流程和处理机制。业务控制器Action和业务逻辑组件是需要用户来自己实现的。用户在开发Action和业务逻辑组件的同时,还需要编写相关的配置文件,供核心控制器FilterDispatcher来使用。 Struts 2的工作流程相对于Struts 1要简单,与WebWork框架基本相同,所以说Struts 2是WebWork的升级版本。

  基本简要流程如下:

      1、客户端浏览器发出HTTP请求。

      2、根据web.xml配置,该请求被FilterDispatcher接收。

      3、根据struts.xml配置,找到需要调用的Action类和方法, 并通过IoC方式,将值注入给Aciton。

      4、Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证。

      5、Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页面。

      6、返回HTTP响应到客户端浏览器。

 

 

工作原理

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

  1 客户端初始化一个指向Servlet容器(例如Tomcat)的请求 

  2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin) 

  3 接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action 

  4 如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy 

  5 ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类 

  6 ActionProxy创建一个ActionInvocation的实例。 

  7 ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。 

  8 一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可 能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。在表示的过程中可以使用Struts2 框架中继承的标签。在这个过程中需要涉及到ActionMapper 

 

 

工作流程

  1、客户端浏览器发出HTTP请求.

  2、根据web.xml配置,该请求被FilterDispatcher接收

  3、根据struts.xml配置,找到需要调用的Action类和方法, 并通过IoC方式,将值注入给Aciton

  4、Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证。

  5、Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页面

  6、返回HTTP响应到客户端浏览器

 

 

看到网友的对Struts2的原理总结,我自己也总结以便后续的面试,以下是我的疑问

  1、客服端发起一个请求,通过HTTP协议指向Tomcat容器,tomcat拿到请求她干了什么?

  2、我们web.xml配置

  <filter>

        <filter-name>struts2</filter-name>

        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

 </filter>

 <filter-mapping>

        <filter-name>struts2</filter-name>

        <url-pattern>/*</url-pattern>

</filter-mapping>

我们从web配置文件中可以看到org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter,这个Filter这个类有什么用?

这个 /* 是拦截所有的请求,他拦截了请求做了什么处理? <url-pattern>/*</url-pattern>

 3.我们struts.xml配置

<struts>

 <package name="default" namespace="/" extends="struts-default">

        <action name="hello">

            <result>

                /Hello.jsp

            </result>

        </action>

    </package>

</struts>

谁负责根据struts.xml配置,找到需要调用的Action类和方法呢?

 4。最后根据struts.xml中的配置找到对应的返回结果result,在返回HTTP响应到客户端浏览器

 

 

其实用最简单的七个步骤:

  1:客户端在浏览器中输入一个url地址。

  2:这个url请求通过http协议发送给tomcat。

  3:tomcat根据url找到对应项目里面的web.xml文件。

  4:在web.xml里面会发现有struts2的配置。

  5:然后会找到struts2对应的struts.xml配置文件。

  6:根据url解析struts.xml配置文件就会找到对应的class。

  7:调用完class返回一个字String,根据struts.xml返回到对应的jsp。

 

 

struts2标签分类:

  1.表单UI标签

  2.非表单UI标签

  3.控制标签

  4.数据标签

 

 

为什么使用struts2?

  1.开源

  2.mvc框架

  3.纯pojo的Action

  4.更好的标签特性

  5.易测试

  6.易扩展

分享到:
评论

相关推荐

    struts2 原理 解析 图

    `struts原理.txt`文件可能包含了文字描述,进一步解释了Struts2的核心概念和机制,比如Action的配置、结果映射、拦截器的实现方式,以及Struts2如何整合其他技术,如Spring或Hibernate进行依赖注入和持久化操作。...

    struts1原理,struts2原理,spring mvc原理,struts1和struts2,struts和spring mvc

    Struts、Spring MVC和Struts2是Java Web开发中三个重要的MVC框架,它们都用于构建基于模型-视图-控制器(MVC)设计模式的Web应用程序。下面将分别介绍这三个框架的工作原理,并进行对比。 **Struts1原理:** Struts...

    struts2源码解析.pdf

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

    Struts2 技术内幕——深入解析Struts2架构设计与实现原理

    要深入学习和掌握Struts2,建议阅读官方文档,参与实际项目实践,也可以参考相关的技术书籍和教程,例如《Struts2技术内幕——深入解析Struts2架构设计与实现原理》等资源,来提升对Struts2框架的全面理解。

    Struts2+技术内幕——深入解析Struts2架构设计与实现原理

    本书《Struts2技术内幕——深入解析Struts2架构设计与实现原理》结合提供的《struts2基础.chm》资料,为我们提供了深入理解Struts2内部机制的机会。 首先,Struts2的核心在于它的拦截器(Interceptor)机制。拦截器...

    Struts1与Struts2原理 区别详解汇总

    ### Struts1与Struts2原理及区别详解 #### Struts1原理概述 **Struts1** 是一种基于MVC架构的开源Java Web框架,它主要用于构建动态网站和应用程序。Struts1的核心组件包括ActionServlet、ActionForm以及Action...

    Struts2 技术内幕-深入解析Struts2架构设计与实现原理

    《Struts2技术内幕-深入解析Struts2架构设计与实现原理》这本书详细介绍了Struts2的各个方面,无论是对于初学者还是有经验的开发者,都能从中获取到宝贵的知识,理解Struts2的精髓,提升开发效率和应用质量。...

    Struts2基本原理

    如果请求需要由Struts2框架处理,FilterDispatcher则会解析请求信息,查找对应的Action配置。 2. **业务控制器Action**: Action是用户自定义的Java类,用于实现具体的业务逻辑。它接收来自FilterDispatcher的请求...

    Struts2技术内幕 深入解析Struts架构设计与实现原理

    ### Struts2技术内幕:深入解析Struts架构设计与实现原理 #### Struts2概述 Struts2是Apache Software Foundation支持的一个开源项目,它是Struts1的下一代版本,继承了Struits1的优点,并在此基础上进行了大量的...

    Struts2源码分析

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

    Struts2 工作原理 Struts2框架 有图

    Struts2框架作为Java Web开发领域中的一款经典MVC(Model-View-Controller)框架,其工作原理涉及到了一系列复杂...理解Struts2的工作原理,不仅有助于高效开发Web应用,更能够深化对MVC架构的理解,提升整体编程能力。

    struts2重要知识点原理

    这是因为Struts2使用一系列拦截器来解析HttpServletRequest中的参数,并传递给Action,然后调用Action的`execute`方法执行业务逻辑。 **请求处理流程** 1. 用户发起HTTP请求到Servlet容器,如Tomcat。 2. 请求通过...

    struts框架原理图

    为了更好地理解和应用Struts框架,本文将深入解析这些关键知识点。 ### Struts框架概述 Struts是一个开源的Web应用程序框架,属于MVC(Model-View-Controller)模式的一种实现。它主要用于Java EE平台上的Web开发...

    Hibernate、Spring和Struts工作原理及使用理由

    【标题】:“Hibernate、Spring和Struts工作原理及使用理由” 【内容】: Hibernate是一个流行的Java持久化框架,它的核心工作原理主要包括以下步骤: 1. **读取并解析配置文件**:Hibernate通过读取hibernate....

    Struts2视频教程

    ### Struts2核心知识点解析 #### 一、Struts2框架概述 - **定义与特点**:Struts2是一款基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它继承了Struts1的优点,同时在设计上更加灵活、易用,...

    struts2核心解析

    在本文中,我们将全面解析Struts2的核心组件、工作原理以及它如何简化MVC(模型-视图-控制器)架构的开发。 1. **Action与ActionMapping** Struts2的核心在于Action类,它是业务逻辑处理的主要载体。每个Action...

    Struts2 技术内幕——深入解析Struts2架构设计与实现原理.zip

    这本书《Struts2技术内幕——深入解析Struts2架构设计与实现原理》深入探讨了Struts2的核心机制和设计理念,旨在帮助开发者更好地理解和运用这个框架。 首先,Struts2的出现是为了解决Struts1在MVC模式中的局限性,...

Global site tag (gtag.js) - Google Analytics