博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
J2EE的体系结构和MVC设计模式
阅读量:2354 次
发布时间:2019-05-10

本文共 1114 字,大约阅读时间需要 3 分钟。

J2EE规范提出了自己的n-tiers结构。

在普通应用中,我们大多会按如下方式划分:

表示层:管理用户的请求,对用户的请求做出相应的响应,并向用户显示出相应信息。Struts框架在表示层可以对用户的请求进行处理,有控制器可以调用下层业务逻辑,可以对异常进行处理,以及对用户输入的信息进行验证。表示层还可以选择Velocity、JSF等。

业务逻辑层:负责业务逻辑的实现。Spring框架在业务逻辑层可以处理应用程序的业务逻辑、业务校验、对事务进行管理、管理业务层中各个对象的依赖关系,执行相应的业务程序来实现业务服务。

持久层:负责对数据库的访问。Hibernate框架在持久层为JAVA提供了面向对象的持久化机制和查询服务。可以采用面向对象的方法存储、更新、删除数据库的记录,以及查询数据库信息。持久层还可以选择ibatis等

数据层:用来存放业务数据,供上层调用,主要指一些数据库系统。

 

经典的ssh(Struts、Spring、Hibernate)这3个框架功能各不相同,根据Web应用的功能层次,可将这3个框架应用到不同的层次,最终来实现各层的功能以完成集成。

Struts应用在表示层、 Spring应用在业务逻辑层、Hibernate在持久层。

 

 

说到J2EE的分层结构,就不得不说说MVC设计模式。

MVC设计模式使“模型”、“视图”、“控制”相分离,降低了组件之间的耦合性,同时“模型”组件可以被系统中的其他组件重复利用,提高了代码的可重用性。

模型Model:独立的组件、或者开发模块。在应用中负责业务逻辑的处理。模型将业务逻辑封装成独立的模块,而且提供给不同的开发者使用。而且这些独立的模块可根据需要进行组装。

视图View: 代表和用户交互的界面。视图负责 显示从模型中采集的数据或用户输入的数据 和 请求的传递,将这些数据和请求传递给控制器和模型。

控制器Controller:负责将视图的需求分发给视图所依赖的所有模型,并在模型做了改变后,把这种改变分发到模型对应的所有视图中,视图中的内容会随之改变。一个视图可以依赖多个模型,一个模型可以对应多个视图。

总之,MVC设计模式的原理是:当有事件发生时,View将客户端请求发送给Controller,Controller将会改变Model或View。如果Controller改变了Model的数据,所有依赖Model的View都会被Controller通知,View会对Model进行状态查询,Model会对状态查询做出相应并通知视图进行改变。同样,如果Controller改变了View,View会从依赖的Model中获取相关数据并刷新View本身。

转载地址:http://gkytb.baihongyu.com/

你可能感兴趣的文章
python range 与xrange的区别
查看>>
算法-最长递增子序列
查看>>
最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离
查看>>
回文字符序列
查看>>
inline函数必须在头文件中定义吗?
查看>>
内存泄漏检查工具valgrind使用方法
查看>>
Solution of Codility
查看>>
java解析XML的四种方式及比较
查看>>
单例模式(java)详细
查看>>
策略模式(java)
查看>>
java线程中信号量Semaphore类的应用
查看>>
如何设置CentOS为中文显示
查看>>
Nginx配置
查看>>
php-fpm配置
查看>>
Centos 系统时间与当前时间相差和时区解决办法
查看>>
Linux下如何进行FTP设置
查看>>
linux之LVM操作案例
查看>>
由于CentOS的系统安装了epel-release-latest-7.noarch.rpm 导致在使用yum命令时出现Error: xz compression not available问题。
查看>>
php中抽象类和接口的概念与区别
查看>>
php抽象类和接口
查看>>