`
孤星119
  • 浏览: 124252 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Struts如何实现MVC

 
阅读更多

                                    摘自  三层架构,MVC浅谈[三] http://gcfwuwei-yahoo-com-cn.iteye.com/blog/867390

 

struts如何实现MVC

 

struts是java web目前最常用的实现框架。他采用mvc结构,将页面展现,流程控制和业务处理强有力的分开,结构清晰,思路明确,是进行java web的最好选择。
java web组件间的关系基本有三类:

页面跳转(javax.servlet.RequestDispatcher.forward()方法)

页面重定向(javax.servlet.response.sendRedirect()方法)

页面包含(javax.servlet.RequestDispatcher.include()方法).

其中,页面跳转只是在同一个web应用中进行的,传递的是request和response对象;重定向和包含则可以是不同的url内容。
      java web组件间的数据共享有四类:page,request,session和application,共享范围有单个页面到整个web应用,依次变大。
     struts的页面展示用jsp技术实现,按严格的mvc讲,jsp只是负责显示,不负责流程控制和数据处理;流程控制用action实现,在action的execute()里面通过return actionMapping.findForward()进行跳转,具体的业务处理是有各种java bean或者ejb来实现的。actionForm也是struts里面的一部分,目的是存储jsp页面提交的内容,供对应的action使用。

struts1.2 的工作流程

Web应用启动时加载并初始化ActionServletActionServletstruts-config.xml中读取配置信息,把它们存放到各种配置对象中。当ActionServlet接收到一个请求时,流程如下:

1.检索和用户请求匹配的ActionMapping实例,如果不存在,就返回用户请求路径无效的信 息。

2.如果ActionForm实例不存在,就创建一个ActionForm对象,把提交的表单数据保存到 ActionForm中。

3.根据配置,决定是否需表单验证,若需要,则调用ActionFormvalidate方法。

4.如果ActionFormvalidate方法返回null或返回不包含ActionMessageActionErrors 对象,则表示验证成功。

5.ActionServlet根据ActionMapping实例包含的映射信息决定将请求转发给哪个Action 如果Action不存在则先创建这个实例,然后调用Actionexecute方法。

6.Actionexecute方法返回一个ActionForward对象,ActionServlet再把请求转发给 ActionForward对象指向的JSP组件。

7.ActionForward指向的JSP组件生成动态网页,返回给用户。


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

 

在上述过程中所有的对象(Action,Results,Interceptors,等)都是通过ObjectFactory来创建的。

分享到:
评论

相关推荐

    Struts实现MVC机制的Web应用.pdf

    ### Struts实现MVC机制的Web应用 #### 引言 随着互联网技术的快速发展和Web应用的日益复杂化,为了更高效地管理和构建大规模的Web应用程序,开发领域中出现了多种软件开发框架。其中,Struts作为一种基于MVC...

    Struts实现MVC机制的Web应用

    Struts实现MVC机制的Web应用论文

    用Struts实现MVC结构

    这格里面介绍了struts 的MVC结构,里面的内容非常详细

    Struts,MVC 的一种开放源码实现.doc

    ### Struts:MVC的一种开源实现 #### 一、引言 随着互联网技术的发展,越来越多的应用程序被开发出来,为了确保这些应用具有良好的用户体验、高效的功能性和可维护性,开发者们逐渐采用了一些成熟的设计模式来指导...

    精通struts基于mvc的java web设计与开发

    在Struts框架中,模型(Model)通常由JavaBeans或EJB(Enterprise JavaBeans)实现,负责处理业务逻辑;视图(View)主要由JSP(JavaServer Pages)或HTML页面组成,用于展示数据;控制器(Controller)则是Struts的...

    在J2EE项目中使用Struts对MVC模式的研究与实现

    ### 使用Struts实现MVC模式 在J2EE项目中,Struts通过将JSP、JSP tags和Java Servlets结合使用,有效地实现了MVC模式。Struts的标签库提供了丰富的功能,如表单处理、数据展示等,可以大大减少JSP页面的复杂度,...

    MVC原理(struts框架详解).

    MVC原理(struts框架详解), Struts 质上就是在Model2的基础上实现的一个MVC架构。它只有一个中心控制器,他采用XML定制转向的URL。采用Action来处理逻辑

    struts + mvc + ibatis

    Struts作为MVC框架,其实现了控制器的角色,使得模型和视图可以解耦,提高代码的可测试性和可维护性。 iBatis,又称为SQL Maps,是一个能够将SQL语句和Java代码分离的持久层框架。它允许开发者直接写SQL语句,避免...

    Struts1 MVC实例

    在这个"Struts1 MVC实例"中,我们将深入探讨如何利用Struts1实现一个基础的CRUD(Create, Read, Update, Delete)操作。 MVC模式是软件工程中的一个设计模式,它将应用程序分为三个主要部分:模型(Model)、视图...

    基于struts框架mvc模式应用的实现

    ### 基于Struts框架MVC模式应用的实现 #### 概述 本文主要探讨Struts框架在MVC(Model-View-Controller)模式下的应用实现,旨在为读者提供一个深入理解Struts框架及其在Web开发中作用的机会。通过详细解析MVC模式...

    用Struts实现JAVA Web应用的MVC模式

    Struts 是一个开源的 Java 框架,主要用于构建企业级的 Web 应用程序,尤其在实现 Model-View-Controller(MVC)设计模式方面表现出色。MVC 模式是一种软件设计模式,它将应用程序分为三个核心部分:模型(Model)、...

    Struts基于MVC的Java Web设计的实例

    1. **HelloAction**: 这是实现业务逻辑的Action类,继承自Struts的抽象Action类。在这个例子中,它可能包含一个execute方法,该方法处理HTTP请求,可能包括验证用户输入、调用业务服务等。 2. **HelloForm**: ...

    Struts 2 自定义MVC 框架

    Struts 2是一款强大的Java Web开发框架,基于Model-View-Controller(MVC)设计模式,旨在简化企业级应用的开发。它通过提供一个统一的架构来管理控制器、视图和模型,使得开发者能够更专注于业务逻辑,而不是底层...

    Struts2MVC模式

    在Struts2框架中,MVC模式的实现如下: 1. **模型(Model)**:模型层是应用程序的核心,负责处理业务逻辑。在Struts2中,模型通常由JavaBean或者Action类来实现。Action类是业务逻辑的载体,它包含了处理用户请求的...

    精通Struts:基于MVC的JavaWeb设计与开发(孙卫琴)

    《精通Struts:基于MVC的JavaWeb设计与开发》是由孙卫琴编著的一本经典书籍,专门探讨了如何使用Struts框架进行高效的JavaWeb应用程序开发。这本书深入浅出地介绍了Struts的核心概念、架构以及实践应用,帮助开发者...

    JSP源码——Struts+Hibernate实现MVC_strutsmvc.zip

    这个压缩包“JSP源码——Struts+Hibernate实现MVC_strutsmvc.zip”显然包含了使用这两种技术构建的MVC应用的源代码。下面将详细阐述Struts和Hibernate的核心概念以及它们如何协同工作。 **Struts框架**: 1. **MVC...

    Struts+Hibernate实现MVC_strutsmvc.zip

    Struts+Hibernate实现MVC_strutsmvc.zip

    员工工资管理系统struts2 MVC 毕业设计源码

    《员工工资管理系统基于Struts2 MVC的毕业设计详解》 在信息技术日新月异的今天,软件工程领域的学生们经常会被要求进行毕业设计,以实践所学理论知识并提升实际编程能力。本文将深入探讨一个典型项目——“员工...

    Struts+Hibernate实现MVC-strutsmvc.zip

    在这个"Struts+Hibernate实现MVC"项目中,开发者通过整合这两个框架,构建了一个高效、可维护的业务系统。 **Struts框架**是Apache软件基金会下的一个开源项目,它主要用于构建基于Java Servlet的Web应用程序。...

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

    2. **依赖注入**:Spring MVC是Spring框架的一部分,天然支持DI,而Struts2需要额外集成Spring才能实现DI。 3. **测试**:Spring MVC更容易进行单元测试,因为Controller通常是无状态的,而Struts2的Action有状态,...

Global site tag (gtag.js) - Google Analytics