
1.2 JSP基础知识
JSP基础知识
JSP作为Java Web开发体系中的核心技术,学习者除了要了解以上Web相关的基础知识,还应该对JSP依赖的先行知识有所了解,如Java语言、Servlet技术(Servlet在后面章节中有详细讲解)、JSP所开发的应用程序体系架构。下面针对这些内容进行介绍。
1.Java
Java是Sun公司(已被Oracle公司收购)于1995年推出的面向对象的编程语言,一经推出,便吸引了全世界的目光,得到了业界的广泛应用和一致好评。Java语言适用于Internet环境,Java Web开发体系已经成为开发Internet应用的主要技术。Java具有简单、面向对象、分布式、健壮、安全、平台独立与可移植性强、支持多线程、动态性好等特点。Java除了用于开发Web应用程序,还可以编写桌面应用程序、分布式系统和嵌入式系统应用程序等。
Java是一门完全面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++中难以理解的多继承、指针等概念,因此,Java语言具有功能强大的特点,同时还具有简单易用的特征。Java语言作为面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
Java的开发和运行依赖开发环境JDK(Java Development Kit),JDK也称为Java开发包或Java开发工具。JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment,JRE)、一些Java工具和Java的核心类库(Java API)。
2.Servlet
Servlet是先于JSP出现的Java Web开发技术。Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。Servlet是位于Web 服务器内部的服务器端的 Java 应用程序,与传统的从命令行启动的 Java 应用程序不同,Servlet 由 Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。
Servlet与传统的CGI比较,具有使用方便、功能强大、可移植性好、架构设计先进等优点。但是Servlet在页面展现方面输出HTML语句还是采用了传统的 CGI 方式,需要在Java代码中一句句输出,编写和修改HTML非常不方便。后来便出现了基于Java语言的服务器页面JSP,大大简化了页面的编写和维护的过程。
3.JSP
JSP全称为Java Server Pages,即Java服务器页面,是一种实现普通静态HTML和动态HTML混合编码的技术,JSP 并没有增加任何本质上不能用Servlet实现的功能。但是,在JSP中编写静态HTML 更加方便,不必再用println语句来输出每一行HTML代码。更重要的是,借助内容和外观的分离,页面制作中不同性质的任务可以方便地分开。例如,由页面设计者进行HTML设计,同时留出供Servlet程序员插入动态内容的空间。
JSP是基于Java的技术,用于创建可支持跨平台及Web服务器的动态网页。JSP页面代码一般由普通的HTML语句和特殊的基于Java语言的嵌入标记组成,所以它具有Web和Java功能的双重特性。
JSP 1.0规范是1999年9月推出的,同年12月又推出了1.1规范。此后,JSP又经历了几个版本,本书介绍的技术是基于JSP 2.0规范的。
JSP是一种动态网页技术标准,可以分离网页中的动态部分和静态的HTML。用户可以使用平常得心应手的工具按照平常的方式来书写HTML语句,然后将动态部分用特殊的标记嵌入即可,这些标记常常以“<%”开始并以“%>”结束。
同HTML以及ASP等语言相比,JSP虽然在表现形式上同它们的差别并不大,但是它却提供了一种更为简便、有效的动态网页编写手段,而且,JSP 程序同 Java 语言有着天然的联系,因此在众多基于Web的架构中,都可以看到JSP程序。
JSP程序增强了Web页面程序的独立性、兼容性和可重用性,与传统的ASP、PHP网络编程语言相比,它具有以下特点。
JSP的执行效率比较高。由于每个基于JSP的页面都被Java虚拟机解析成一个Servlet,服务器通过网络接收到来自客户端 HTTP 的请求后,Java 虚拟机解析产生的 Servlet 将开启一个“线程(Thread)”来提供服务,并在服务处理结束后自动销毁这个线程。这样的处理方式将大大提高系统的利用率,并能有效地降低系统的负载。
编写简单。JSP是基于Java语言和HTML元素的一项技术,因此,只要熟悉Java和HTML的程序员都可以开发JSP。
跨平台。JSP运行在Java虚拟机之上,因此,它可以借助于Java本身的跨平台能力,在任何支持Java的平台和操作系统上运行。
JSP可以嵌套在HTML或XML网页中。这样不仅可以降低程序员开发页面显示逻辑效果的工作量,更能提供一种比较轻便的方式来同其他Web程序交互。
4.应用程序体系结构
目前,在应用开发领域中主要分为两种应用程序体系结构:一种是 C/S(客户端/服务器)体系结构,另一种是B/S(浏览器/服务器)体系结构。基于Web的动态网站开发技术(例如JSP)开发的应用程序都是采用B/S体系结构。下面对这两种体系结构进行介绍。
(1)C/S(客户端/服务器)体系结构
C/S结构把数据库内容放在远程的服务器上,而在客户机上安装相应软件。C/S软件一般采用两层结构,由两部分构成:前端是客户机,即用户界面结合了表示与业务逻辑,接受用户的请求,并向数据库服务提出请求,通常是一台个人计算机;后端是服务器,即数据管理将数据提交给客户端,客户端将数据进行计算并将结果呈现给用户。
C/S体系结构具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受,随着企业规模的日益扩大,软件的复杂程度不断提高,传统的二层 C/S 结构存在着很多局限,因此,三层C/S体系结构应运而生,其结构如图1-1所示。在三层C/S体系结构中,增加了一个应用服务器,可以将整个应用逻辑驻留在应用服务器上,只有表示层存在于客户机上。这种结构被称为“瘦客户机”。三层C/S体系结构将应用功能分成表示层、功能层和数据层。
表示层是应用的用户接口部分,担负着用户与应用的对话功能,用于检查用户从键盘等输入的数据,显示应用输出的数据。功能层相当于应用的本体,是将具体的业务处理逻辑编入程序中。而数据层就是数据库管理系统,负责管理对数据库数据的读写。在三层 C/S 体系结构中,中间件是最重要的构件。所谓中间件,就是一个用户 API 定义的软件层,是具有强大通信能力和良好可扩展性的分布式软件管理框架。其功能是在客户机和服务器或服务器和服务器之间传送数据,实现客户机群和服务器群之间的通信。
(2)B/S(浏览器/服务器)体系结构
B/S 结构,就是只安装维护一个服务器,而客户端采用浏览器运行软件。该结构是随着 Internet技术的兴起,对C/S结构的一种变化和改进。主要利用了不断成熟的WWW浏览器技术,结合多种Script语言和ActiveX技术,是一种全新的软件系统构造技术。JSP、Servlet技术开发的应用程序都是B/S结构。采用B/S结构的计算机应用系统的基本框架如图1-2所示。

图1-1 三层C/S结构示意图

图1-2 B/S模式结构
B/S 三层体系结构采用三层客户/服务器结构,在数据管理层和用户界面层增加了一层结构(即中间件),使整个体系结构成为三层。三层结构是伴随着中间件技术的成熟而兴起的,核心概念是利用中间层将应用分为表示层、业务逻辑层和数据存储层三个不同的处理层次。三个层次是从逻辑上划分的,具体的物理分法可以有多种组合。中间件作为构造三层结构应用系统的基础平台,提供了以下主要功能:负责客户机与服务器、服务器与服务器间的连接和通信;实现应用与数据库的高效连接;提供一个三层结构应用的开发、运行、部署和管理的平台。这种三层结构在层与层之间相互独立,任何一层的改变不会影响其他层的功能。