Java开发web的几种开发模式
Java开发web的几种开发模式
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持久层中数据库的操作,组成的开发方案。
出处:http://blog.csdn.net/yue7603835/article/details/7479855
Java开发web的几种开发模式相关推荐
- Windows Mobile开发应该选择哪种开发语言?
Windows Mobile开发应该选择哪种开发语言?这个问题曾经被问了很多很多次,特别是打算开始学习Windows Mobile开发的朋友.Native Code or Managed Code? ...
- java开发平台普元_java开发平台的两种实现模式
从目前国内主流的java开发平台看,主要有两种实现模式:引擎模式及生成源代码模式.引擎模式比较有代表性的是华丹平台(https://www.huadaninfo.com),生成源代码模式比较有名是的普 ...
- JAVA开发Web Service几种框架介绍
在讲Web Service开发服务时,需要介绍一个目前开发Web Service的几个框架,分别为Axis,axis2,Xfire,CXF以及JWS(也就是前面所述的JAX-WS,这是Java6发布所 ...
- android+rom+bootloader+flash,Android ROM开发(4) bootloader 三种启动模式
Andrew Huang 转载请注明作者及网址 HTC手机中用的bootloader称为HBoot,不知道是不是HTC Bootloader 之意,从官网的源码看这个bootloader不象是u-bo ...
- java se 开发web程序_JDiy快速开发WEB之javaSE环境搭建-初级
大学的时候对web开发很感兴趣,对网页中的动画,对用户注册,对网页中表格填写等等都倍感兴趣.加之又有专业课程编程语言java,因此,对java web产生了浓厚的兴趣,再加之有北京圣思园 风中叶 大师 ...
- android rom 工作,Android ROM开发(4) bootloader 三种启动模式
Andrew Huang 转载请注明作者及网址 HTC手机中用的bootloader称为HBoot,不知道是不是HTC Bootloader 之意,从官网的源码看这个bootloader不象是u-bo ...
- Java中BigDecimal的8种舍入模式
http://www.blogjava.net/wangzc2001/archive/2010/12/17/340988.html
- 原生 APP、Web、混合 APP,三种开发模式有何不同?
前言 原生 App 又称Native App,该开发针对 IOS.Android.Windows 等不同的手机操作系统要采用不同的语言和框架进行开发:无论是从开发难度,价格还是周期来看,原生开发都更复 ...
- 分享Web前端开发常用的6种编程语言及其优势!
Web前端是互联网时代软件产品研发中不可缺少的一种专业研发角色.从狭义上讲,Web前端工程师使用HTML.CSS.Java等专业技能和工具将产品UI设计稿实现成网站产品,涵盖用户PC端.移动端网页,处 ...
最新文章
- html底部导航_松鼠导航 | 优质资源网站荟萃
- SAP SD定价技术分析
- java通过jdbc登陆系统_JDBC模拟登录
- numpy 图片填充_numpy/python中的洪水填充分割图像
- CS中using的使用-以FileStream写入文件为例
- 当SRS遇到K8s:如何实现高可用、回滚与灰度发布?
- ——————————
- MySql学习之组合查询
- 阶段3 1.Mybatis_07.Mybatis的连接池及事务_3 mybatis连接池的分类
- bzoj 2962: 序列操作
- 企业文化之华为和汤森路透
- 惠普打印机驱动服务器系统安装教程,最简单的安装惠普1020打印机驱动的方法...
- 一篇文章搞定支付宝网页支付!
- 如何将多个excel表格合并成一个_如何把两个excel表合并成一个
- 05.Linux 常用命令-网络命令\关机重启命令
- DTMF信号系统的Matlab仿真
- 在centos7 下安装python3.6
- 不是所有产品都适合做亚马逊CPC广告
- 桌面级与企业级硬盘的区别
- ./和../以及/和~之间的区别