选择显示字体大小

加快jdbc设计中jsp访问数据库

    以前,我们已经提到,jsp程序都是模块,并且具有强大的表达-请求(presentation-request)功能。建立一个完美的数据库访问是一个具有挑战的过程,而jdbc接口能够很好地完成这一过程。然而,嵌入于jsp代码中的jdbc代码,与sql命令嵌入在jdbc一样,可以充分利用jsp的功能,为客户端建立一个整洁而简便的api。为了达到这一目的,我们可以考虑到使用jsp操作来建立数据库接口组件


    完美的jsp设计模式是model-view-controller (mvc)。传统三层体系为:model为程序逻辑和数据;view为查看;以及controller为请求处理。遵循这一模型,一个jsp程序包含客户端-服务器“对话框”的每一“行”的页面。在一个典型的程序中,你可以看到一个查询页面,一个验证页面,一个数据库插入页面,一个数据库更新页面,等等。

在上一篇的文章中,我们讨论到如何在每一页面中嵌入jdbc,以保证程序的结构更加合理。然而,建立可执行的sql命令,正如变量通过jdbc命令而传递一样,也有可能会增加程序的复杂性。

jdbc设计的jsp操作
jsp数据库操作的另一方法是,在不使用jdbc的情况下为数据库建立一些操作的集合。使用这种方法,你可以得到两种好处:第一,你可以消除使用jdbc的必要,这就使得很多工作得以简化;第二,你的设计和代码的组织更加合理(比如可读性,灵活性,以及可维护性)。

你仍然需要一些驱动程序,但你首先简化以上的操作。jsp程序中的操作都是一些逻辑块,通常被其它的jsp程序开发者编写和利用,但你可以把它们当成子程序来使用。使用jsp操作的意义是标准化某些功能,以及最大程度地减少嵌入在jspjava代码数量。

jsp提供了一套标准扩展的类。通过这些类,你可以通过一个标签管理器器(tag handler)定义一个操作。这里有两个jsp定义的java接口:tag接口和bodytag接口,分别是由tagsupport类和bodytagsupport类执行。

你可以建立通用jsp用途的一个标签库,并且你也可以执行标签管理器(tag handler)以扩展类的支持。以下是实现这些过程的步骤。

首先,执行一个标签管理器的类:

packagecom.myactions;
 
(import statements go here)
 
public class myactiontag extends tagsupport {
       ...
       }

接着,编译这段代码,并将类文件放置在程序的类库中。然后,你将需要一个tag library descriptor (tld)文件,这是一个xml文件,以匹配你的操作名称和相应的标签管理器的类。

<tag>
       <name>myaction</name>
       <tagclass>com.myactions.myactiontag</tagclass>
       <bodycontent> (whatever)  </bodycontent>
       <attribute>mydata</attribute>
</tag>

</tag>

相关的trialware

  • dbutils (apache software foundation)
  • ibm informix jdbc driver (ibm)
  • mysql connector/j 3.0 (xml:namespace prefix = st1 />mysql ab)
  • sql4x manager j 2.2 (macosguru)
  • informix downloads (ibm red brick warehouse 32bit) (solaris) (ibm)
  • informix downloads (ibm red brick warehouse 64bit) (hpux) (ibm)
     更多trialware

    假设你已经建立一个名为myaction的操作,这是一个与com.myactions.myactiontag类匹配的tld。tld文件必须位于程序的tlds路径。

    当你从一个jsp页调用操作时,tld告诉jsp正确的类以使用操作。这就带来极大的方便,而且只需要少量的代码。

    但是,从何引入sql?首先,你需要建立具有连接功能的数据库访问。你可以使用javax接口来完成,而javax可见于jdbc 2.0 optional工具箱。jdbc 2.0的javax.sql.datasource类提供了你所需要的连接。

    此时,sql位于什么地方?它在bean中。你可以使用jdbccreatestatement和preparedstatement在bean中建立一个方法。将这一方法成为一个公共的vector,并正确地将你的sql声明传递到这一方法。

     

    总结
    你的数据库bean执行一个嵌入在操作体的sql语句,你可以传递一个语句给sql语句,或者使用它来执行一个预先的操作。可以通过标签管理器来执行你的操作。由于jdbc被嵌入于库代码中,你将不能在jsp程序中明确地使用它。

    初次使用这种方法会觉得它比jdbc中的嵌入sql,以及jsp中的嵌入jdbc更加复杂,但是,你建立sql操作并将它们存放在一个tld,你只需做一次,在所有的jsp程序中就可以访问这些操作。这就是这种方法的优点。

    下一次,我们将会讲述到jsp页和会话(sessions)之间的数据传递。


  •  


    关键字 本文所属关键字

    相关 与本文相关文章

    分类 所有文章关键字导航

    源码编程相关

    Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

    SQL数据库相关

    My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

    手机无线相关

    3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

    网页设计制作相关

    HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

    网站建设推广相关

    建站经验   网站优化   网站排名   推广   Alexa

    操作系统/服务器相关

    Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

    图形图像多媒体相关

    Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

    标准 网站致力的规范

    Valid CSS!

    无不良内容,无不良广告,无恶意代码

    Valid XHTML 1.0 Transitional

    creativecommons