轻量级 java EE 应用使用传统的jsp作为表现层技术,以开源框架作为MVC层、中间层、持久层解决方案,并将这些开源框架有机的结合在一起,使得java ee 具有高度的可扩展性和可维护性。
1、jsp和servlet
jsp是最早的java ee 规范之一,充当java ee 应用的表现层角色。
servlet和jsp是完全统一的,二者在底层的运行原理是完全一样的,实际上,jdp必须被web服务器编译为servlet,真正在web服务器上运行的是servlet。因此,广义的servlet包好了jsp和servlet。
servlet 3.0提供了异步请求、annotation标注、增强的servlet API,这些功能很好的简化了 开发。
由于jsp只负责简单的显示逻辑,所以jsp无法直接访问应用的底层状态,java ee应用使用javabean来传输数据,在java ee的应用中,中间层的组件会将应用底层的状态信息封装成javabean集,这些javabean也被称为DTO(数据传输对象),并将这些DTO集传到jsp页面,从而让jsp可以显示应用的底层状态。
当然,除了使用jsp作为表现层技术之外,还可以使用freemarker或velocity作为表现层技术。
2、struts 2
struts是世界上最早的MVC框架,但该框架无法生的人更复杂的需求,于是struts结合了里一个优秀的MVC框架:webwork,产生了struts 2。
除了struts2 之外,MVC框架领域还有2个替代者:jsf和tapestry。
3、hibernate
传统的java应用都是采用JDBC访问数据库,但是传统的jdbc是一种基于sql的操作方式,而这种操作方式与java语言的面向对象不太一致,因此需要一种面向对象的方式操作数据库。
这种技术就是ORM,最早的ORM是 entity EJB。但早期的EJB存在着繁琐的问题,因此,hibernate应运而生。
hibernate框架是一种开源的、轻量级的ORM框架,它允许将普通的、传统的java对象(POJO)映射为持久化类,允许应用程序以面向对象的凡是操作POJO。而hibernate框架则负责将这种操作转换为底层的SQL操作。
再后来,Sun公司抛弃了EJB 2 ,引入了JPA规范。JPA规范其实是一种ORM规范,因此它的底层可以使用hibernate、toplink等任意一种ORM框架作为实现。
除了使用hibernate这种ORM框架之外,轻量级的java ee 还可以选择ibatis框架作为持久层框架,ibatis是Apache提供的另一个轻量级持久性框架,ibatis允许将sql语句映射为对象。
除此之外,Oracle的toplink、Apache的OJB也可作为hibernate的替代选择。
4、spring
spring没有太多的新东西,它只是抽象了大量的java ee 应用中的常用代码,将它们抽象成了一个框架,通过使用Spring可以大幅度提高开发效率。
spring框架爱里 充满了各种设计模式的应用,如单例模式、工厂模式、抽象工厂模式、命令模式、职责链模式、代理模式等。
spring本身提供了一个MVC框架:springMVC,使用spring框架则可以直接使用该MVC框架。实际上,spring并未提供完整的持久层框架,也正是因为如此,spring能与大部分的持久层框架进行无缝整合,无论是hibernate、JPA/ibatis、toplink,还是jdbc,spring都能做的很好。