今天把Structs和EJB稍微了解了一下。
Structs是apache 组织jakarta 项目的一个子项目,用以改善 web 系统的结构,是一个基于J2EE的Web形式MVC模式实现。Structs是由一组类、Servlet和Taglib组成。Structs有其自己的控制器(Controller),基本组件是ActionServlet中定义的Servlet,由ActionMapping定义的,ActionMapping类表示的是Action对象的名字和位置。当一个请求进入控制器时,它将请求的路径映射到Action的位置,并且将请求传送给Action。Structs另外一个重要部分是标签(TagLib),主要由页面制作人员使用。
EJB(Enterprise JavaBean ) 是设计成运行在服务器上,并由客户机调用的非可视远程对象。可通过多个非可视 JavaBean 构建 EJB。它们有一个部署描述符,其目的与 JavaBean 属性相同:它是以后可由工具读取的 bean 的描述。EJB 还独立于平台,一旦编写好,还可以在任何支持 Java 的平台(包括客户机和服务器)上使用。
如果不使用EJB,在EJB服务层实现的业务核心将由普通JavaBeans实现,不能很好的保证负责MVC的JavaBeans和负责业务核心的JavaBeans清晰地分开。
采用EJB,Web完全只是一个MVC模式的实现,关键业务核心是在EJB的服务层实现,这样做的优点是,Web只负责界面相关部分,因为,如果是一个智能客户端,如Swing或J2ME,在不需要修改任何业务核心的情况下能够方便地更换。同样,提供Web Services功能,也只是在 Web层修改,不会涉及EJB方面的修改,同样保证了系统的稳定性,保证了系统升级和未来的扩展性。
EJB容器(如JBoss)已经提供了对象池和缓存机制,所以,没有事务机制的无状态Session Bean的性能肯定要强于普通JavaBeans。EJB容器不但在单机中提供了对象池和缓存,而且可以跨服务器实现动态负载平衡,这些都无需开发者自己开发任何软件代码。
EJB提供的事务机制非常周全,但事务机制带来的缺点是性能的降低,在一般企业应用或数据库系统应用中,EJB不会对你构成很重的包袱。
通过一天的学习,虽然没有写出Structs和EJB的实现代码,但是基本上对这两个东西有了初步的了解