一、Java Web相关技术构成
Servlet和JSP容器(container)使得Web服务器可以运行Servlet和JSP。Tomcat是一个免费、开源的Servlet和JSP容器。Servlet和JSP容器的运行需要JDK(Java Software Kit)的支持,因为JDK包含Java编译器、Java的核心类库及Java运行时环境(Java Runtime Environment,JRE)。
图1-1为Java Web技术实现示意图。
1.B/S与C/S架构
按照是否要访问网络,程序可以分为网络程序与非网络程序,其中网络程序又可分为基于B/S架构的程序与基于C/S架构的程序。
(1)C/S指客户/服务器(Client/Server)模式。这种模式的客户端中需要安装一个RCP(Rich Client Platform,即胖客户端平台)程序。RCP程序负责与服务器进行数据交换。一般的网络程序都是C/S结构,例如QQ、MSN、PPLive、迅雷等。
(2)B/S是指浏览器/服务器(Browser/Server)模式。一般的网站都是B/S结构,例如Google、Baidu。
(3)两者区别:以往基于客户/服务器的C/S架构应用程序存在很多缺点,它需要安装客户端程序。Web应用程序的访问不需要安装客户端程序,只要通过任一款浏览器(例如IE或者Firefox)来访问各类Web应用程序实现所需功能即可。Web应用程序升级时,不需要在客户端做任何更改,只要升级服务器端Web应用程序,用户在下一次访问时就可以使用新的功能,而C/S架构应用程序升级时,客户端需要下载升级程序才能使用新的功能。和C/S架构的应用程序相比,Web应用程序可以在网络上更加广泛地进行传播和使用。
2.JSP技术
JSP是一种动态网页技术标准,在传统的网页HTML文件(*.htm,*.html
)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp
)。JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。JSP技术使用Java编程语言编写类XML的tag和scriptlet,来封装产生动态网页的处理逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序开发变得迅速和容易。
Web服务器在接收到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP与Java Servlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
JSP页面由HTML代码和嵌入其中的Java代码组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用、完全面向对象、具有平台无关性、安全可靠、主要面向因特网等特点。
【实例】一个简单的JSP程序。
<%@page language="java" contentType="text/html;charset=GBK"%>
<html>
<head>
<title>JSP EXAMPLE</title>
</head>
<body>
<%
out.println("Hello everyone!");
%>
</body>
</html>
一个JSP文件通常由以下几个部分组成:
(1)静态内容。
(2)指令。JSP指令的格式是<%@ 指令名 属性1=“属性值1” 属性2=“属性值2” %>,以下是常用的JSP指令:page、include、taglib。
(3)表达式。语法形式为<%=表达式 %>。
(4)脚本。语法格式为<% Java 代码 %>。
(5)声明。语法格式是<%! 代码 %>。
(6)动作标签。语法格式是<jsp:动作名 属性=“属性值”> </jsp:动作名>,JSP动作标签主要用来控制Servlet引擎的行为。
(7)注释。格式为<%- 注释内容 -%>。
3.Servlet技术
Servlet是一种Java编程语言类,用来扩展通过响应-请求编程模型服务应用程序访问的服务器功能。Javax.servlet和Javax.servlet.http包为编写Servlet提供了接口和类。Java Servlet API提供的标准接口使开发人员可以处理客户端应用程序请求和生成这些请求的相应响应。Servlet实现的过滤器功能是Web中的一个小型组件,其拦截来自客户端的请求和响应信息,从而进行查看、提取或者对客户端和服务器之间交换的数据信息进行某项特定的操作。
二、Java Web 技术特点
典型的Java Web应用由3层组成:表示层(用户接口层)、业务逻辑层和数据访问层。表示层通常由一些HTML文件和JSP文件组成,业务逻辑层使用Servlet来控制应用的流程,数据访问层需要和存储在服务器磁盘上的数据打交道。
Java Web的3层架构如图1-4所示。