1.何谓前端会话Bean?与普通会话Bean有什么区别?
Session Facade 就是Session Bean,只不过颗粒度比较粗,这样客户端就不需要调用好几次服务端的Session Bean,而是调用一次Session Facade就OK了,减少网络远程调用次数。
2.何谓Access Bean?与普通Bean有什么区别?
没有听说过Access Bean。
3.J2EE的优势究竟在什么地方?与Servlet方式相比有何优缺点?各自应该应用于什么场合?
J2EE只是一个规范,包括了Servlet/JSP,JDBC,EJB,.....等等技术。你仅仅用Servlet编程,也可以说是J2EE。
4.实体Bean的优缺点是什么?到底应不应该用?为什么?如果不用,访问数据库的方式有什么?各有什么优缺点?分别适用于什么环境?典型应用是什么?
EJB优点是做的项目合同金额很高,可以卖很多钱(因为大家都觉得很高端,很值钱),如果你仅仅用Servlet/JSP,不用EJB,就卖不了多少钱,一说用了EJB,能卖好几十倍的价格。
Session Bean缺点还不那么突出,Entity Bean缺点比较突出,前面有个帖子讨论很充分了,用ORM替代Entity Bean。ORM的缺点是几个Big name因为商业原因不热心,发展比较缓慢,这几年刚刚热起来,还没有充分的评测数据来证明它的性能和稳定性。
5.使用会话Bean加上DAO来访问数据库优点是什么?有没有缺点?DAO又是什么?是由什么来实现?比之于实体Bean有点是什么?
使用会话Bean加上DAO来访问数据库的性能至少是CMP的3倍以上,缺点是要写很多代码,比较累。DAO就是一组抽象接口,隔离数据库,让业务层看不到数据库,必须调用DAO来操作数据库的数据。DAO可以用很多技术实现,JDBC,JDO,Hibernate,OJB,Toplink等等。