MVC
View 视图 : Model2 JSP
解析模型的数据
产生HTML响应
请求模型的更新
发送用户输入给控制器
Controler 控制器:Model2 Servlet
接收并验证HTTP请求的数据
将用户数据与模型的更新相映射
选择用于响应的视图
Model 模型:Model2 JavaBean (数据模型 JavaBean 和 业务逻辑模型 JavaBean)
封装应用状态
响应状态查询
暴露应用功能
通知视图改变
交互关系:
1. 首先是展示视图给用户,用户在这个视图进行操作,并填写一些业务数据
2. 然后用户用单击提交按钮,发出请求
3. 视图发出的用户请求会达到控制器,在请求中包含了想要完成什么样的业务功能及相关数据
4. 控制器处理用户请求,会把请求中的数据进行封装,然后选择并调用合适的模型,请求模型进行状态更新,然后选择接
下来要展示给用户的视图。
5. 模型处理用户请求的业务功能,同时进行模型状态的维护和更新。
6. 当模型状态发生改变的时候,模型会通知响应的视图,告知视图它的状态发生了改变。
7. 视图接到模型的通知后,会向模型进行状态查询,获取需要展示的数据,然后按照视图本身的展示方式,把这些数据展示出来。
MVC 的核心手段是解耦
模型和视图是解耦的
Model2时期的MVC
Servlet+JSP+JavaBean
缺点: 1. 流程凌乱 servlet在完成对用户的处理后,下一个页面是谁?如何跳转,这些都是在servlet代码完成,导致
Servlet既要处理请求,还有负责页面的流程,功能不够单一,整个系统的页面流程很难把握,页面流程
都被分散到各个Serlet里面了
2. 数据传递无序。
3. 缺乏辅助功能,没有统一的分发调度、验证框架、国际化、本地化、例外消息处理等
Struts1时期的MVC
缺点: 1. Action实现类必须继承Struts1中的Action,降低了灵活性
2. 一个应用中,只能使用一个单一的ActionServlet,导致配置冲突
3. Action的API同 HttpServletRequest和HttpServletResponse是耦合的,单元测试困难
4. 页面传值的JavaBean必须继承Struts1中的FormBean,而其本质就是一个 JavaBean
5. 没有独立的拦截器模型,类似面向切面 (AOP)的操作都要写成 Filter,使用和配置都较弱
Struts2 MVC
视图(结果Result) -》 提交请求 -》 控制器(FilterDispatcher)
控制器(FilterDispatcher)-》根据URL调用动作-》模型(动作Action)
模型(动作Action)-》选择结果-》视图(结果Result)
控制器--FilterDispatcher 负责根据用户提交的URL和struts.xml中的配置,选择Action
其实就是一个过滤器,体现了J2EE核心设计模式中的前端控制器模式
动作---Action 请求经过FilterDispatcher,分发到合适的动作Action。 Action负责把用户的参数组装成合适的数
据模型,并调用相应的业务逻辑,进行真正的功能处理,然后获取下一个视图展示所需要的数据。
与Servlet API 解耦,不需要直接去引用和使用HttpservletRequest与HttpServletResponse接口,方便单元测试
视图---Result 展示动作中获取到的数据展现给用户。 jsp 模板freemarker、velocity、图表jfreechart、报表
JasperReports、XML转为为HTML的XSLT等。
分享到:
相关推荐
13. ** strut2四天笔记**:这份学习笔记可能涵盖了以上所有知识点,包括如何创建Action,配置struts.xml,使用OGNL表达式,处理异常,以及实践中的各种技巧和最佳实践。 在四天的学习过程中,你应该通过实践和理解...
张龙圣思园的Struts2学习笔记,无疑为Java开发者提供了一份宝贵的参考资料,它可能涵盖了Struts2的基础概念、核心组件、配置方式以及实战技巧。 首先,让我们深入了解Struts2的核心特性。Struts2是MVC(Model-View-...
Struts2是一个强大的Java web应用程序开发框架,它遵循Model-View-Controller (MVC)设计模式,用于构建可维护性和可扩展性高的企业级应用。本文将深入探讨Struts2的核心概念,包括Action、Result、配置文件、OGNL与...
### Struts2框架学习笔记整理 #### 一、Struts2框架概述 ##### 1.1 Struts2框架定义 Struts2是一个基于MVC(Model-View-Controller)架构模式的开源Java web应用框架,它能够帮助开发者构建可扩展且易于维护的...
本文将深入探讨Struts2的核心概念,包括Namespace、标签、Action以及它们在实际开发中的应用。 一、Namespace Namespace在Struts2中主要用于组织和隔离Action,它决定了Action的访问路径。默认情况下,Namespace为...
本篇超详细学习笔记将带你逐步深入理解Struts2的核心概念和运作机制。 首先,让我们了解Struts2的基本特性。Struts2是一个基于Servlet的框架,它通过将JSP作为视图(View),Servlet作为控制器(Controller),并将...
这个"Struts2_学习笔记"包含了关于Struts2框架的深入学习资料,是理解并掌握Struts2核心概念和技术的关键。 Struts2的核心设计理念是模型-视图-控制器(MVC)架构模式,它简化了Java Web开发,将业务逻辑、数据展示...
本学习笔记将深入探讨Struts2的核心概念、工作原理以及如何在实际开发中有效利用它。 **1. MVC模式与Struts2** MVC模式是一种软件设计模式,它将业务逻辑(Model)、用户界面(View)和数据控制(Controller)分离...
以上就是Struts2学习笔记中涵盖的主要知识点,这些内容涵盖了从基础到进阶的应用,对于理解和掌握Struts2框架至关重要。尽管对于初学者来说可能有些复杂,但随着深入学习,你会发现Struts2的强大和实用性。
- **发展演变**: Struts2 结合了传统 Struts1 和 WebWork 两个经典框架的优点,是一个成熟的 MVC 框架。 - **核心功能**: - 允许使用 POJO (Plain Old Java Object) 作为 Action 类,使得 Action 更易于测试。 - ...
本学习笔记将深入探讨Struts2的核心概念、架构以及实际应用。 一、Struts2框架概述 1. 架构:Struts2基于Model-View-Controller(MVC)设计模式,将业务逻辑、数据处理和用户界面分离,提高了代码的可读性和可维护...
以上内容仅是Struts2学习笔记中的核心部分,实际学习时还需要深入理解拦截器、结果类型配置、插件机制、异常处理等更多高级特性。Struts2提供了强大的功能和灵活性,是Java Web开发中不可或缺的一部分。
通过这篇学习笔记和提供的测试源代码,你可以深入理解Struts2框架下多文件上传的实现过程,包括前端页面的构建、后台Action的编写以及文件的保存逻辑。这不仅有助于提升你的Java Web开发技能,也能帮助你在实际项目...
通过深入学习这些知识点,开发者不仅可以更好地掌握Struts2框架,还能提高开发效率和代码质量,为构建健壮的企业级应用打下坚实基础。在实际项目中,结合源码阅读和使用相关的开发工具,可以进一步提升对Struts2的...