MVC
MVC将一个完整的Web应用分割为模型(Model)、视图(view)和控制器(Control)3个部件:
l 模型:是软件所处理问题逻辑和独立与外在显示内容和形式情况下的内在抽象,它封装了问题的核心数据。逻辑和功能的计算关系,独立于具体的界面表达和I/O操作。
l 视图:把表示模型数据和逻辑关系和状态的信息,以及特定形式展示给用户。它从模型获得显示信息,对于相同的信息可以有多个不同的显示形式或视图。
l 控制器:处理用户与软件的交互操作,控制提供模型中任何变化的传播,确保用户界面与模型间的对应联系。它接受用户的输入,将输入反馈给模型,进而实现对模型的计算控制,是使模型和视图协调工作的部件。
模型、视图、控制器的分离,使得一个模型可以具有多个显示视图。无论何时,数据发生何种变化,控制器都将变化通知所有的视图,使得显示的更新。
原始的MVC
最原始的MVC模型中,用户直接请求视图,
由于直接请求各个页面,使得维护变得非常困难,一些控制代码,国际化代码,日志等等都需要加在每个页面上,存在代码分散重复,可缺乏性低,缺乏可扩展性等问题。
前端控制器模式
传统的MVC为开发带来了许多的不便,前段控制器模式便在一定程度上有了改变,用户的请求不再直接与视图进行会话,而是由一个分发器来接收的。
通过一个分发器,不在直接请求视图,而是请求控制器,控制器调用并修改模型。处理完毕后,返回结果给一个视图资源。这里我们可以很容易的在控制器上加上加密、国际化、日志等。
Struts2中的MVC
控制器:Struts2框架中作为控制器的是FilterDispatcher,它是一个Servlet过滤器。当 请求到来的时候,首先要经过FilterDispatcher过滤器。又该过滤器决定哪个 Action来处理当前的请求。
模型:Action在Struts2中是作为模型存在的,它主要有两个功能:首先Action可以用 来调用业务逻辑处理请求;其次Action,可以进行数据的传递。当Action把请求 处理完毕后,会返回一个逻辑视图。
视图:在Struts2中,视图以多种表现形式。除了传统的JSP页面外,还可以使用Velocuty、FreeMarker、Tiles等多种视图资源。当视图组件接收到Action返回的逻辑视图以后,会寻找对应的物理视图资源,并返回给客户端。
Struts2的工作流程
整个流程可以分为一下几步:
1) 客户端初始化一个指向Web容器的请求。
2) 请求经过一系列过滤器(Filter的过来传递给FilterDispatcher)
3) FilterDispatcher在接收到请求信息后,会根据URL在ActionMapper中搜索指定Action的映射信息
4) 如果找到符合的映射信息,ActionProxy通过Configuration Manager在strut.xml中搜索被请求的Action的类
5) ActionProxy创建一个被请求Action的实例,该实例用来处理请求信息。
6) 如果在strut.xml文件中存在与被请求Action相关的拦截器配置,那么该Action的实力被调用前后,这些拦截器也会被执行。
7) 返回一个逻辑视图
<!--EndFragment-->
- 大小: 26.3 KB
- 大小: 5.2 KB
- 大小: 63.9 KB
分享到:
相关推荐
### Struts2初步使用总结 #### 一、Struts2原理概述 **1.1 为什么要用Struts2** 在探讨为何使用Struts2之前,我们先简要回顾一下Struts2的一些基本特点: - **模块化设计**:Struts2采用模块化的架构设计,使得...
Struts2是一个强大的Java web应用程序框架,用于构建和管理MVC(模型-视图-控制器)架构的应用程序。这个“Struts2的视频学习代码”资料可能是...通过学习这部分代码,开发者能够初步掌握Struts2的基本操作和工作原理。
struts 初步认识Struts2并部署验证 struts2 将要进行自定义类型转换的点数据从1个增加到3个 struts3 进行全局的类型转换 struts4 使用Struts2中内部类中的方法进行自定义类型转换,用到的类StrutsTypeConverter ...
以上就是Struts2的初步使用环境配置。理解并掌握这些步骤是Java EE开发中必不可少的一部分,它为你后续深入学习Struts2和构建复杂Web应用打下基础。在实际开发中,你可能还需要了解更多关于Struts2的特性,如拦截器...
这个"struts2框架2016版资料day01"涵盖了Struts2的基础知识,包括框架的基本架构、核心概念和初步配置。传智播客作为知名的IT教育机构,其课程内容通常严谨且实用,适合初学者快速入门。 1. **Struts2框架概述**:...
- **表单验证**:Struts2提供强大的表单验证功能,结合jQuery,可以在客户端进行初步验证,提高用户体验。 - **动态表格和分页**:Struts2 jQuery插件包含了一些实用组件,如`sj:grid`用于创建动态表格,`sj:pager`...
通过这个简单的实例,你已经初步了解了Struts2的工作原理和基本操作。在实际开发中,你可以根据需求添加更多的Action、拦截器和结果类型,实现更复杂的业务逻辑和页面跳转。同时,Struts2还提供了丰富的插件和第三方...
Struts2初步应用,编码实现一个工程,实现用户“注册”、“登录”、“修改密码”的功能。要求:用数据库保存用户信息,并对表单提交的数据项进行格式验证。修改密码需要输入旧密码正确,两次输入新密码相同才可以...
Struts2是一款非常流行的Java Web框架,用于构建和维护动态网站应用程序。然而,如同其他复杂的软件系统,Struts2在过去的几年中也发现了一系列的安全漏洞,这些漏洞可能导致远程代码执行、敏感信息泄露等问题,对...
为了寝室里交大作业,用struts2写的一个电子商城系统。包含完整的数据库创建文件,在根项目的sql文件夹里,还有初步的测试数据。整个项目分包明确,每个功能模块一目了然。根据网上的资源实现了一个登陆时邮箱验证的...
10. ** strut2-dojo-plugin**:Struts2的Dojo插件提供了客户端验证功能,可以在浏览器端进行初步的数据检查,提高用户体验。 综上所述,"Struts2_Validation"文件包很可能是围绕如何在Struts2中进行有效数据验证这...
在“Struts2笔记_初步修改版_”中,我们可能会涵盖以下关键知识点: 1. **Struts2架构**:Struts2的核心是Action类,它是处理用户请求的中心。Action类与业务逻辑层交互,并通过Result返回视图。Struts2使用拦截器...
总的来说,这个"struts2图书馆管理系统"项目为初学者提供了一个了解和实践Struts2框架的机会,尽管它可能存在一些功能上的局限,但通过这个项目,学习者可以深入理解MVC架构,掌握Struts2的核心概念,并初步接触Web...
Struts2是一个强大的MVC(模型-视图-...通过学习这个程序,初学者可以对Struts2框架有初步的理解,并能够动手实现一个简单的Web应用。同时,这也为后续学习更复杂的Web开发技术,如Spring Boot、Spring MVC等打下基础。
十二、总结 本教程对struts2的基本知识进行了一些说明,关于struts2的更多详细内容应参看struts2的官方文档及提供的app实例。 下面对struts2的基本执行流程作一简要说明,此流程说明可以结合官方提供的struts2结构图...
Struts2是一个强大的MVC(Model-View-Controller...通过这个Hello World示例,开发者可以初步了解Struts2的基本架构和工作流程,为后续深入学习和应用打下基础。对于初学者,理解并实践这些步骤是掌握Struts2的第一步。
为了达到类似Struts2的效果,我们可以创建一个Servlet过滤器(Filter),在`doFilter`方法内进行请求的初步处理和转发。过滤器可以注册到web.xml文件中,对特定URL路径或所有请求进行拦截。 2. **解析自定义XML数据...
Struts2是一个强大的MVC...”实例,我们可以初步理解Struts2的基本工作流程和核心组件。随着对Struts2框架的深入学习,开发者可以利用其丰富的特性,如国际化、数据校验、文件上传下载等,来构建更复杂的Web应用程序。