1.2 轻量级Java EE应用相关技术
轻量级Java EE
应用以传统的JSP
作为表现层技术,以一系列开源框架作为MVC
层,中间层、持久层解决方案,并将这些开源框架有机地组合在一起,使得Java EE
应用具有高度的可扩展性、可维护性。
1.2.1 JSP,Servlet和JavaBean及替代技术
JSP
是最早的Java EE
规范之一,也是最经典的Java EE
技术之一。直到今天,JSP
依然广泛地应用于各种Java EE
应用中,充当Java EE
应用的表现层角色。JSP
具有简单、易用的特点,JSP
的学习路线平坦,而且国内有大量JSP
学习资料,所以大部分Java
学习者学习Java EE
开发都会选择从JSP
开始。Servlet
和JSP
其实是完全统一的,二者底层的运行原理是完全一样的。实际上JSP
必须被Web
服务器编译成Servlet
,真正在Web
服务器内运行的是Servlet
。从这个意义上来看,JSP
相当于一个”草稿”文件,Web
服务器根据该”草稿”文件生成Servlet
,真正提供HTTP
服务的是Servlet
,因此广义的Servlet
包含了JSP
和Servlet
。
从目前的Java EE
应用来看,纯粹的Servlet
已经很少使用了,毕竟Servlet
的开发成本太高,而且使用Servlet
充当表现层将导致表现层页面难以维护,不利于美工人员参与Servlet
开发,所以在实际开发中大都使用JSP
充当表现层技术Servlet3.x
规范的出现,再次为Java Web
开发带来了巨大的便捷。 Servlet3.x
提供了异步请求、注解、增强的Servlet API
、非阻塞I/O
等功能,这些功能都极大地简化了Java Web
开发。
由于JSP
只负责简单的显示逻辑,因此JSP
无法直接访问应用的底层状态, Java EE
应用会选择使用JavaBean
来传输数据。在严格的Java EE
应用中,中间层的组件会将应用底层的状态信息封装成JavaBean
集,这些JavaBean
也被称为DTO
(Data Transfer Object
,数据传输对象),并将这些DTO
集传到JSP
页面,从而让JSP
可以显示应用的底层状态。
在目前阶段, Java EE
应用除了可以使用JSP
作为表现层技术之外,还可以使用FreeMarker
或Velocity
作为表现层技术,这些表现层技术更加纯粹,使用起来更加便捷,完全可作为JSP
的替代。