ejb与javabean的区别总结:http://hi.baidu.com/hbh20061/blog/item/b3d04cd8e1eb612411df9b27.html
EJB没用过,javabean本来我觉的我明白的差不多了,可是一看这篇文章,傻眼了,心里拔凉拔凉的,好多地方都看不明白,所以发帖,大家都谈谈自己的看法咯,一起提高!我先献丑了:
javabean:我浅陋的认为是封装了数据库操作(实体、数据访问)。
ejb:没用过,死记住它是可分布式的..其它不明白
EJB没用过,javabean本来我觉的我明白的差不多了,可是一看这篇文章,傻眼了,心里拔凉拔凉的,好多地方都看不明白,所以发帖,大家都谈谈自己的看法咯,一起提高!我先献丑了:
javabean:我浅陋的认为是封装了数据库操作(实体、数据访问)。
ejb:没用过,死记住它是可分布式的..其它不明白
解决方案 »
- 关于session理解
- 跪求web开发的详细过程
- document.location.search 如何使用呢??大家帮忙给个例子如何?
- jsp如何生成新闻列表
- 关于POST的困惑
- 请教,如何将网页文字滚动起来,就像本页上面的文字一样呢?
- a href="dingou-fangshi.jsp#1 #是什么意思啊?
- 还是JSP+TOMCAT5+MySQL的数据库连接问题:我把环境配置贴出来,请大家帮忙看一下
- No getter method for property xxx of bean 前辈快来帮我
- 关于匿名内部类中方法的问题!!!
- Html workshop使用问题
- java mail 发送邮件的类,在servlet中调用,出错
实体bean 主要是完成数据库 建表
通过ejb 注释 一般@Entity 这样的
然后设置关系 通过相关的数据库链接文件(要用到外围配置文件*.properties)
可以在数据库 通过ejb 自己的相关操作 在数据库中创建表
比如:@Entity//实体bean注释
@Table(name="userinfo")//生成表的名称
public class UserInfo implements Serializable//序列化{
private int userid;
private String username;
//一般会需要一个无参构造
public UserInfo(){
}
@Id//id表示主键
@GeneratedValue(strategy=GenerationType.IDENTITY)//自增
public int getUserid() {
return userid;
} public void setUserid(int userid) {
this.userid = userid;
} @Column(length=50)//长度
public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
}
}可以看到一般都是这样的
还有会话bean
有无状态 和 有状态 2种
主要是发送消息的
这个少用
希望对你有帮助
^_*
你可以看看
两者是完全不同的
JavaBean是一个组件,而EJB就是一个组建框架
JavaBean面向的是业务逻辑和表示层的显示,通过编写一个JavaBean,可以将业务逻辑的事件和事务都放在其中,然后通过它的变量属性将所需要的内容在表示层传递显示。
EJB是部署在服务器上的可执行组建或商业对象。EJB有一个部署描述符,通过这个部署描述符可以对EJB的属性进行描述。EJB不和表示层交互。
通常,对于简单的服务器端应用来说,使用JavaBean是很不错的选择。虽然对于复杂的服务器端应用来说,使用JavaBean同样可以达到相同的效果,但这么做,所有底层的实现都必须手工来重新编写。而EJB不必用户关心它的底层操作,而只要关心它的外部实现即可。
的确,利用JavaBean来与EJB共同完成实现,是十分常见的。从概念层上理解就是:首先,EJB是指运行在EJB容器中的JavaBean。Tomcat是Web容器的参考实现。一个完整的JavaEE服务器应该包括Web容器和EJB容器。
其次,Web容器中无法运行EJB,同时所有的JavaBean都是在服务器端运行的。如果有在客户端的话,就变成C/S结构了。
目前来说除非需要分布式处理,不然基本上不需要考虑EJB。Spring能帮你处理好除分布计算之外的一切。
用JavaScript来进行服务器调用的话,属于Ajax的范围了。
至于购物车。一般来说有几种方法,一种是EJB中的有状态SessionBean。一种是使用HttpSession保存。还有就是自己建设一个对象池来处理。 JavaBean是领域模型的具体化类,保存了信息和业务。只有set、get方法的JavaBean是失血模型。现在来说一般多少不太欢迎这种东西。把本属于领域对象的业务逻辑都丢掉了。
实际上现在的JavaEE系统分这么几个层。
表现层(Struts、JSF等)+应用层(处理业务,可以是JavaBean也可以是EJB)+持久层(JDBC、Hibernate)。
不要在Struts的Action类中写业务代码,那是反模式。不然日后需要修改的时候很麻烦的。Action中只有流程指向和对应用层的调用。从服务其方面考虑就是:JavaBean 和 Server Bean(通常称为 Enterprise JavaBean (EJB))有一些基本相同之处。它们都是用一组特性创建,以执行其特定任务的对象或组件。它们还有从当前所驻留服务器上的容器获得其它特性的能力。这使得 bean 的行为根据特定任务和所在环境的不同而有所不同。 这开辟了巨大商机。因为 JavaBean 是与平台无关的,所以对于将来的解决方案,供应商可以轻易向不同用户推出其客户机方的 JavaBean,而不必创建或维护不同的版本。 这些 JavaBean 可以与执行商业功能(例如订购、信用卡处理、电子汇款、存货分配、运输等)的 EJB 配合使用。这里有巨大潜力,而这正是组件代理(WebSphereApplication Server 企业版)设计提供的那种潜力。 JavaBean 是一种组件,它在内部有接口或有与其相关的属性,以便不同人在不同时间开发的 bean 可以询问和集成。可以构建一个 bean,而在以后构造时将其与其它 bean 绑定。 这种过程提供了先构建,然后重复使用的方法,这就是组件的概念。可以将这种单一应用程序部署成独立程序、ActiveX组件或在浏览器中。 JavaBean 因其外部接口(即属性接口)而与纯对象不同。这种接口允许工具读取组件要执行的功能,将其与其它 bean 挂钩,以及将其插入其它环境。 JavaBean 设计成对单一进程而言是本地的,它们在运行时通常可视。这种可视组件可能是按钮、列表框、图形或图表 - 但这不是必需的。 可执行组件 Server Bean 或 EJB 是部署在服务器上的可执行组件或商业对象。有一个协议允许对其进行远程访问或在特定服务器上安装或部署它们。有一系列机制允许它们将服务安全性、事务行为、并发性(由多个客户机同时访问的能力)和持久性(其状态可以保存多久)的主要方面授权给 EJB 服务器上其所在的容器。 当安装在容器中时,它们获得各自的行为,该行为提供不同质量的服务,因此,选择正确的 EJB 服务器至关重要。这正是 IBM WebSphere 企业版的优势所在
·都有setter/getter
·不会出现public static String usName = "" 之类的变量,都是私有变量。
·还有构造方法之类的约定,如果有版本的还会有全局唯一类值类似UUID
·其实EJB与JavaBean根本就不是一个级别,一个是服务构件型是一整套的体系其中含有JavaBean的概念,另一个就理解为是个内容载体。·至于持久操作,javaBean是一小堆数据我需要创造一些其它持久逻辑来把它塞到数据库,当然也有现成,的如:SSH。
·EJB 基于annotation使用JPA就可搞定。 以上紧个人观点,欢迎修改。
同时有容器去处理安全性、并发性的处理
但是EJB是重量级的,在开发和部署上复杂度高,所以现在通过轻量级的开发框架来替代EJB