
1.1 Web概述
Web是互联网的总称,全称为World Wide Web,缩写为WWW,又称全球广域网或万维网,是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。换句话说,Web是一种体系结构,通过它可以访问遍布于因特网主机上的链接文档。
简单来说,Web表示网页的意思,它用于表示Internet主机上供外界访问的资源。
视频

Web基本概念
1.1.1 Web资源分类
Web资源分为两大类:静态Web资源和动态Web资源。
静态Web资源是指Web页面中供人们浏览的数据始终是不变的,如HTML、CSS等。这些静态网页使用HTML描写,通常来说,随着HTML代码的生成,页面的内容和显示效果基本上不会发生变化。比如,通过网页看到的新闻,只要新闻内容不变,那么不同的人在不同时间、不同地点看到的新闻是完全一样的,这就是静态Web资源。
动态Web资源是指Web页面中供人们浏览的数据是由程序产生的,不同时间点访问Web页面看到的内容各不相同,如JSP/Servlet、ASP、PHP。这些动态网页,页面代码虽然没有变,但是显示的内容却可以随着时间、环境或者数据库操作的结果而发生改变。比如微博,它的内容是随时更新的,不同的时间我们看到的内容都可能有变化,是动态的。
1.1.2 Servlet容器
Java中的动态资源开发技术为Servlet/JSP,Sun公司定义了Servlet/JSP的技术规范,遵循这样的规范就可以写出对应的Servlet、JSP程序。但是Servlet、JSP程序本身不能直接运行,需要运行它们的环境。于是不同的厂商分别按照Servlet/JSP规范的要求开发了对应的运行环境,这些能够运行Servlet/JSP程序的环境称为Servlet容器(Servlet Container)。
Servlet容器是Web服务器或者应用服务器的一部分,用于提供基于请求/响应发送模式的网络服务,解码基于MIME的请求,并且格式化基于MIME的响应。Servlet容器同时也包含和管理它们生命周期中的Servlet对象。
1.1.3 Web容器
Web资源按照一定的规则整合起来,组成能够被Web访问的应用程序,这些应用程序称为Web应用。Web应用运行也需要一定的环境,能够运行Web应用的环境就称为Web容器。
Web容器的概念通常要大于Servlet容器,Servlet容器通常都是Web容器,但是Web容器不一定是Servlet容器,因为运行ASP、PHP的服务器是Web容器,但是它们不能运行Servlet。
1.1.4 Web服务器
视频

常见的Web服务器
Web容器/Servlet容器具体来说就是Web服务器,学习Web开发,需要先安装一台Web服务器,然后在Web服务器中开发相应的Web资源,供用户使用浏览器访问。只要在浏览器上登录Web服务器,就可以访问到或静态或动态的Web资源,并和Web服务器实现交互。
注意:
这里所说的服务器不是指服务器硬件资源,而是指服务器软件。
在选择使用Web服务器时,应考虑的本身特性因素有:性能、安全性、日志和统计、虚拟主机、代理服务器、缓冲服务和集成应用程序等,下面介绍几种常用的Web服务器。
1.WebLogic
WebLogic服务器是BEA公司的产品,是目前应用最广泛的Web服务器,支持Java EE规范。它是一种多功能、基于标准的Web应用服务器,为企业构建自己的应用提供了坚实的基础。
由于WebLogic服务器具有全面的功能、对开放标准的遵从性、多层架构、支持基于组件的开发,基于Internet的企业都选择它来开发、部署最佳的应用。
2.WebSphere
WebSphere服务器是IBM公司的产品,支持Java EE规范,它是一种功能完善、开放的Web应用程序服务器。
WebSphere服务器是基于Java的应用环境,用于建立、部署和管理Internet和Intranet Web应用程序。
3.Tomcat
在小型的应用系统或者有特殊需要的系统中,可以使用一个免费的Web服务器——Tomcat,该服务器支持全部JSP以及Servlet规范。
虽然并不能完全支持Java EE规范,但是因为免费、开源、轻量等特性,让Tomcat十分受欢迎。
1.1.5 Servlet概述
视频

Servlet概述
Servlet(Servlet Applet),全称Java Servlet,称为小服务程序或服务连接器,是用Java编写的服务器端程序,具有独立于平台和协议的特性。而这些Servlet都要实现Servlet接口。Servlet运行于支持Java的应用服务器中。Servlet主要功能在于交互式地浏览和修改数据,生成动态Web内容。
Servlet和之前介绍的Servlet容器有什么联系与区别呢? Servlet容器又称Servlet引擎,它是Web服务器或者应用服务器的一部分,用于提供基于请求/响应发送模式的网络服务;而Servlet没有main方法,不能独立运行,必须被部署到Servlet容器中,然后由Servlet容器来实例化和调用Servlet方法。Servlet容器在Servlet的生命周期内包含和管理Servlet。
1.1.6 Java Web分层概述
要想实现一个好的Web应用,我们必须要了解Java Web分层。在软件体系架构设计中,分层式结构是最常见、最重要的一种结构。微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层(又称领域层)和表示层。这也是Java Web中重要的三层架构中的三个层次。区分层次的目的是实现“高内聚低耦合”的思想。通俗来说,“高内聚”就是将功能性相同的代码放在一起,“低耦合”就是在功能和功能之间尽量少一些依赖关系,层与层之间的依赖是向下的,底层对于上层而言是“无知”的,改变上层的设计对于其调用的底层而言没有任何影响。
所谓三层体系结构,是在客户端与数据库之间加入了一个“中间层”,又称组件层。这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅是有B/S应用才是三层体系结构,三层是指逻辑上的三层,即把这三个层放置到一台机器上。
1.1.7 Java Web经典三层架构
视频

Java Web经典三层架构
Java Web经典三层架构是Java Web独有的,三层包括表示层(Web)、业务逻辑层(Service)和数据访问层(DAO)。
Web层:表示层,主要是对访问控制进行转发,各类基本参数校验,或者不复用的业务简单处理等。
Service层:业务逻辑层,相对具体的业务逻辑服务层。
DAO层:数据访问层,与底层MySQL、Oracle、HBase等进行数据交互。
下面通过图形的方式进一步理解Java Web经典三层架构,如图1-1所示。

图1-1 Java Web经典三层架构
例如,用户要在浏览器中注册,就要输入相应的地址以及相关的注册信息,然后发送请求。Web层的Servlet控制程序的流转,发现请求是为了注册用户,所以将信息调到Service层。Service层主要处理业务逻辑,例如,若注册名已存在则不允许注册并反馈相应的信息;如果注册信息符合要求,就进入DAO层处理数据信息,然后将这些数据信息添加到数据库中。数据添加成功之后,会逐步反馈,在Web层中由JSP向用户反馈注册成功信息。