JavaWeb的几种设计模式
原文:http://blog.csdn.net/yue7603835/article/details/7479855
Java Web开发方案有多种可供选择,这里列举一些经典的开发模式进行横向比较,为Java Web的开发模式选择提供参考。除此之外还有好多方案(如Tapestry和Wicket)。
JSP+JAVABEAN开发模式:
特点:该模式将业务逻辑与页面表现进行分离,在一定程度上增加了程序的可调试性和维护性。
缺点:页面将控制与显示集于一身。
结论:简单,适合小型项目的快速构建与运行。
JSP+Servlet+JavaBean开发模式:
特点:JSP作为视图,来表现页面;Servlet作为控制器,控制程序的流程并调用业务进行处理;JavaBean封装了业务逻辑。遵循了MVC设计模式。
缺点:没有统一的开发框架导致开发周期长。
Struts开发方案:
特点:成熟的MVC开发框架。
构成:控制器:ActionServlet 组件:Struts框架的中央控制器。
RequestProcessor 组件:每个子模块都具有的请求处理器。
Action 组件:业务代理,它将调用模型进行一项具体的业务逻辑处理。
视图:主要由JSP页面构成
还包括HTML文档;标准标签库(JSTL)和Struts标签库;
JavaScript脚本和CSS样式;
多媒体文件;
消息资源文件;
ActionForm类。
模式:通常在Structs中使用其他模型组建来实现业务逻辑。
如:JavaBean技术、EJB技术、Hibernates设计模式。
结论:对于一些大型的项目,Struts框架会提高开发效率,并对后期的维护有很大好处。
Spring开发方案:
特点:拥有IOC和AOP两种先进的技术为基础,完美的简化了企业级开发的复杂度,
是一个理想的Web程序框架。
构成:核心模块:实现了IOC模式,包含BeanFactory类负责对JavaBean的配置与管理。
上下文模块:继承BeanFactory类,
添加了事件处理、国际化、资源装载、透明装载以及数据校验等功能,
提供了框架式的Bean访问方式和很多企业级功能。
如:JNDI访问、支持EJB、远程调用、继承模板框架、E-mail和定时任务调度等。
AOP模块:提供了用标准Java语言编写的AOP框架,
使应用程序抛开EJB的复杂性,但拥有传统EJB的关键功能。
DAO模块:提供了JDBC的抽象层,并且提供了对声明式事物和编程式事务的支持。
Web模块:建立在上下文模块基础之上,提供了Servlet监听器的Context和Web应用的上下文。
对现有的Web框架如:JSF、Tapestry、Struts等提供了集成。
O/R映射模块:提供了对现有ORM框架的支持如Hibernate。
Spring MVC框架:建立在核心模块之上,嫩够适应于多种多视图、模板技术、国际化和验证服务,
实现控制逻辑和业务逻辑清晰的分离。
Struts+HIbernate开发方案:
特点:利用Struts的MVC设计模式,与Hibernate持久化对象组成的开发方案。
Struts+Spring+Hibernate开发方案:
特点:Struts负责表示层,
Spring负责逻辑层的业务,
Hibernate持久层中数据库的操作,组成的开发方案。
JavaWeb的几种设计模式的更多相关文章
- javaweb学习总结(二十一)——JavaWeb的两种开发模式
SUN公司推出JSP技术后,同时也推荐了两种web应用程序的开发模式,一种是JSP+JavaBean模式,一种是Servlet+JSP+JavaBean模式. 一.JSP+JavaBean开发模式 1 ...
- JavaWeb学习 (二十)————JavaWeb的两种开发模式
一.JSP+JavaBean开发模式 1.1.jsp+javabean开发模式架构 jsp+javabean开发模式的架构图如下图(图1-1)所示
- javaweb(二十一)——JavaWeb的两种开发模式
一.JSP+JavaBean开发模式 1.1.jsp+javabean开发模式架构 jsp+javabean开发模式的架构图如下图(图1-1)所示
- 设计模式学习笔记(详细) - 七大原则、UML类图、23种设计模式
目录 设计模式七大原则 UML类图 设计模式分类 单例模式 工厂设计模式 简单工厂模式 工厂方法模式(使用抽象类,多个is-a) 抽象工厂模式(使用接口,多个like-a) 原型模式 建造者模式 适配 ...
- Java开发中的23种设计模式详解
[放弃了原文访问者模式的Demo,自己写了一个新使用场景的Demo,加上了自己的理解] [源码地址:https://github.com/leon66666/DesignPattern] 一.设计模式 ...
- Java开发中的23种设计模式详解(转)
设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...
- 为什么GOF的23种设计模式里面没有MVC?
GoF (Gang of Four,四人组, <Design Patterns: Elements of Reusable Object-Oriented Software>/<设计 ...
- 为什么MVC不是一种设计模式
http://damoqiongqiu.iteye.com/blog/1949256 ---比较Backbone和Ext4.x在MVC实现上的差异 大漠穷秋 前言 圣人云:不想做妈咪的小姐不是好码农. ...
- 一个优秀的Unity3d开发者必备的几种设计模式
Unity脚本编程 众所周知,unity的编程属于脚本化,脚本没有一个具体的概念跟架构, 导致在项目过程中,经常出现哪里需要实现什么功能,就随便添加脚本, 结果,就造成了一片混乱,不好管理. 更有甚者 ...
随机推荐
- elasticsearch 基础 —— ReIndex
Reindex会将一个索引的数据复制到另一个已存在的索引,但是并不会复制原索引的mapping(映射).shard(分片).replicas(副本)等配置信息. 一.reindex的常用操作 1.re ...
- ActiveMQ修改连接的用户名密码
安装目录下conf/activemq.xml 添加如下内容: <plugins> <simpleAuthenticationPlugin> <users> < ...
- 手写Mybatis,还需要后面调整下
参考博客 https://blog.csdn.net/Kurozaki_Kun/article/details/81482212 个人理解 读取Mybatis配置文件 数据库连接信息 读取Mapper ...
- springBoot+mysql+mybatis demo [基本配置] [遇到的问题]
springBoot+mysql+mybatis的基本配置: 多环境 application.properties spring.profiles.active=dev spring.applicat ...
- json序列化反序列
json只能处理简单的数据类型:字典 列表等... 文件只能存字符串和二进制 序列化:把内存的对象变为字符串 反序列化:将字符串变回为内存对象
- js手机号码中间用星号代替。银行卡后四位之外改为星号
如手机号码13123456789,中间四位用'*'代替 var phone='13123456789' 方法1(字符串的截取): ,)+); 方法2(正则表达式): })\d{}(\d+)/,&quo ...
- 威胁预警|Solr velocity模板注入远程命令执行已加入watchbog武器库,漏洞修补时间窗口越来越短
概述 近日,阿里云安全团队监测到挖矿团伙watchbog更新了其使用的武器库,增加了最新Solr Velocity 模板注入远程命令执行漏洞的攻击方式,攻击成功后会下载门罗币挖矿程序进行牟利.建议用户 ...
- Python爬虫之抓取豆瓣影评数据
脚本功能: 1.访问豆瓣最受欢迎影评页面(http://movie.douban.com/review/best/?start=0),抓取所有影评数据中的标题.作者.影片以及影评信息 2.将抓取的信息 ...
- keil c51 不能使用:Go to Definition of....的解决方法 STC51
keil c51 不能使用:Go to Definition of....的解决方法 达到的目标如下图所示: 解决方法为 :在工程栏右键单击进入Manage Components ,然后点确定,前提是 ...
- PCB底层打印到热转印纸上 Altium Designer
切记:如果是TopLayer,应该勾选镜像打印(Mirror) 切记:底层Bottom Layer ,不勾选镜像