JSP实践要点
在 internet众多网站中,基于web的动态网站应用相当广泛。基于web网络数据库的动态网站由一个web作为客户端界面,一个数据库服务器用做信息存储和一个连接两者的 web应用服务器组成。原有开发动态网站的cgi技术,随着web应用程序的客户端技术不断地发展,逐渐被java applet、activex控件、dhtml和javascript所取代。这些技术极大地改善了用户界面,但当它们尝试做一些深入的工作时,开始遇到客户端浏览器不兼容、服务器负担过重、访问速度下降以及安全性等问题。(sun企业级应用的首选)技术就是解决这些问题的一把金钥匙,本文主要讨论在使用jsp(sun企业级应用的首选)技术构建动态网站的过程中的一些技术问题。
jsp(sun企业级应用的首选)技术
jsp(sun企业级应用的首选)是基于java servlet以及整个java体系的web开发技术,利用这一技术可以建立先进、安全、快速和跨平台的动态网站。在传统的网页html文件中加入java程序片段和jsp(sun企业级应用的首选)标记,就构成了jsp(sun企业级应用的首选)网页。web服务器接收到访问jsp(sun企业级应用的首选)网页的请求时,首先执行其中的程序片段,然后将执行结果以html格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送 e-mail 等等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求很低。如图1所示,在用户连接jsp(sun企业级应用的首选)网站时,用户请求网页,jsp(sun企业级应用的首选)页面独自响应请求,将用户对网页的请求转化为对数据的请求,通过javabean处理请求并将返回的数据封装成html页面返回给用户。
jsp(sun企业级应用的首选)有许多优势:
1. 程序写一次,到处可以运行。jsp(sun企业级应用的首选)在设计时,充分考虑到应用平台的无关性。依赖于java的可移植性,jsp(sun企业级应用的首选)得到目前许多流行操作平台的支持,可在apache(unix平台最流行的web服务器平台)、netscape、iis等服务器上执行。
2. 执行速度快。jsp(sun企业级应用的首选)页面只需编译一次转化为java字节代码,其后一直驻留于服务器内存中,加快了对jsp(sun企业级应用的首选)页面的响应速度。若不考虑jsp(sun企业级应用的首选)页面第一次编译所花的时间,则jsp(sun企业级应用的首选)的响应速度要比asp快得多。
3. java的优势。jsp(sun企业级应用的首选)技术是用java语言作为脚本语言的。跨平台、成熟、健壮、易扩充的java技术使得开发人员的工作在其他方面也变得容易和简单。在windows被怀疑可能会崩溃时,java能有效地防止系统崩溃。java语言通过提供防止内存泄漏的方法,在内存管理方面大显身手。加之,jsp(sun企业级应用的首选)为应用程序提供了更为健壮的意外事件处理机制,充分发挥了java的优势。
jsp(sun企业级应用的首选)技术难点
1. 连接数据库
数据库连接对动态网站来说是最为重要的部分,在与后端数据库连接时可以采用odbc或jdbc技术。虽然odbc作为传统的连接数据库的手段是一种选择,但是odbc有以下致命缺陷,从而使它无法胜任jsp(sun企业级应用的首选)的请求:
(1) odbc是c语言实现的api,从java程序调用本地的c程序会带来一系列类似安全性、完整性、健壮性方面的问题。
(2) 其次,完全精确地实现从c代码odbc到java api 翻译的odbc不会令人满意,因为在java中没有指针,而odbc中大量地使用了指针,包括极易出错的空指针“void *”。
(3) 考虑到平台移植性,在开发jsp(sun企业级应用的首选)程序中使用odbc会带来负面影响,使得代码不适合于移植。
为了使程序在具有安全性、完整性、健壮性的同时, 可以方便地移植,采用jdbc连接数据库更合适一些。jdbc是一种可用于执行sql语句的java api,它由一些java语言写的类、界面组成,使开发人员可以用纯java语言编写完整的数据库应用程序。通过使用jdbc,可以很方便地将sql语句传送到几乎任何一种数据库。也就是说,可以不必写一个程序访问sybase,写另一个程序访问oracle(大型网站数据库平台),再写一个程序访问microsoft的sql server(windows平台上强大的数据库平台)。用jdbc写的程序能够自动地将sql语句传送给相应的数据库管理系统。
在本地数据库程序使用microsoft的access(小型网站之最爱)等数据库时,可以使用sun公司开发的jdbc-odbc桥,借用此技术jsp(sun企业级应用的首选)程序就可以访问带有odbc驱动程序的数据库。这样既保留jdbc的优点,又可以使用microsoft提供的odbc数据源与access(小型网站之最爱)连接。不管对方是何种数据库,只要有odbc接口就可以直接使用jdbc-odbc桥与数据库连接,而无需因为后端数据库的改变而改动相应的程序代码,实现了应用层与数据库层的完美分离。如果需要变后端数据库为mysql(和php搭配之最佳组合),只需在odbc数据源中安装mysql(和php搭配之最佳组合)的驱动程序之后,就可以直接使用mysql(和php搭配之最佳组合)数据库了。