博客系统的重要技术
1.1 jsp技术
  在 Sun 正式发布 JSP(JavaServer Pages) 之后,这种新的 Web 应用开发技术很快引起了人们的关注。 JSP 为创建高度动态的 Web 应用提供了一个独特的开发环境。按照 Sun 的说法, JSP 能够适应市场上包括 Apache WebServer 、 IIS4.0 在内的 85% 的服务器产品。JSP 与ASP(ASP详见第6章所述)非常相似。两者都提供在HTML 代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。同时,ASP 和 JSP 都是面向 Web 服务器的技术,客户端浏览器不需要任何附加的软件支持。在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp)。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送 email 等等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低,可以实现无Plugin,无ActiveX,无Java Applet,甚至无Frame。
    ASP 和 JSP 的区别主要有以下两点:一是ASP 的编程语言是 VBScript 之类的脚本语言, J
SP 使用的是 Java 、JavaScript等;二是 ASP 与 JSP这两种技术的语言引擎用完全不同的方式处理页面中嵌入的程序代码。在 ASP 下, VBScript 代码被 ASP 引擎解释执行;在 JSP 下,代码被编译成 Servlet 并由 Java 虚拟机执行,这种编译操作仅在对 JSP 页面的第一次请求时发生。
    JSP技术在多个方面加速了动态Web页面的开发。它具有很多优点。首先,它可以将内容的生成和显示进行分离。使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面;使用JSP标识或者小脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和Beans中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBC TM技术访问数据库,或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。其次,强调可重用的组件。绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者Enterprise JavaBeans TM组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换
执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。第三,采用标识简化页面开发。Web页面开发人员不会都是熟悉脚本语言的编程人员。JavaServer Page技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。
JSP技术实际上是通过引擎JSP把JSP标签、JSP页中的Java代码甚至连同静态HTML内容都转换为大块的Java代码。这些代码块被JSP引擎组织到用户看不到的Java Servlet中去,然后Servlet自动把它们编译成Java字节码。这样,当网站的访问者请求一个JSP页时,在他不知道的情况下,一个已经生成的、预编译过的Servlet实际上将完成所有的工作。非常隐蔽而又高效。因为Servlet是编译过的,所以网页中的JSP代码不需要在每次请求该页时被解释一遍。JSP引擎只需在Servlet代码最后被修改后编译一次,然后这个编译过的Servlet就可以被执行了。由于是JSP引擎自动生成并编译Servlet,不用程序员动手编译代码,所以JSP能提供高效的性能和快速开发所需的灵活性。
1.2 JSP的优点 
  1,将内容的生成和显示进行分离   
  使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求来变化的,例如请求帐户信息或者特定的一瓶酒的价格)。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和Beans中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。   
  在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBCTM技术访问数据库,或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。 
   
  2,生成可重用的组件   
  绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者Enterprise  JavaBeansTM组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。 
  3,采用标识简化页面开发   
  Web页面开发人员不会都是熟悉脚本语言的编程人员。JavaServer  Page技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。   
  通过开发定制化标识库,JSP技术是可以扩展的。今后,第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。 
   
  4,  将内容的生成和显示进行分离   
  与SERVLETS相比,JSP能提供所有SERVLETS功能,但它比用println书写和修改HTML更方便。此外,你可以更明确的进行分工,WEB页面设计人员编写HTML,只需要留出地方让SERVLETS程序员插入动态部分即可。 
  5,  由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译成为Java  Servlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性。   
  6  作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。随着越来越多的供应商将JSP支持添加到他们的产品中,您可以使用自己所选择的服务器和工具,更改工具或服务器并不影响当前的应用。
2.2 数据库访问技术
  WWW是基于浏览器/服务器结构的,它采用TCP/IP通信协议和WWW技术集成已有的各类系统,从而把传统的客户/服务器模式中的服务器分成了一个Web服务器和多个数据库服务器。
但随着Internet的发展,静态Web站点的开发与维护变得越来越困难,其最大的问题就是缺少交互性,信息的内容只有在网站管理人员更改后才能发生变化,使得Web****不得不频繁修改他们的网页。为了向网络用户提供大量有用的、动态的和可交互的信息,凡是能够数据库化的内容,应尽量做成数据库的形式,因为数据库形式的数据远比其他形式的数据要容易更新与管理。
基于Web的数据库访问技术是指:在客户端安装Web浏览器,作为用户输入查询条件和显示查询结果的交互界面。用户可以通过填写表格或输入关键字的方式来与WWW进行交互,当用户单击表格上的按钮时,表格中的数据便发送到Web服务器。Web服务器介于Web浏览器与数据库服务器之间,负责用户输入信息的接收。服务器将数据传送至要被处理的脚本或应用程序,并在数据库中查询数据或将数据投递到数据库中。最后,服务器将返回结果插入到HTML页面,传送至客户端以响应用户。这种交互性提高了用户参与的积极性。
数据库引擎是Web数据库站点最重要的组成部分之一。当我们评价一个Web数据库引擎的时候,首先应考虑多用户问题,也就是说,数据库必须能够支持多个并发用户的访问。
另外,所建立的Web数据库应是关系型的。关系数据库是一种功能完善、运行可靠的数据库系
server系统和普通系统的区别统,目前大多数的商业应用都主要依赖于这种系统,如SQL Server、Sybase和Oracle等。在另一方面,关系数据库支持的是一个相当标准的特性集。所有产品都以一个非常容易理解的标准语言为基础,即SQL/92语言规范。所以在Web数据库系统中,采用何种RBMS(关系型数据库管理系统)都没有什么关系,因为它们都遵守同一个标准。
从技术发展的角度来看,以前通过浏览器访问数据库的惟一渠道是CGI方式。随后出现了ISAPI、NSAPI和JDBC等技术方案,近来又流行ASP技术。下面我们对这些技术逐一进行分析。
一、CGI技术
CGI(Common Gateway Interface)是外部应用程序与Web服务器交互的一个标准接口。CGI应用程序可以完成客户端与服务器的交互操作。它打破了服务器软件的局限性,允许用户根据需要采用各种语言去实现无法用HTTP、HTML实现的功能,给WWW提供了更为广阔的应用空间。例如,一个能够访问外部数据库的CGI程序可以使客户端用户通过Web服务器进行数据库的查询。同时,CGI也为在不同的平台之间进行沟通提供了范例。
遵循CGI标准编写的服务器端的可执行程序称为CGI程序。CGI最大的用处之一在于其与浏览Web站点的用户之间的交互能力,使信息网关、反馈机制、访问数据库、订阅和查询等一系列灵活复杂的操作得以实现。通过这个公共网关界面,服务器可以向CGI程序发送信息,CGI程序也可以向服务器回送信息。使用CGI实现Web与数据库的互连,最大的优点在于其通用性。目前几乎所有的HTTP服务器都支持CGI。CGI程序与服务器、客户机的关系及遵守的协议和标准可用图1来说明。
首先,客户端根据某资源的URL向Web Server提出请求,Web Server的HTTP Daemon(守护进程)将此请求的参数通过标准输入stdin和环境变量(Environment Variable)传递给指定的CGI程序,并启动此应用程序进行处理。处理结果通过标准输出stdout返回给HTTP
Daemon进程,再由HTTP Daemon进程返回给客户端,由浏览器负责解释执行,将最终结果显示在用户面前。
CGI程序的执行一般有两种调用方式:一是通过URL直接调用,在浏览器的URL栏里直接写入上述地址就可以调用该程序;另一种方式,也是主要的方式,是通过交互式主页中的FORM栏调用,通常都是用户在填完一张输入信息主页后按"确认"按钮启动CGI程序。主页的交互一般都是
这样调用CGI来完成的。
从编程语言的角度讲,CGI只是一个普通的程序,只不过其输入、输出的处理比较特殊,只要能达到交互的目的,CGI程序可以使用Perl、C、C++,FORTRAN和数据库语言等任何能够形成可执行程序的语言编写。WinCGI是由标准CGI演变而来的。WinCGI允许作为应用程序运行的服务器使用Windows应用程序的服务,包括Visual Basic程序。使用这个界面,一个以WinCGI为基础的程序是从磁盘文件中读取信息而不是从环境变量或标准输入中读取,并且把得出的最后数据写到文件中而不是写到标准输出中。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。