Struts2_框架及系统架构

合集下载

基于STRUTS2.0+SPRING+IBATIS技术的WEB开发

基于STRUTS2.0+SPRING+IBATIS技术的WEB开发

基于STRUTS2.0+SPRING+IBATIS技术的WEB开发摘要:随着b/s多层应用已成为web开发的主流,本文首先介绍了struts2.0、spring、ibatis这三种框架,随后介绍了如何使用这三种框架组合来实现web开发。

关键词:b/s struts2.0 spring ibatis随着中国软件的发展,不同于c/s软件,用户不需要在每台电脑上安装客户端软件,b/s软件只需要在联网电脑的浏览器中输入网址就可以访问远程的信息,因此b/s软件越来越受到用户的欢迎。

b/s 软件的开发有很多种方式,有不同的语言,本文主要介绍在struts2.0、spring、ibatis三种框架组合的基础上实现高校宿舍智能化、信息化管理的研究与实现。

1、struts2.0struts2的体系使用了webwork的设计核心,并大量使用拦截器来处理用户请求,从而允许用户的业务逻辑控制器与servlet api分离。

从数据流图上来看,struts2与webwork相差不大,struts2同样使用拦截器作为处理,以用户的业务逻辑控制器为目标,创建一个控制器代理。

控制器代理负责处理用户请求,处理用户请求时回调业务控制器的execute方法,该方法的返回值将决定了struts 2将怎样的视图资源呈现给用户。

2、springspring是目前java ee 领域中比较流行的一个开源框架,它的目的是为了解决企业应用程序开发的复杂性。

spring框架的分层架构允许在不同的层次上选择各种组件,所以spring可以和hibernate、struts以及jsf等框架结合起来。

spring框架是一个分层架构,由7个定义良好的模块组成。

spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式。

组成spring框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。

3、ibatisibatis是以sql为中心的持久化层框架。

JEE系统架构图及其简介

JEE系统架构图及其简介

各种系统架构图及其简介(Spring+IBatis+Struts1+Struts2+Hibernate+JavaEE+Oracle)1.Spring架构图Spring是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。

框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。

Spring框架的功能可以用在任何J2EE服务器中,大多数功能也适用于不受管理的环境。

Spring的核心要点是:支持不绑定到特定J2EE服务的可重用业务和数据访问对象。

这样的对象可以在不同J2EE环境(Web或EJB)、独立应用程序、测试环境之间重用。

组成Spring框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。

每个模块的功能如下:核心容器:核心容器提供Spring框架的基本功能。

核心容器的主要组件是BeanFactory,它是工厂模式的实现。

BeanFactory使用控制反转(IOC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。

Spring上下文:Spring上下文是一个配置文件,向Spring框架提供上下文信息。

Spring上下文包括企业服务,例如JNDI、EJB、电子邮件、国际化、校验和调度功能。

Spring AOP:通过配置管理特性,Spring AOP模块直接将面向方面的编程功能集成到了Spring 框架中。

所以,可以很容易地使Spring框架管理的任何对象支持AOP。

Spring AOP模块为基于Spring的应用程序中的对象提供了事务管理服务。

通过使用Spring AOP,不用依赖EJB组件,就可以将声明性事务管理集成到应用程序中。

Spring DAO:JDBC DAO抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。

异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。

javaEE常用开源框架的认识及概述

javaEE常用开源框架的认识及概述

javaEE常⽤开源框架的认识及概述对javaEE框架的认识⼀、什么是框架通俗的理解,框架是我们软件开发中的⼀套解决⽅案,不同的框架解决的问题是不同的,⽐如MyBatis框架解决的是持久层的问题,springMVC框架解决的是表现层的问题。

需要注意的是,框架它本⾝⾃⼰是不能实现业务上的功能,它只能对,⽐如说持久层、表现层、结构合理性等等,提供⼀些解决⽅案,⽽真正的业务层部分,还需要程序员⾃⼰来提供。

所以说,框架可以理解为⼀个半成品,我们选⽤这个半成品,然后加上业务需求(即项⽬中的需求)来最终实现整个的功能。

⽽我们使⽤框架的⽬的其实也很简单,就是为了提⾼开发的效率,⽽不⽤关⼼⼀些繁琐的、复杂的底层代码实现,从⽽把更多的精⼒⽤在需求的实现上。

⼆、框架能帮我们解决哪些问题要明⽩框架能解决哪些问题,⾸先要知道三层架构。

三层架构分为三层:表现层:是⽤于展⽰数据的;业务层:是处理业务需求的;持久层:是和数据库交互的。

从这张图可看出上⾯列出的三个框架和三层架构所处的位置。

可以看出MyBatis框架是⼀个持久层框架,它是和数据库交互的;⽽下⾯的Spring框架有点特殊,它不属于任何⼀层;SpringMVC框架是处于表现层的,它是⼀个表现层框架。

从这张图可⼤致得出,不同的框架是各司其职的,它们解决某⼀层或者某⼀类的事情。

三、对⼀些主流框架的认识由于以下具体的框架都没有学过,所以只能说⼀说,我对这些框架的⼤体认识,可能对于某些框架没⽤使⽤过和对⽐过很难对它的优势有深刻的认识,只能在后续的学习中,深⼊理解。

1、Struts2框架Struts2框架处于三层架构的表现层,可以⽤来替代掉Servlet技术,来处理前端访问服务器的请求(如表单、页⾯提交过来的请求),所以Struts2是属于⼀个前端处理的框架。

下图显⽰了Struts2框架在三层架构中的位置:对于web⽇常的⼯作,⽐如获取请求参数、转发、重定向、校验参数等等,使⽤Servlet技术基本都可以完成。

基于struts2框架的web系统安全模型分析

基于struts2框架的web系统安全模型分析

基于St r ut s2框架的W eb系统安全模型分析宋彦儒周翔(江西理工大学南昌校区信息工程系,江西南昌330013)脯剡基于B/S结构的应用软件系统,因为其在客户端采用测览器作为客户端软件而不需要额外安装誉户端软件提高7用户的可聚伟性,近些年采得到了广泛的使用。

袒其作为—种网络应用软件系统。

系统中辨要使雕重4的资源都可船鼬盖过罔络进行存取糠作。

这兢时费潭的安全性造成了一定的威胁。

睽为Il司】S w at32;W eb应用;安全模型近些年来随着企业、事业单位、政府机构以及各种社会组织纷纷建立自己的局域网并接入I nt ernet,基于W eb的应用也得到了广泛的发展。

用户可以通过W eb获取各种服务或资源,并且这些服务或资源只应为合法用户提供。

其实这些服务或资源存在于互联网环境下,任何互联网用户都有获取它的可能性(合法或非法),为此就必须有一种机制来保护这些服务或资源,以使得只有合法用户才能使用服务或资源。

1S t rut s2框架St r ut s2W eb框架作为目前广泛使用的W eb应用软件框架,它通过提供核心控制器实现了S un的M odel2架构,这个控制器可以用来管理业务逻辑层、J S P页面和其他表现设备之间的流程,此外St r ut s2还通过使用拦截器来实现在业务逻辑实现的前后执行各种校验和权验控制工作以及使用R e sul t来实现返回表现层的工作。

如图1所示。

蚕图l St r u t s体系结构图从图1中可以得出,St r ut s的体系结构包括核心控制器,拦截器,业务逻辑(A ct i on)和业务逻辑返回给客户端的表现页面三部分。

在这里我们主要讨论一下拦截器。

拦截器体系是St r ut s2的重要组成部分,拦截器可以动态的拦截发给业务逻辑(A c t i on)的请求,通过拦截器机制,我们可以在业务逻辑执行的前后插入某些代码。

通过这种方式,就可以把多个业务逻辑中需要重复指定的代码提取出来,放在拦截器里定义,从而提供更好的代码重用性。

struts2框架特征

struts2框架特征

struts2框架特征Struts2框架特征Struts2是一种流行的Java Web应用程序开发框架,其特征使其成为许多开发者的首选。

本文将介绍Struts2框架的特征,包括MVC 架构、强大的标签库、拦截器、数据验证、国际化支持以及灵活的配置等。

一、MVC架构Struts2采用了MVC(Model-View-Controller)架构,将应用程序的业务逻辑、数据模型和用户界面分离。

这种架构使开发者能够更好地组织代码、提高代码的可维护性,并能够更容易地进行代码重用和测试。

在Struts2中,Model代表数据模型,可以是POJO(Plain Old Java Object)或者是与数据库交互的实体类;View代表用户界面,通常是JSP页面;Controller则负责处理用户请求、调用业务逻辑,并将处理结果返回给用户。

二、强大的标签库Struts2提供了丰富的标签库,使开发者能够更轻松地构建用户界面。

这些标签库包括表单标签、数据展示标签、控制流标签等,可以大大简化页面开发的工作量。

例如,开发者可以使用Struts2的表单标签库来生成表单,并自动处理表单的数据绑定、验证和错误提示。

这样,开发者无需手动编写大量的HTML和JavaScript代码,能够更快速地完成表单开发。

三、拦截器Struts2的拦截器是其核心特性之一,可用于在请求到达Controller之前和之后执行一些通用的处理逻辑,如日志记录、权限验证、异常处理等。

开发者可以通过配置拦截器栈,将多个拦截器按照特定的顺序组合起来,实现复杂的请求处理流程。

拦截器的使用使得开发者能够将通用的处理逻辑从业务逻辑中分离出来,提高了代码的可维护性和重用性。

同时,Struts2还提供了许多内置的拦截器,如参数封装拦截器、文件上传拦截器等,方便开发者处理不同类型的请求。

四、数据验证在Web应用程序中,数据验证是一项重要的任务。

Struts2提供了强大的数据验证机制,开发者可以通过简单的配置实现对表单数据的验证。

基于Struts2结构的在线考试系统设计与实现

基于Struts2结构的在线考试系统设计与实现

基于Struts2结构的在线考试系统设计与实现作者:唐晔来源:《软件导刊》2013年第06期摘要:基于Struts2和J2EE技术框架,结合MySQL数据库,设计并实现了一个基于B/ S 架构的在线考试系统,重点阐述了用户答题模块的设计,并提出了一种系统随机出题的方法。

关键词:在线考试系统;Struts2技术;J2EE;随机出题中图分类号:TP319文献标识码:A文章编号:1672-7800(2013)006-0071-02作者简介:唐晔(1973-),男,遵义师范学院计算机科学与技术系副教授,研究方向为计算机网络。

0引言根据市场需求,网站的开发需要高效,同时考虑到网站的盈利性,则需要降低人力成本和资源成本。

目前,大部分基于Java开发的网站都采用了Struts2的框架结构,并结合MySQL 数据进行开发,以降低开发成本和提高开发效率。

Struts2是基于MVC模式的开发,Struts2框架为程序员的开发带了极大方便,同时也更好地满足了用户的多样化需求。

本系统是基于Struts2开发的一个在线考试系统,同时采用了J2EE技术,结合Mysql数据库,设计并实现了一个基于B/S架构的网上考试系统,并提出了一种系统随机出题的方法。

1系统总体设计使用在线考试系统的用户必须是注册用户,使用时要先登录。

当用户选择某种测试后,系统会自动给出题目进行考试。

考试开始时,系统自动计时,用户必须在规定的时间内完成考试,否则时间到了则不能答题。

用户答完题后可以直接提交,系统会在用户自主提交或时间超时的情况下对用户所做的题进行评分。

用户信息和试题维护由管理员进行管理,当管理员进入管理时,也需要有一个登录验证功能来验证是否有权限进入管理页面。

管理员可以完成录入、修改、添加、删除等功能,还可以把已保存在文本文件里的数据导入到数据库中。

本系统总体结构如图1所示。

2系统设计2.1数据表设计根据系统功能要求,构建如下数据表,其中有下划线的是主键:用户表(用户标号、登录名、密码、邮箱、登录状态):建立用户的基本情况,主要用于登录网络考试系统;管理员表(管理员标号、登录名、密码、登录状态):建立管理员的基本情况,主要用于登录数据库管理;选择题表(编号、题干、选项1、选项2、选项3、选项4):提供考试题中的选择题,其中“选项1”为正确答案;填空题表(编号、题干、答案):提供考试题中的填空题;套题记录表(编号、题目类型、年号、月号):用于记录套题包含的选择题和填空题,该表信息在录入试题时由系统自动填写;成绩表(用户标号、考试时间、成绩):记录用户考试成绩。

第一章Struts2系统架构

第一章Struts2系统架构本章主要介绍的Struts2的系统架构,让学员对Struts2框架在结构上有一个整体概念为我们以后更加详细的学习Struts2打下一个良好的基础。

第一节Struts2的系统架构及处理的主要流程1.Struts1简介Struts1的历史比较久远,Struts1是世界上第一个发布的MVC框架,目前市场率最高的框架。

下面将简单讲解Struts1的基本架构。

图1-1显示了Struts1的数据流图。

图1-1 Struts1数据流图Struts1框架以ActionServlet为核心控制器,ActionServlet获得客户端请求。

然后ActionServlet根据请求信息调用匹配的业务逻辑控制器(Action)处理用户请求。

请求处理完成后,业务逻辑处理器调用相应的JSP显示处理结果。

Struts1框架实现了MVC模式,下面我们了解一下Struts1是怎样实现MVC模式的。

Struts1框架中并没有提供Model层的实现。

在实际的企业应用中,通过一个JavaBean 实现一个业务逻辑,在功能比较复杂的应用中也采用EJB或WebService服务实现业务逻辑。

Struts1框架的View层采用JSP实现。

Struts1提供了大量丰富的标签库。

这些标签库与Struts的组件兼容的特别好,可以很容易的输出控制器的处理结果。

Struts1框架中,控制器是它的核心,Struts1的控制器由两部分组成:核心控制器(ActionServlet)和业务逻辑控制器(Action),核心控制器由Struts1框架提供。

业务逻辑控制器需要由用户自己继承Struts1框架提供的Action类实现。

在Struts1框架中,JSP/Servlet耦合非常紧密。

这种紧密关系促使Struts1存在各种缺陷。

下面我们分析一下Struts1中存在的缺陷。

●支持的表现层技术单一●耦合性强,不便于单元测试●代码依赖于Struts1 API,侵入性强2.WebWork简介WebWork出自于开源组织opensymphony,实际的创始人是Java领域的名人Rickard Oberg(JBoss和XDoclet的作者)。

基于Struts2与Mybatis框架下收费系统设计与实现

基于Struts2与Mybatis框架下收费系统设计与实现摘要:在b/s开发模式中,最常用的开发模式是mvc开发设计模式,而struts2正是mvc很好的体现,本文利用struts2框架与mybatis框架的设计模式,在理论上实现了业务逻辑、控制和界面显示的分离带来便利性,提高了开发效率。

关键词:mvc设计模式;struts2框架;mybatis中图分类号:tp311.52 文献标识码:a文章编号:1007-9599 (2013) 05-0000-021引言目前很多公司规模不断扩大,人员越来越多,部门随之增加,后勤部门为了方便管理整个公司的收支情况,必须对每一个部门的收支情况进行更快更直观的统计分析,在这种情况下不得不借助计算机技术进行管理。

这个系统就是针对后勤管理部门对整个公司的各个部门的收支情况统计分析的信息化系统。

在传统的统计分析中,后勤人员首先必须去各个部门找到负责人签字确认,然后才能进行统计,最后交到财务进行核算。

这一系列过程,其具有周期长、效率低、不及时的特点。

本系统开发解决了这一问题,使后勤人员从繁杂的工作中解脱出来,提高了工作效率。

同时也解决了各部门负责人现场签字的问题。

随着信息技术以及网络技术的迅速发展。

很多管理系统使用b/s架构进行管理开发,因为在b/s架构组件开发中,整个系统利用browse作为最终用户界面,这种解决方案也成为企业软件开发的方向,例如j2ee的提出使这种架构更加成熟,使b/s模式更加成熟。

在b/s开发模式中,最常用的开发模式是mvc 开发设计模式,struts2是mvc很好的体现,本文主要是使用struts2与mybatis框架进行设计开发,在理论上实现了业务逻辑、控制和界面显示的分离,它的提出对web 的应用开发具有重要意义,本系统开发模式由图一所示:图1系统开发模式1.1struts框架。

struts2是一项开放源码项目,它为web应用提供了模型-视图-控制器mvc框架,特别适用于开发大型可扩展的web应用项目。

JavaWeb目前主流比较成熟的框架以及正在兴起的框架

JavaWeb⽬前主流⽐较成熟的框架以及正在兴起的框架成熟的框架介绍根据RebelLabs,也是在线Java⽤户组(虚拟JUG)的媒体盟友所进⾏的调查,2018年最佳Java框架的阵容如下:Hibernate 框架Hibernate 是⼀种ORM框架,全称为 Object-Relative Database-Mapping,在Java对象与关系型数据库之间建⽴某种映射,以实现直接存取Java对象(POJO)。

ORM框架是⼀种不同与MVC的另⼀种思想框架,适⽤范围也与MVC截然不同。

使⽤JDBC连接来读写数据库,我们最常见的就是打开数据库连接、使⽤复杂的SQL语句进⾏读写、关闭连接,获得的数据⼜需要转换或封装后往外传,这是⼀个⾮常烦琐的过程。

这时出现了Hibernate框架,它需要你创建⼀系列的持久化类,每个类的属性都可以简单的看做和⼀张数据库表的属性⼀⼀对应,当然也可以实现关系数据库的各种表件关联的对应。

当我们需要相关操作是,不⽤再关注数据库表。

我们不⽤再去⼀⾏⾏的查询数据库,只需要持久化类就可以完成增删改查的功能。

使我们的软件开发真正⾯向对象,⽽不是⾯向混乱的代码。

我的感受是,使⽤Hibernate⽐JDBC⽅式减少了80%的编程量。

Struts2框架本词条缺少信息栏、名⽚图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!Struts2以WebWork优秀的设计思想为核⼼,吸收了 Struts框架的部分优点,提供了⼀个更加整洁的MVC设计模式实现的Web 应⽤程序框架Struts2以WebWork优秀的设计思想为核⼼,吸收了 Struts框架的部分优点,提供了⼀个更加整洁的MVC设计模式实现的Web 应⽤程序框架。

Struts2引⼊了⼏个新的框架特性:从逻辑中分离出横切关注点的拦截器、减少或者消除配置⽂件、贯穿整个框架的强⼤表达式语⾔、⽀持可变更和可重⽤的基于MVC模式的标签API, Struts2充分利⽤了从其它MVC框架学到的经验和教训,使得 Struts2框架更加清晰灵活。

四层结构设计

本平台采用业界流行的四层结构设计。

此四层分别为“表现层”、“服务层”、“业务逻辑层”以及“数据访问层”。

以下分述每层的具体含义和技术使用情况。

“表现层”作为用户与系统之间的接口,其重要性体现在能否提供便捷且良好的用户体验。

本平台将采用目前十分流行的Ajax技术来实现客户端与服务器端之间的无刷新交互,除了提供能与桌面应用程序相媲美的用户体检外,还能提高平台的整体运作速度,大量减少用户的等待时间。

“表现层”的另一个主要作用是与“服务层”的接合,而此处将使用业界首选的Struts2框架来实现。

Struts2前身为Struts,是一个有将近十年发展历程,拥有深厚沉淀与用户群的框架,而作为一个全新的升级版,其功能性和易用性方面与其它框架相比,拥有着很大的优势。

“服务层”将基于SOA(面向服务的架构)这一理念来进行设计。

SOA是一个组件模型,它将系统划分为不同功能单元(称为服务),通过定义良好的接口和契约将这些功能单元联系起来。

接口是采用中立的方式进行定义,它是独立于实现服务的硬件平台、操作系统和编程语言。

这使得构建在各种这样的系统中的服务可以一种统一和通用的方式进行交互。

此处使用业界首选的Spring框架来实现“服务层”对“表现层”的依赖注入,以实现松耦合的目的。

这也使得“服务层”更独立、更易于扩展与维护。

“业务逻辑层”是整个平台业务功能的集中处,也是现在已成为规范的面向对象编程的核心意义所在。

通过对业务功能的建模,抽象出业务逻辑,并透过本平台实现业务的整合与自动化,藉此提高工作效率。

“数据访问层”是与存储介质(主要是数据库)打交道的层次。

此处同样采用业界首选的Hibernate框架来实现本平台与存储介质之间的无缝接合,提高两者之间的传输速度,优化存储介质的使用性能,最终达到平台整体性能的提升。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2)不再在Action组件类中耦合有多种HTTP有关的参数对 象,有助于单元测试。
(3)支持多种不同形式的表现层实现技术
(4)拦截器组件技术,它其实是对面向切面编程AOP的具 体应用
(5)提供有表单数据验证、表单类型转换、国际化、文件 上传、下载等方面的支持
注:
由于J2EE目前倡导轻量级的服务器技术及POJO编程实现,
因此Struts1.X的系统架构背离了J2EE的发展方向。而
Struts2更好地适应了J2Байду номын сангаасE技术发展的方向。
2021/3/6
3
3、Struts2 第2部分 框架的系 统架构
第1部分
第3部分
第5部分
2021/3/6
第4部分
4
4、Struts 2框架的控制器组件是Struts 2框架的核心 5、在web.xml中配置出前端控制器FilterDispatcher组件
2021/3/6
7
7、拦截器组件及拦截器组件链 (1)什么是拦截器组件
(2)拦截器技术的实现原理
2021/3/6
8
(3)为什么要应用拦截器(代码分离、扩展系统功能)
应用拦截器可以实现代码分离、扩展系统功能(可以 用插拔的方式将功能注入到Action中);
并且可以实现功能分解(把一个大的问题分解成多个 小问题分别处理);
2021/3/6
5
1.什么是传统机
械传按统键的设机计械?按键设计是需要手
动按压按键触动PCBA上的开关
按传键统来机实械现按功能 式键。结按构 层P图 :
的传一统种机设械计按方键 设计要点:
键 CB A开
1. 合 理 的 选 择 按键的类型,

尽量选择平头

类的按键,以
防按键下陷。
6、Struts2入门示 例(体验Struts2 的主要特性)
Struts2 框架及系统架构
在本讲重点了解如下知识点 系统架构及特点 前端请求控制器组件 后端业务控制器组件 环境搭建及入门示例 拦截器组件及应用
2021/3/6
1
1、Struts2框架是对WebWork框架升级的结果
(1)Struts2框架是原有的Struts项目和WebWork2项目的合 并版本
拦截器是用Java中的动态代理技术实现的。 (4)拦截器在Struts2中的应用
对于Struts2框架而言,正是大量的各种内置的拦截器 完成了大部分操作。
拦截器可以完成很多方面的功能----如校验、属性封装、
20安21/3/全6 、日志等等
9
8、设计和编程实现一个自定义拦截器组件 (1)功能要求(Session过滤用的拦截器)
(2)自定义拦截器程序代码示例(一个无状态Java类)
2021/3/6
10
(3)在struts.xml文件中定义和引用该拦截器组件
(4)测试该拦截器组件的拦截效果
2021/3/6
11
并集成了这两大流行的MVC框架的各自的优点,它是 对WebWork框架的升级,而不只是对Struts框架的升级。
(2)Struts 2框架提供了更灵活的控制层和ActionForm表单 包装组件技术实现
与Struts2框架有关的组件主要有Action组件、拦截器 组件、本地资源包ResourceBundle、本地语言环境识别 Locale和XML等。
(3)Struts2框架是在WebWork2基础上扩展而产生的
与原有的Struts框架相比,它的MVC结构更完整,并 且可以与FreeMaker等表现层模板工具很好地合作。
2021/3/6
2
2、Struts2框架与原有的Struts框架相比,它的MVC结构更完 整
(1)ActionForm和Action组件类都可以是POJO类,并应用 IoC和DI等技术分离控制层和表现层之间的藕合关系。
相关文档
最新文档