1.基本概念
1.1 JavaEE应用的分层模型
Domain Object(领域对象):此层由一系列POJO对象组成,用于实现业务逻辑方法
DAO(Data Access Object 数据访问对象)层:这层实现了对数据库的一系列操作(CRUD) 业务逻辑层:由一系列业务逻辑对象组成,这些业务逻辑对象实现了Domain Object方法及其他组件实现的业务逻辑方法
控制器层:用于拦截用户请求,并调用业务逻辑组件的业务逻辑方法,处理用户请求,并根据处理结果转发到不同的表现层组件 前端层:由一系列JSP页面、FreeMarker页面,以及JQuery、Angular、Vue等各种前端框架组成
1.2 常用的Web Service
Tomcat:Tomcat和java结合最好,是常用的JSP服务器,性能、稳定性方面都非常优秀
Jboss:是一个遵从了javaEE规范的、开源的、纯EJB服务器,它支持所有的javaEE规范
GlassFish:由Oracle公司开发的一款JavaWeb服务器,是一款强健的商业服务器,达到产品级质量
Jetty:Jetty可作为嵌入式服务器,在应用中加入Jetty的Jar文件,应用可在代码中对外提供web服务
Resin:自身采用Java开发,是目前最快的JSP、Servlet运行平台,支持EJB,商用收费,个人免费
WebLogic:是Oracle公司的产品,目前应用最广泛的Web服务器,支持JavaEE规范,适合大型项目(收费,大公司用得比较多)
1.3 JSP、Servlet、JavaBean
JSP
和Servlet
底层实现原理一致,JSP
必须被Web
服务器编译为Servlet
,才能使用,所以真正在Web服务器中运行的是Servlet
JavaBean是用于数据传输的,请求/响应携带的数据
Tomcat版本 | Servlet/JSP版本 | JavaEE版本 | 运行环境 |
---|---|---|---|
4.1 | 2.3/1.2 | 1.3 | JDK1.3 |
5.0 | 2.4/2.0 | 1.4 | JDK1.4 |
5.5/6.0 | 2.5/2.1 | 5.0 | JDK5.0 |
7.0 | 3.0/2.2 | 6.0 | JDK6.0 |
8.0 | 3.1/2.3 | 7.0 | JDK7.0 |
Servlet在2.5版本及之前都是采用的xml配置的方式,在3.0之后就是注解的方式实现了 Servlet在4.x中提供了异步请求、注解、增强的Servlet API、非阻塞IO
1.4 静态web和动态web
1.4.1 静态web
html\htm网页,通过直接获取的方式,进行页面展示,所有的用户看到的都是同一个页面 css、js、txt mp4 jpg等都算是静态web资源
静态web存在的缺点:
-
Web页面无法动态更新,所有用户看到的都是同一个页面
-
无法和数据库交互(数据无法持久化,用户无法交互)
1.4.2 动态web
jsp/sevlet动态资源,可以与数据库进行交互,实现动态页面
ASP:微软的产品,底层是在HTML中嵌入VB的脚本,ASP+COM,导致在页面中包含太多业务逻辑代码
PHP:开发速度很快,功能很强大,跨平台,代码很简单,但是无法承载大访问量的情况
JSP:本质是Servlet,是sun公司开发的B/S架构,可以承载三高(高性能、高可用、高并发)问题,语法像ASP
动态Web的缺点:
- 假如服务器的动态web资源出现错误,我们需要重新编译后台程序,重新发布