kshen转Struts+Hibernate模式: jsp->servlet->session bean->DAO->Hibernate->Database 各层面的功能及其实现

转载 2006年06月12日 09:54:00
1、JSP->Servlet
根据MVC模式的设想,JSP仅仅用来显示与用户交互的信息。在纯JSP年代,我们利用Attribute来传递来自Servlet等后台的结果和Servlet需要的信息。引入Struts之后,我们可以把对Attribute的操作交给Struts来完成,纽带是ActionForm,对ActionForm的操作理所当然比对Attribute的操作来得更加清晰简单。
而页面的显示编码也由于Struts Tag的引入更加简洁明快,大部分的JSP页面将看不到以前大把的<% %>了。
Struts的Validator更是把大量的<script> </script> 也节省下来了。
2、Servlet(Action)
Struts的Action相当于以前的Servlet。我们以前用Servlet完成数据操作(input/output from database)和页面流程的控制,现在Action同样可以完成而且做得更好。Action Map更加清晰的反映了流程。
3、DAO->Hibernate
对数据库的操作分解出来分为2类,1是数据操作(INSERT/UPDATE/DELETE)2是读取数据(SELECT)。对数据的操作,我们基本都是在单表(即实体)上完成的(虽然有机会实现多表操作,但我们基本上都放弃不用)。在JDBC年代,我们必须老老实实写“Insert into table (...) values (....);update table set ...=xxx;”这种原始的SQL语句,Hibernate现在可以替我们做这些原始的事情了,我们只需要对实体的属性(字段)赋值,然后指挥hibernate把结果保存就可以了。同样的,读取操作我们绝大多数时候也不再需要写SELECT了。
当然这些事情BMP/CMP也可以做,但我觉得用hibernate做起来更简单,更容易让人理解。(做CMP如果没有工具的帮助会非常痛苦,而Hibernate就简单多了),至于大家说的性能问题我没有对比。
我们利用DAO把对实体的操作封装起来,操作时直接调用DAO中的方法,而不需要跟Hibernate底层的东西打交道。
4、session bean->DAO
Session bean存在的意义在于将DAO提供的对实体的操作封装起来,以门面模式(facade)提供给Servlet使用。这样做的好处有3个,1是可以把一些逻辑加以整合,比如我们增加一个用户时,需要同时操作3个表-用户表、用户住址表、用户生日表,Session bean负责对3个DAO的操作,而我们只需要对Session bean的一个接口操作即可。2是可以隐藏一些细节问题,比如DAO中有对数据进行删除的操作,但我们不希望一些设计人员知道看到功能(这些功能只提供给小部分开发人员使用),那么就可以用Session Bean来保护DAO。3是可以向容器外提供接口,所谓容器外是指另一个应用服务器或者客户端程序,它们无法直接访问DAO,但可以通过SESSION BEAN来提取某些数据或者执行某些操作。
5、Servlet->Session bean
至此,我们应该可以清晰地知道Servlet里面可以做什么了。

Struts+Hibernate模式: jsp->servlet->session bean->DAO->Hibernate->Database 各层面的功能及其实现

1、JSP->Servlet根据MVC模式的设想,JSP仅仅用来显示与用户交互的信息。在纯JSP年代,我们利用Attribute来传递来自Servlet等后台的结果和Servlet需要的信息。引入St...
  • pbMaster
  • pbMaster
  • 2004年09月28日 21:06
  • 3238

kshen转文件编辑器 vi

目录1、关于文本编辑器;2、vi 编辑器;3、vi 编辑器的使用方法;   3.1 如何调用vi ;3.2 vi 的三种命令模式;3.3 文件的保存和退出;3.4 光标移动;3.5 插入模...
  • kshenalphalo2002
  • kshenalphalo2002
  • 2007年02月21日 10:33
  • 410

计算机网络OSI模型的各层及主要功能

计算机网络体系结构是计算机网路层次结构模型及各层协议的集合。ISO组织定义了网络互连的七层框架--OSI(open system internetwork),即开放系统互连。OSI是一个概念性的参考模...
  • kakashi8841
  • kakashi8841
  • 2010年01月02日 21:09
  • 8815

OSI与TCP/IP各层的结构与功能,都有哪些协议

(1)OSI七层模型 OSI中的层 功能 TCP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 表...
  • GS_008
  • GS_008
  • 2016年03月25日 00:24
  • 4618

TCP/IP每层对应的协议及功能

应用层   ·DHCP(动态主机分配协议)   · DNS (域名解析)   · FTP(File Transfer Protocol)文件传输协议   · Gopher (英文原义:The I...
  • hanjiaqun
  • hanjiaqun
  • 2016年09月19日 11:30
  • 1387

Servlet-实现文件下载功能

注意:这里我把一张名为“招IOS程序员”的jpg图片放到了工程的src目录下,也就是工程运行后的WEB-INF/classes目录下。/** * @author CSDN_LQR * @TODO ...
  • CSDN_LQR
  • CSDN_LQR
  • 2016年10月15日 09:42
  • 236

OSI与TCP/IP各层的结构与功能

TCP/IP四层模型 TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。TCP/IP协议簇分为四层,IP位于协议簇的第二层(对应OSI的第三层),TCP位于协议簇的第三层(对...
  • gongzhuxiaoxin
  • gongzhuxiaoxin
  • 2016年08月25日 20:15
  • 998

网络各层功能职责——计算机网络

OSI的七层网络协议体系结构的概念清楚,理论也较为完整,但是它既复杂也不实用。 OSI七层协议,由底向上依次是:物理层、数据链路层、网络层、运输层、会话层、表示层、应用层。TCP/IP体系结构则不同...
  • TommyZht
  • TommyZht
  • 2015年05月25日 10:22
  • 1344

Struts+Hibernate实现分页功能

 学过Hibernate的程序员都知道,在Hibernate中为用户准备好了分页数据库的功能。也就是两句话:query.setFirstResult(pageStartRow);query.setMa...
  • raozhiyong11
  • raozhiyong11
  • 2010年01月16日 19:22
  • 2447

五层协议及每层主要功能

一、物理层 透明传送比特流 二、数据链路层数据链路层是负责接收IP数据报并通过网络发送之,或者从网络上接收物理帧,抽出IP数据报,交给IP层。 传输有地址的帧以及错误检测功能 。 一、流量...
  • goodstuddayupyyeah
  • goodstuddayupyyeah
  • 2017年04月19日 23:22
  • 1362
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:kshen转Struts+Hibernate模式: jsp->servlet->session bean->DAO->Hibernate->Database 各层面的功能及其实现
举报原因:
原因补充:

(最多只允许输入30个字)