果没有变化,服务器调用先前编译过的servlet对象。
JSP请求的步骤如图2-1所示。
(1)用户机请求一个JSP页面。
(2)JSP引擎编译该JSP成一个servlet。
图2.1 一个JSP的请求步骤
(3)生成的servlet被编译并装载。
(4)编译的servlet服务请求并把一响应发送回用户机。
JSP主要是针对Java程序处理不熟悉的人设计的。与Servlet相比,JSP有如下两个优势:方便与
HTML混合;在开发、测试方面比Servlet方便。
2.1.3 JSP的强势与劣势
JSP的强势:
(1)可移植性。JSP是用Java开发的,因此它是可移植的,可以一处编写,随处运行,支持多平台。
(2)有效性。JSP的初始化代码仅在Web服务器第一次加载时执行一次。一旦加载,在处理一个新的请求时,只须调用一个新的服务方法。与处理每个请求都要全部加载一个完整的可执行程序相比,这是一个相当有效的技术。
(3)强大的可伸缩性和可扩充性。它能够在面向对象的语言(Java)中进行开发,并可以在现有对象基础上进行扩展,形成新的对象,从而更好地满足用户的需求。
(4)多样化和功能强大的开发工具支持。Java已经有了许多非常优秀的开发工具,而且许多可以
免费得到,并且其中许多已经可以顺利的运行于多种平台之下。
(5)Java Servlet是一种开发Web应用的理想框架。JSP以Servlet技术为基础,又在许多方面作了改进。利用跨平台的JavaBeans组件,
JSP为分离处理逻辑与显示样式提供了卓越的解决方案。
JSP的劣势:
(1)为了跨平台的功能,为了极度的伸缩能力,极大的增加了产品的复杂性,Java系统中包括JRE,JDK,J2EE,EJB等多种产品,这就需要大量的
学习和培训才能掌握它们,将它们有效地搭配在一起,灵活地加以运用。
(2)Java的运行速度快是由于用户将class常驻内存,这样使用的内存空间就比较大。另一方面,它还需要硬盘空间来存储一系列.Java文件和.class文件以及对应的版本文件。
(3)JSP只有对Java相当熟悉的人才能用得很好。
(4)JSP程序调试困难。
2.1.4 JSP与ASP的比较
JSP与ASP(Active Server Page)两者都是
常用的动态网页技术,也都是可以嵌入HTML中的程序,但两者是有着本质的不同,主要从以下几个方面对其进行比较:
(1)Web服务器的支持:大多数通用的 Web服务器如:Apache、Netscape和Microsoft IIS都支持JSP页面,只有微软本身的Microsoft IIS和Personal Web Server可以支持ASP。
(2)平台的支持:JSP具有平台独立性,只要是一般的Java程序可以运行的平台,都支持JSP程序。Windows平台可以很好的支持ASP,但ASP对于基于Win32逐渐模型的依赖,使得它难于一直到其它平台上。
(3)组件模型:JSP是建立在可重用的、跨平台的组件(如:JavaBeans、Enterprises JavaBeans 和用户定制的标签库等组件)之上的,而ASP使用的是基于Win32的COM组件模型。
(4)脚本语言:JSP可以使用Java编程语言或JavaScript作为脚本语言,而ASP使用
VBScript或Jscript作为脚本语言。
(5)安全性:JSP使用Java安全模型,而ASP使用Windows NT的安全结构。
(6)与Access数据库的连接:JSP使用JDBC建立与Access数据库的连接,而ASP对Access数据库使用Data Active Objects。
(7)用户定制的标签:JSP可以使用用户定制标签库进行扩充,而ASP中没有用户定制标签库,ASP是不能扩充的[。
2.2 Java组件JavaBeans
2.2.1 什么是JavaBeans
JavaBeans事实上有三层含义。首先,JavaBeans是一种规范,一种在
Java(包括JSP)中使用可重复使用的Java组件的技术规范。其次,JavaBeans是一个Java的类,一般来说,这样的Java类将对应于一个独立的.java文件,在绝大多数情况下,这应该是一个public类型的类。最后,当JavaBeans这样的一个Java类在我们的具体的Java程序中被示例之后,我们有时也会将这样的一个JavaBeans的实例称之为JavaBeans。
2.2.2 JSP与JavaBeans的关系
使用JSP技术,Web页面开发人员可以使用HTML和XML标识来设计和格式化最终页面。使用JSP标识或者小脚本生成页面上的动态内容。生成内容的逻辑被封装在JSP标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。核心逻辑封装在标识和Beans中,可以方便页面设计者编辑和使用JSP页面。
在服务器端,JSP引擎解释JSP标识和小脚本生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBC技术访问数据库),并且将结果以HTML(或XML)页面的形式发送回浏览器。
绝大多数JSP页面依赖于可重用的跨平台的足见(JavaBeans或者Enterprise JavaBeans组件)来执行应用
程序所要求的复杂的处理。这样的好处是开发人员能够共享和交换执行普通操作的组件,加速了总体开发过程。因此,基于Web的较为复杂的应用程序(如JSP开发网站或网上MIS),JSP的复杂架构必须由JavaBeans达成。
2.3 J2EE概述
J2EE(Jav