宋国平
(吉林广播电视大学,吉林 长春 130022)
随着科学技术水平的提高以及Web的广泛应用,多种多样的高级编程语言和高级功能的程序逻辑相继出台,从而促进了客户端-服务端的服务模式。在此过程中,动态网页技术得以诞生。而JSP技术能够帮助Web站点的动态网页设计和开发人员提供一种既简单又高效的创建和维护动态网页的开发技术。本文论述了JSP技术的原理和特点,并通过分析JSP技术的优势,表明了JSP技术在动态网页开发方面的重要意义。
JSP是Sun公司推出的新一代站点开发语言,JSP技术脱离了硬件平台的束缚,从而实现了静态和动态网页的分离,提高了运行效率。JSP技术类似于Microsoft的ASP技术,JSP也对HTML标记集合进行了相应的扩展,而这些扩展的标记只能由支持它的服务器上的JSP引擎对其进行识别并负责解释执行。当Web服务器接受一个从客户端发来的用户请求时,JSP或者Servlet引擎把JSP文件转换成Servlet代码,把结果传送给JVM,此时JVM会对其进行编译把生成的文件存放在服务器上,继续执行,然后把结果通报给JSP或者Servlet引擎,然后再把结果传回Web服务器。最后由Web服务器把结果以XML或者HTML页面的形式返回到客户端,最终用户能够通过浏览器查看反馈的结果。因为只用在用户做出请求时,Servlet代码才会执行,所以在首次对Servlet进行调用时会有几秒钟的加载时间,但是一旦JSP被编译执行一次之后,它的代码就以一个独立的线程在后台运行,因此,以后当用户发出请求时,不用重新编译就能直接进行运行。
JSP技术是对Servlet技术的延伸和拓展,它为基于JAVA环境开发多层次结构的动态Web应用程序提供更为方便高效的方法。JSP技术具有以下一些特点:
(1)分离内容的生成与显示。这是JSP技术的最大特点,使用JSP技术,Web页面的开发和设计人员能够使用XML和HTML标记来格式化和实际开发最终的页面,并使用ISP标识或者小脚本来生成页面上的动态内容,并运用JSP对页面上的动态内容进行生成。对生成的内容在JavaBeans组件和标识中进行封装,并且对脚本捆绑,由引擎对服务器端运行的全部JSP标识和脚本进行解释,从而生成所请求的内容。这样做,不仅仅使基于HTML的任何可能性得以保证,还能够帮助作者保护自己的代码。
(2)提高程序的执行效率。因为几乎所有的平台都支持Java,因此可以说几乎能够在全部平台下执行。基于Java编程语言的JSP页面的内置脚本语言,拥有Java编程语言“一次编写,各处运行”的特点,因此不同平台的转移,Java和JSP是不需要进行重新编译的。从而加快了运行速度。
(3)对组件的重用。当处理较为复杂的应用程序时,多数的JSP页面能够通过依赖可重用的组件、跨平台的组件(Enterprise JavaBeans或者Java Beans组件)来进行,通过对组件的重用能够加速总体开发的过程,不断完善技能的开发并且能够优化结果,并进而使两者处于平衡状态。
(4)采用标记进而简化了页面的开发。并非所有的Web页面开发和设计人员都是熟悉脚本语言的编程人员,而Java技术对众多在HTML标记中生成的动态内容所必需的易用功能进行了封装。标准的JSP对Java组件进行访问和实例化,通过检索或者设置组件的属性,下载Applet,来执行更为繁杂和耗费大量时间的功能。开发人员把易用功能创设到个人的标记库中,有利于Web页面的开发设计人员更为简单高效的进行Web页面的开发。
(5)可扩展性。可扩展性指的是一个软件进行扩展和增强的能力,即已有的特性是否能够较为容易地修改,新特性是否能够很容易地加入进去,而且不会对系统的其他的部分产生副作用。在动态网页开发过程中,通过开发设计人员创设的标记库,使的JSP技术得以扩展。
(6)对不同的浏览器均可以兼容。JSP技术在不同的浏览器中都可以兼容。
(7)与Java平台的有机结合,使得JSP技术同时具有了Java的全部优点。Java2平台的重要组成部分之一就是JSP技术,JSP技术的脚本语言即为Java语言,更为充分的发挥Java语言的功能。基于JSP技术能开发创建更为可靠和可伸缩的Web应用程序。此外,JSP技术还包含了易扩充性、高效的存储管理以及各种API支持和强大的数据库支持。
(8)JSP技术提供了一部分隐含对象。这些隐含的对象在JSP页面中不用首先声明就可以直接引用。这一特点能促使脚本的功能不断增强,从而使编程过程更为简单和高效。
作为一种字节代码,Java的编译代码在运行时通过操作系统上的一个JVM(Java VirtualMachine)虚拟机解释。字节代码能够不需要任何改动就可以再全部的平台上进行迁移,特别是在使用图形化界面时,因为Servlet是不需要任何图形界面的,因此相比与传统的Java程序,Servlet程序运行速度很快。因为HTML的GUI非常少,所以它们在服务器运行时不需要加载冗长繁杂的GUI。此外,只有在用户请求时,Servlet的字节代码才会执行,虽然首次调用Servlet之时,会有一小段时间的加载,但是因为服务器对运行过的Servlet已经进行了缓存,所以后续的请求在处理时会非常迅速。同时JSP技术与Java平台的有机结合,使得当前的JSP服务器,均携带Java即时编译器,因此,相比于ASP和PHP代码每次都要解释才能执行,JSP的执行要快很多,特别是当处在循环操作时的代码,JSP技术的速度能够快1-2个数量级。
与其他的动态网页技术的性能想比较,由于ASP和PHP代码每次都需要解释才能进行执行,所以通过比较,JSP的执行要快很多,特别是在进行循环操作时,相比于其他技术,JSP技术的执行速度会更加迅速。同时,由于PHP技术本身具有非常多的缺陷,因为PHP缺乏多层规模支持以及多层结构的支持,所以发布计算数据库必须运用到大负荷的站点中,可以分开应用逻辑层以及表示逻辑层,与此同时,还可以根据流量将同层分隔开,从而使二维阵列形成。但是这种技术支持在PHP中是缺乏的,而且PHP提供的数据库具有不统一的接口,因此在电子商务中并不适用。而这些PHP的缺陷在JSP技术中并不存在。因此JSP技术相比于PHP技术而言更加具有应用上的优势。
利用JSP技术对动态网页进行开发的方式通常有两种。一种是在JSP页面中调用Java,以高效的存储管理、易扩充性以及各种API支持和强大的数据库为依托,充分发挥Java的强大功能。另一种是在HTML页面上直接嵌入Java程序,相当于在HTML页面上直接写上Servlet的源代码。这两种方式在实现动态网页开发上各有千秋,在实际的应用中应该依据项目的难以程度和开发设计者的能力选择具体的使用方式。比如当页面的结构相对复杂,混为一体的HTML代码和Java代码致使阅读以及修改较为麻烦和困难时,可以采用第一种方式,这种方式把Java代码从HTML页面中分离开来,虽然这种方式需要维护的文件比较多,但它的结构比较清晰,单独的Java程序代码能够编译为可以重用的组件,而且只要对HTML页面和Java程序之间的参数传递机制进行规范,就能帮助不同的开发设计人员对HTML页面以及Java程序分别进行负责,对企业级的大项目节约了宝贵的时间,提高了设计的效率。当设计开发者对HTML页面设计和Java语言编程都很熟悉的情况下,采用第二种方式能使改动时所需维护的文件数目减少,从而简化执行过程。
综上所述,本人通过论述JSP技术的原理和特点,分析了JSP技术在动态网页开发上的优势,得出以下结论:Java Servlet作为一种开发Web应用的较为理想的架构。JSP依托Servlet技术,改进和优化了很多方面。由于JSP技术的跨平台性、可扩展性等其他的一些特点,使得操作平台和Web服务器以及其他的一些组件在不影响JSP基本应用程序的基础上能够很简单高效的进行组件切换和升级。JSP应用程序能适应Web应用程序的各种变化和发展。基于以上所述的JSP技术的特点优势,JSP/Servlet解决方案被世界上很多大型的电子商务解决提供商所利用和采纳。随着Web的广泛应用,这种基于Java环境的崭新的服务器端的动态网页技术,为Web站点的动态网页开发和设计人员开拓了一条更为简单、高效的道路。JSP技术已经成为动态网页开发的一项主流技术,它的应用必将在未来越来越广泛。
[1]黄理,等.JSP轻松开发W eb网站[M].北京:北京希望电子出版社,2001.
[2]杨德华.W eb服务器端的动态网页技术.计算机应用研究,1999:(10).
[3]施汝军.网站JSP后台解决方案[M].北京:人民邮电出版社,2001:4-14.