1.1.2 JavaBeans
J a v a B e a n s就是J a v a的可重用组件技术。A S P通过C O M来扩充复杂的功能,
如文件上载、发送e m a i l以及将业务处理或复杂计算分离出来成为独立可重复利用的模块。J S P通
过J a v a B e a n实现了同样的功能扩充。JSP 对于在Web 应用中集成JavaBean 组件提供了完善的支
持。这种支持不仅能缩短开发时间(可以直接利用经测试和可信任的已有组件,避免了重复开
发),也为JSP 应用带来了更多的可伸缩性。JavaBean 组件可以用来执行复杂的计算任务,或负
2计计第一部分JSP 入门
下载
责与数据库的交互以及数据提取等。
在实际的J S P开发过程中,读者将会发现,和传统的A S P或P H P页面相比,J S P页面将会是非
常简洁的,由于J a v a B e a n s开发起来简单,又可以利用J a v a语言的强大功能,许多动态页面处理
过程实际上被封装到了J a v a B e a n s中。
1.1.3 JDBC
J D B C是用于执行S Q L语句的J a v a应用程序接口,由一组用J a v a语言编写的类与接口组成,
在J S P中将使用J D B C来访问数据库。J D B C是一种规范,它让各数据库厂商为J a v a程序员提供标
准的数据库访问类和接口,这样就使得独立于D B M S的J a v a应用程序的开发工具和产品成为可能。
一般的J a v a开发工具都带有J D B C - O D B C桥驱动程序,这样,只要是能够使用O D B C访问的数据
库系统,也就能够使用J D B C访问了。有趣的是,不同于O D B C是Open Database Connectivity的
简称,J D B C并不是Java Database Connecivity的简称,而是S U N的注册商标,至少官方说法是这
样的。
1.1.6 Java Servlet
Java Servlet是J S P技术的基础,而且大型的We b应用程序的开发需要Java Servlet和J S P配合
才能完成,这里简单介绍S e r v l e t的相关知识,S e r v l e t的开发将在第二部分讲述。
S e r v l e t这个名称大概源于A p p l e t,现在国内的翻译方式很多,本书为了避免误会,决定直接
采用S e r v l e t而不做任何翻译,读者如果愿意,可以称之为“小服务程序”。S e r v l e t其实和传统的
C G I程序和I S A P I、N S A P I等We b程序开发工具的作用是相同的,在使用Java Servlet以后,用户
不必再使用效率低下的C G I方式,也不必使用只能在某个固定We b服务器平台运行的A P I方式来
动态生成We b页面。许多We b服务器都支持S e r v l e t,即使不直接支持S e r v l e t的We b服务器也可以
通过附加的应用服务器和模块来支持S e r v l e t。得益于J a v a的跨平台的特性, S e r v l e t也是平台无关
的,实际上,只要符合Java Servlet规范, S e r v l e t是完全平台无关且是We b服务器无关的。由于
Java Servlet内部是以线程方式提供服务,不必对于每个请求都启动一个进程,并且利用多线程
机制可以同时为多个请求服务,因此Java Servlet效率非常高。
但Java Servlet也不是没有缺点,和传统的C G I、I S A P I、N S A P I方式相同,Java Servlet是利
用输出H T M L语句来实现动态网页的,如果用Java Servlet来开发整个网站,动态部分和静态页
面的整合过程简直就是一场恶梦。这就是为什么S U N还要推出Java Server Pages的原因。
1.2 JSP技术
前面说过, Java Servlet的最大缺点就在于没有把网站的逻辑和页面的输出分开,导致整个
S e r v l e t代码混乱不堪。为了解决Java Servlet的这种缺点,S U N推出了Java Server Pages—J S P。
1.2.1 JSP技术概述
按照脚本语言是服务于某一个子系统的语言这种论述, J S P应当被看作是一种脚本语言,然
而,作为一种脚本语言, J S P又显得过于强大了,在J S P中几乎可以使用全部的J a v a类。
第一章概述计计9
下载
作为一种基于文本的、以显示为中心的开发技术,J S P提供了Java Servlet 的所有好处,并且,
当与一个JavaBeans 类结合在一起时,提供了一种使内容和显示逻辑分开的简单方式。分开内容
和显示逻辑的好处是,更新页面外观的人员不必懂得Java 代码,而更新J a v a B e a n s类的人员也不
必是设计网页的行家里手,就可以用带JavaBeans 类的JSP 页面来定义Web 模板,以建立一个由
具有相似的外观的页面组成的网站。JavaBeans 类完成数据提供,这样在模板中就没有Java 代码,
这意味着这些模板可以由一个HTML 编写人员来维护。当然,也可以利用Java Servlet来控制网
站的逻辑,通过Java Servlet调用J S P文件的方式来将网站的逻辑和内容分离。本章我们后面将对
这种分离网站的逻辑和内容的设计方法做一些更深入的描述。
在选择使用一个Java Servlet,还是一个JSP 页面时,要记住的是, Java Servlet 是一个程序
设计工具,它最适用于不需要频繁修改的低级应用功能; 而J S P页面则通过以显示为中心的描述
性的方法将动态内容和逻辑结合在一起。对于使用一个JSP 页面的简单的基于Web 的应用程序,
可以使用定制标记或者S c r i p t l e t,而不是使用JavaBeans 类来将内容与应用逻辑结合起来。定制
标记被打包到一个标记库中,并被引入到一个JSP 页面中。S c r i p t l e t是直接嵌入在JSP 页面中的
很小的J a v a代码段。
一般来说,在实际的J S P引擎中, J S P页面在执行时是编译式,而不是解释式的。解释式的
动态网页开发工具如A S P、P H P 3等由于速度等原因已经满足不了当前大型电子商务应用的需要
了,传统的开发技术都在向编译执行的方式改变,如A S P→A S P +;P H P 3→P H P 4。而尽管J S P的
规范书中并没有要求实际的J S P引擎要使用编译式的执行方式,但估计一般是不会使用解释的方
式来执行J S P页面的。通常说来, J S P页面一般是翻译为S e r v l e t的J a v a源文件,再经过J a v a编译器
编译为S e r v l e t的c l a s s文件。为什么要编译为S e r v l e t呢?据说是为了让原先的S e r v l e t引擎可以直接
服务于J S P,而J S P引擎就仅仅需要将J S P转译为S e r v l e t就可以了。这里要注意的是: J S P规范书
中并没有规定如何将J S P页面转译为S e r v l e t,因此,不同的J S P引擎转译的结果也是不一样的。
在J S P文件转译为S e r v l e t以后,每次客户机(通常是用户的We b浏览器)向服务器请求这一个J S P
文件的时候,服务器将检查自上次编译后J S P文件是否有改变,如果没有改变,就直接执行
S e r v l e t,而不用再重新编译,其效率是相当高的。一般来说, J S P文件的编译是在第一个用户访
问到这个J S P页面时发生,而这第一个用户通常是开发人员自己,这样,正式放在服务器上让用
户访问的J S P文件一般都已经有了对应的编译好的S e r v l e t了。许多服务器都有设置,可以使J S P
文件在第一个用户访问之前就预先编译好,这样看来,效率就更高了。后面在第4章中,将展示
一个简单的J S P文件对应的S e r v l e t。
在J S P规范书中,并没有明确要求J S P中的程序代码部分(称为S c r i p t l e t)一定要用J a v a来写,
实际上,有一些J S P引擎就是采用的其他脚本语言,如:E M A C - S c r i p t、We b L等等,但实际上这几
种脚本语言也是构建在J a v a上面,编译为S e r v l e t来实现的。按照J S P规范书,完全和J a v a没有任何关
系的S c r i p t l e t也是可以的,不过,由于J S P的强大功能主要在于能和J a v a B e a n s、Enterprise JavaBeans
一起工作,所以即使是Scriptlet部分不使用Java,编译成的执行代码也应该是与Java相关的。
1.2.2 JSP的优势及与其他We b开发工具的比较
和传统的C G I相比较,J S P有相当的优势。首先,在速度上,传统的C G I程序需要使用系统
10计计第一部分JSP 入门
下载
的标准输入输出设备来实现动态网页的生成,而J S P是直接和服务器相关联的。而且对于C G I来
说,每一个访问就需要新增加一个进程来处理,进程不断地建立和销毁对于作为We b服务器的计
算机将是不小的负担。其次, J S P是专门为We b开发而设计的,其目的是为了建立基于We b的应
用程序,包含了一整套的规范和工具。使用J S P技术可以很方便地将一大堆J S P页面组合成为一
个We b应用程序。
和I S PA I和N S A P I相比较, J S P的开发速度要快得多,开发难度也要小得多,在编译为J a v a
S e r v l e t以后,配合目前最新的J I T(Just In Ti m e)的J a v a解释器,其执行速度也慢不了多少。而
且,I S A P I和N S A P I这种和We b服务器过于紧密结合的技术在使用时的一旦出现错误,很容易使
We b服务器崩溃,而J S P就没有这个缺点。
J S P的真正对手是A S P和P H P,还有即将问世的A S P +,在We b技术方面A S P、P H P和J S P的比
较见表1 - 1。
注意:这里的A S P指A S P 3 . 0,J S P指J S P规范书1 . 1中指出的规范,P H P指P H P 4。
表1-1 ASP、J S P、P H P的比较
A S P J S P P H P
We b服务器I I S、P W S 等A p a c h e 、I I S 、P W S 、
Netscape Server等等
运行平台Wi n d o w s 等各种U N I X(S o l a r i s、L i n u x、
A I X、I R I X等)、Wi n d o w s
组件技术C O M 等C O M、J a v a B e a n s
自定义TA G语法无等无
开放性无等自由软件
脚本语言支持V B S c r i p t、J S c r i p t 等P H P
建立大型We b应用程序可以等不宜
程序执行速度快等极快
学习难度低等低
S e s s i o n管理有等有
统一的数据库连接有、A D O、O D B C 等无
后缀名a s p 等p h p、p h p 3、p h p s
1. We b服务器和运行平台
A S P目前仅仅被支持于Microsoft Internet Information Server(I I S)和Personal Web Server
(P W S),由于I I S和P W S仅仅有Wi n d o w s下的版本,故A S P目前只能在Wi n d o w s平台下使用。尽
管有第三方的插件号称可以在U N I X下使用A S P,但对基于C O M组件技术的A S P来说,在没有
C O M支持的U N I X平台下只能是一个“玩具”。
J S P仅仅是一个规范,尽管通过前面的论述可以得出J S P一般要用J a v a来实现的论断,但作为
跨平台的语言, J a v a可以在许多平台下使用。这样, J S P也就显而易见的是跨平台的了。目前的
第一章概述计计11
下载
等A p a c h e、I I S 、P W S 、
Netscape Server 、i P l a n e t
等
等各种U N I X( S o l a r i s 、
L i n u x、A I X、I R I X等)、
Wi n d o w s、M a c O S等
等J a v a B e a n s、E J B
等有
等多家合作,包括S U N 、
I B M、BEA We b l o g i c、
N e t s c a p e、O r a c l e
等J a v a 、E M A C - S c r i p t、
We b L等
等可以
等极快
等较低
等有
等有、J D B C
等j s p
J S P的确可以在多种We b服务器和操作系统下使用。如Apache Web Server和Microsoft IIS等。
Apache Web Server是世界上占有率最高的We b服务器产品,可以在包括SUN Solaris、I B M
A I X、SGI IRIX、L i n u x和Wi n d o w s在内的许多操作系统下运行。Apache Web Server下J S P的实
现可以通过免费的Apache Jserv 和G N U J S P、J a k a r t a - To m c a t实现,也可以使用商业的J R U N
(L i v e S o f t w a r e)、We b l o g i c(B E A)、We b s p h e r e(I B M)来实现。
Microsoft IIS本身不直接支持J S P,但可以通过J R U N、We b l o g i c、We b s p h e r e来实现。
还可以使用应用服务器添加J S P支持的Netscape Enterprise Server及由之发展而来的可以直接
支持J S P的iPlanet Web Server等等。
P H P本身就对各种操作系统和We b服务器做了支持, P H P目前可以作为A p a c h e的一个附加模
块直接编译进入A p a c h e中去,由于A p a c h e支持多种操作系统, P H P相应地也就可以在各种操作
系统上实现。P H P也可以C G I方式或I S A P I方式插入到I I S或P W S中去。
2. 组件技术
A S P和J S P对组件技术的支持已经很完善了,而P H P直到前不久才开始支持C O M和J a v a B e a n s。
但支持也不是很完善,如果P H P不能在将来完善对组件技术的支持,在大型We b应用程序方面将
很难与J S P和A S P竞争。但由于P H P技术本身的易学易用,加上众多的函数支持和开放源代码的
特性,在中小型We b站点的开发上,P H P还是会占有一席之地的。
其实,J S P本身对于A S P和P H P并没有明显的优势, J S P的强大是因为其后面有强大的J a v a技
术做支持。包括J a v a B e a n s和J 2 E E技术在内的J a v a技术是J S P强大生命力的所在。
M i c r o s o f t最新推出的A S P +技术和A S P技术相比有了许多激动人心的进步,但是从企业级应
用的角度看, J S P技术仍然有相当的优势。有理由认为,在将来的We b开发中,中小型站点将出
现J S P、A S P +和P H P三分天下的局面,但是对于大型的电子商务站点, J S P及J 2 E E技术将成为首
选。
该入门由hamal搜集网上的资料整理而成。
希望大家在看完本入门之后能分清楚js(JavaScript)和jsp(Java Server Pages)的区别。
希望这两篇文档对大家能有所帮助!
............................................................................................................
JavaScript简介
通过超文本(Hyper Text)和超媒体(Hyper Media)技术结合超链接(Hyper link)的链接功能将各
种信息组织成网络结构(web),构成网络文档(Document),实现Internet上的“漫游”。通过HTML符
号的描述就可以实现文字、表格、声音、图像、动画等多媒体信息的检索。
然而采用这种超链技术存在有一定的缺陷,那就是它只能提供一种静态的信息资源,缺少动态的
客户端与服务器端的交互。虽然可通过CGI(Common Gateway Interface)通用网关接口实现一定的交
互,但由于该方法编程较为复杂,因而在一段时间防碍了Internet技术的发展。而JavaScript的出
现,无凝为Internet网上用户带来了一线生机。可以这样说,JavaScript的出现是时代的需求,是当
今的信息时代造就了JavaScript。
JavaScript的出现,它可以使得信息和用户之间不仅只是一种显示和浏览的关系,而是实现了一
种实时的、动态的、可交式的表达能力。从而基于CGI静态的HTML页面将被可提供动态实时信息,并
对客户操作进行反应的Web页面的取代。JavaScript脚本正是满足这种需求而产生的语言。它深受广
泛用户的喜爱的欢迎。它是众多脚本语言中较为优秀的一种,它与WWW的结合有效地实现了网络计算
和网络计算机的蓝图。无凝Java家族将占领Internet网络的主导地位。因此,尽快掌握JavaScript
脚本语言编程方法是我国广大用户日益关心的。
一、JavaScript的历史
谈到JavaScript的历史,首先就得介绍[网景](Netscape)这家公司,相信很多人使用过
Netscape浏览器来浏览网页,这家公司在设计浏览器的时候,一方面为了辅助本身发展的一种名为
LiveWire的程式,另一方面为了提高网页设计的互动性,所以发展了LiveScript这个电脑语言。
那JavaScript和LiveScript有什么关系呢?在Netscape发展LiveScript的同时,另一家名为[升
阳](Sun)的公司也正在发展Java语言,为了辅助Java的网页程式方面的设计,所以这两家公司进
行合作,共同发展LiveScript语言,并且将LiveScript语言改名为Javacript,这就是Javacript的
由来。
JavaScript刚开始时仅应用在Netscape浏览器,不过随着使用JavaScript制作网页的人愈来愈
多,微软的IE浏览器也提供了新功能,现在可以在IE浏览器上看到JavaScript的效果了。
二、什么是JavaScript
JavaScript是一种基于对象(Object)和事件驱动(Event Driven)并具有安全性能的脚本语言。使用
它的目的是与HTML超文本标记语言、Java 脚本语言(Java小程序)一起实现在一个Web页面中链接
多个对象,与Web客户交互作用。从而可以开发客户端的应用程序等。它是通过嵌入或调入在标准的
HTML语言中实现的。它的出现弥补了HTML语言的缺陷,它是Java与HTML折衷的选择,具有以下几个
基本特点:
1、是一种脚本编写语言 JavaScript是一种脚本语言,它采用小程序段的方式实现编程。像其它脚本语言一样,JavaScript同
样已是一种解释性语言,它提供了一个易的开发过程。 它的基本结构形式与C、C++、VB、Delphi十分类似。但它不像这些语言一样,需要先编译,而是在
程序运行过程中被逐行地解释。它与HTML标识结合在一起,从而方便用户的使用操作。
2、基于对象的语言。 JavaScript是一种基于对象的语言,同时以可以看作一种面向对象的。这意味着它能运用自己已经
创建的对象。因此,许多功能可以来自于脚本环境中对象的方法与脚本的相互作用。
3、简单性 JavaScript的简单性主要体现在:首先它是一种基于Java基本语句和控制流之上的简单而紧凑的设
计, 从而对于学习Java是一种非常好的过渡。其次它的变量类型是采用弱类型,并未使用严格的数
据类型。
4、安全性 JavaScript是一种安全性语言,它不允许访问本地的硬盘,并不能将数据存入到服务器上,不允许
对网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互。从而有效地防止数据的丢
失。
5、动态性的 JavaScript是动态的,它可以直接对用户或客户输入做出响应,无须经过Web服务程序。它对用户的
反映响应,是采用以事件驱动的方式进行的。所谓事件驱动,就是指在主页(Home Page)中执行了某
种操作所产生的动作,就称为“事件”(Event)。比如按下鼠标、移动窗口、选择菜单等都可以视为
事件。当事件发生后,可能会引起相应的事件响应。
6、跨平台性 JavaScript是依赖于浏览器本身,与操作环境无关,只要能运行浏览器的计算机,并支持
JavaScript的浏览器就可正确执行。从而实现了“编写一次,走遍天下”的梦想。
实际上JavaScript最杰出之处在于可以用很小的程序做大量的事。无须有高性能的电脑,软件仅需
一个字处理软件及一浏览器,无须WEB服务器通道,通过自己的电脑即可完成所有的事情。
综合所述JavaScript是一种新的描述语言,它可以被箝入到HTML的文件之中。JavaScript语言可以
做到回应使用者的需求事件(如:form的输入),而不用任何的网路来回传输资料,所以当一位使用
者输入一项资料时,它不用经过传给伺服端(server)处理,再传回来的过程,而直接可以被客户端
(client) 的应用程式所处理。
JavaScript 和 Java 很类似,但到底并不一样! Java 是一种比 JavaScript 更复杂许多的程式语
言,而 JavaScript 则是相当容易了解的语言。JavaScript 创作者可以不那麽注重程式技巧,所以
许多 Java 的特性在 Java Script 中并不支援。
三、JavaScript和Java的区别
虽然JavaScript与Java有紧密的联系,但却是两个公司开发的不同的两个产品。Java是SUN公司推出
的新一代面向对象的程序设计语言,特别适合于Internet应用程序开发;而JavaScript是Netscape
公司的产品,其目的是为了扩展Netscape Navigator功能,而开发的一种可以嵌入Web页面中的基于
对象和事件驱动的解释性语言, 它的前身是Live Script;而Java的前身是Oak语言。下面对两种语
言间的异同作如下比较:
1、基于对象和面向对象 Java是一种真正的面向对象的语言,即使是开发简单的程序,必须设计对象。 JavaScript是种脚本语言,它可以用来制作与网络无关的,与用户交互作用的复杂软件。它是一种
基于对象(Object Based)和事件驱动(Event Driver)的编程语言。因而它本身提供了非常丰富
的内部对象供设计人员使用。
2、解释和编译 两种语言在其浏览器中所执行的方式不一样。Java的源代码在传递到客户端执行之前,必须经过编
译,因而客户端上必须具有相应平台上的仿真器或解释器,它可以通过编译器或解释器实现独立于
某个特定的平台编译代码的束缚。 JavaScript是一种解释性编程语言,其源代码在发往客户端执行之前不需经过编译,而是将文本格
式的字符代码发送给客户编由浏览器解释执行。
3、JavaScript的结构较为自由松散,譬如,程式中使用的变数前并不是需要明确的定义,而Java和
正统的程式语言一样,结构较为严谨。 例如:强变量和弱变量 两种语言所采取的变量是不一样的。 Java采用强类型变量检查,即所有变量在编译之前必须作声明。如:
Integer x; String y; x=1234; x=4321;
其中X=1234说明是一个整数,Y=4321说明是一个字符串。 JavaScript中变量声明,采用其弱类型。即变量在使用前不需作声明,而是解释器在运行时检查其
数据类型,如:
x=1234; y="4321";
前者说明x为其数值型变量,而后者说明y为字符型变量。
4、代码格式不一样 JavaScript的代码是一种文本字符格式,可以直接嵌入HTML文档中,并且可动态装载。编写HTML文
档就像编辑文本文件一样方便。并且JavaScript必须编写在HTML文件中,直接查看网页的原始码,
就可以看到JavaScript程式,所以没有保护,任何人都可以透过HTML文件复制程式。 Java是一种与HTML无关的格式,必须通过像HTML中引用外媒体那么进行装载,其代码以字节代码的
形式保存在独立的文档中。Java应用在网页的程式称为Java Applet(Applet是[小程式]的意思),
是和HTML文件分开的。
5、嵌入方式不一样 在HTML文档中,两种编程语言的标识不同,JavaScript使用<Script>...</Script>来标识,而Java
使用<applet>...</applet>来标识。
6、静态联编和动态联编 JavaScript是一种象文件一样的描述语言,透过浏览器就可以直接执行;而Java像正统的程式语言
(如C/C++)一样,必须先进行编绎和连结等动作才可执行。 Java采用静态联编,即Java的对象引用必须在编译时的进行,以使编译器能够实现强类型检查。 JavaScript采用动态联编,即JavaScript的对象引用在运行时进行检查,如不经编译则就无法实现
对象引用的检查。
7、JavaScript不具有读写档案及网络控制等功能(它的设计者考虑到安全性的因素而没有提供支持
),Java则有提供这些功能,但是JavaScript在网页内容的控制和互动性方面,可算是最方便快捷
的。
四、JavaScript程序运行环境
软件环境: ·Windows 95/98或Windows NT。 ·Netscape Navigator x.0或Internet Explorer x.0。 ·用于编辑HTML文档的字符编辑器(WS、WPS、Notepad、WordPad等)或HTML文档编辑器。
硬件配置: 首先必须具备运行Windows 95/98或Windows NT的基本硬件配置环境。推荐: ·基本内存32M。 ·CRT只少需要256颜色,分辨率在640X480以上。 ·CPU只少233以上。 ·鼠标和其它外部设置(根据需要选用)。
五、编写第一个JavaScript程序
下面我们通过一个例子,编写第一个JavaScript程序。通过它可说明JavaScript的脚本是怎样被嵌
入到HTML文档中的。
test1.html文档:
<html> <head> <Script Language ="JavaScript"> // JavaScript Appears here. alert("这是第一个JavaScript例子!"); alert("欢迎你进入JavaScript世界!"); alert("今后我们将共同学习JavaScript知识!"); </Script> </Head> </Html>
说明:
·test.html是HTML文档,其标识格式为标准的HTML格式; ·如同HTML标识语言一样, JavaScript程序代码是一些可用字处理软件浏览的文本,它在描述页面
的HTML相关区域出现。 ·JavaScript代码由 <Script Language ="JavaScript">...</Script>说明。在标识<Script
Language ="JavaScript">...</Script>之间就可加入JavaScript脚本。 ·alert()是JavaScript的窗口对象方法,其功能是弹出一个具有OK对话框并显示()中的字符串。 ·通过<!-- ...//-->标识说明:若不认识JavaScript代码的浏览器,则所有在其中的标识均被忽略
;若认识,则执行其结果。使用注释这是一个好的编程习惯,它使其他人可以读懂你的语言。 ·JavaScript 以 </Script> 标签结束。
从上面的实例分析中我们可以看出,编写一个JavaScript程序确实非常容易的。 |