最近学Java Web,都是在网上找的资料
首先记录下Java EE体系架构概述
1、 企业级应用
现代企业级应用是以服务器为中心,通过网络把服务器和分散的用户联系在一起的应用。一般来说,现代企业级应用应当具有如下需求:
并发支持:同时收到大量服务请求,并需要快速响应;
事务支持:支持事务完整性,对于多个系统,需要支持分布式事务;(事务:要么完全地执行,要么完全地不执行,即原子性)
交互支持:系统与系统之间进行交互,人与系统之间进行交互;
集群支持:提供系统可用性和可伸缩性,企业级应用应该很容易随业务的需求而扩展;
安全支持:受保护的资源获得安全保护;
分布式支持:查找和调用分布式服务;
Web支持:基于Internet或无线网络。
Sun公司的企业级应用解决方案,Java EE。
2、 JavaEE:在JavaSE基础之上建立起来的一种标准开发架构,提供了一套设计、开发、汇编和部署企业应用程序的规范,来实现企业级应用程序。技术平台的核心思想是:容器+组件。
3、 JavaEE体系结构:
Applet—JSP+Servlet—EJB(重量级框架)。applet是客户端的程序,它们可以直接嵌入到网页或者其他特定的容器中,并能够产生特殊的效果。servlet是服务端器的程序,用于实现服务器功能的扩充,响应客户端请求。jsp则是对servlet简化,用于方便输出动态页面,实质上就是servlet。EJB是sun的服务器端组件模型,最大的用处是部署分布式应用程序,类似微软的.com技术。凭借java跨平台的优势,用EJB技术部署的分布式系统可以不限于特定的平台。
组件是一个包含一定功能的软件单元,它有相关的类和文件一起组成,并与其他组件进行通信。
EJB组件:分为会话EJB、实体EJB和消息驱动EJB;
EJB设计的缺陷:EJB采用的过程设计,不是面向对象设计。
EJB开发的问题:EJB开发和测试非常麻烦和冗长。
- 编辑、编译、调试周期长;
- 编码冗余、繁琐;
- 必须编写数据传输对象(DTO)。
面向对象的设计更容易理解、维护、扩展和测试。
4、 基于MVC的轻量级框架:
主流JavaEE框架:
- 表现层框架:SpringMVC框架,Struts2框架、JSF框架、Tapestry框架、WebWork框架
- 业务逻辑层框架:Spring框架
- 持久层框架:Hibernate框架、MyBatis框架
Spring MVC框架:Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts1,Struts2等。
它是一个典型的教科书式的mvc构架,而不像struts等都是变种或者不是完全基于mvc系统的框架。
Struts框架:它是一个完美的MVC实现,它有一个中央控制类(一个Servlet),针对不同的业务,我们需要一个Action类负责页面跳转和后台逻辑运算,一个或几个JSP页面负责数据的输入和输出显示,还有一个Form类负责传递Action和JSP中间的数据。JSP中可以使用Struts框架提供的一组标签,就像使用HTML标签一样简单,但是可以完成非常复杂的逻辑。从此JSP页面中不需要出现一行<%%>包围的
Struts2框架:Struts2以WebWork优秀的设计思想为核心,吸收了 Struts框架的部分优点,提供了一个更加整洁的MVC设计模式实现的Web 应用程序框架
Struts2以WebWork优秀的设计思想为核心,吸收了 Struts框架的部分优点,提供了一个更加整洁的MVC设计模式实现的Web 应用程序框架。 Struts2引入了几个新的框架特性:从逻辑中分离出横切关注点的拦截器、减少或者消除配置文件、贯穿整个框架的强大表达式语言、支持可变更和可重用的基于MVC模式的标签API, Struts2充分利用了从其它MVC框架学到的经验和教训,使得 Struts2框架更加清晰灵活。
Srping框架:调用者依赖被调用者,它们之间形成了强耦合,如果我想在其他地方复用某个类,则这个类依赖的其他类也需要包含。程序就变得很混乱,每个类互相依赖互相调用,复用度极低。如果一个类做了修改,则依赖它的很多类都会受到牵连。为此,出现Spring框架。
Spring的作用就是完全解耦类之间的依赖关系,一个类如果要依赖什么,那就是一个接口。至于如何实现这个接口,这都不重要了。只要拿到一个实现了这个接口的类,就可以轻松的通过xml配置文件把实现类注射到调用接口的那个类里。所有类之间的这种依赖关系就完全通过配置文件的方式替代了。所以Spring框架最核心的就是所谓的依赖注射和控制反转。
MyBatis框架:
企业级应用需求:
通过将框架集成应用,可以发挥各框架的最大优势,良好的解决企业级应用的需求。
- Struts+Spring+Hibernate框架(SSH框架)
- SpringMVC+Spring+Hibernate框架
- SpringMVC+Spring+MyBatis框架(SSM框架)
企业级应用新解决方案:框架集成应用