jsp

位置:IT落伍者 >> jsp >> 浏览文章

在JDBC设计中加速JSP访问数据库


发布日期:2024年07月08日
 
在JDBC设计中加速JSP访问数据库

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

完美的JSP设计模式是ModelViewController (MVC)传统三层体系为Model为程序逻辑和数据;View为查看;以及Controller为请求处理遵循这一模型一个JSP程序包含客户端服务器对话框的每一的页面在一个典型的程序中你可以看到一个查询页面一个验证页面一个数据库插入页面一个数据库更新页面等等

如何在每一页面中嵌入JDBC以保证程序的结构更加合理然而建立可执行的SQL命令正如变量通过JDBC命令而传递一样也有可能会增加程序的复杂性

JDBC设计的JSP操作

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

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

JSP提供了一套标准扩展的类通过这些类你可以通过一个标签管理器(tag handler)定义一个操作这里有两个JSP定义的Java接口Tag接口和BodyTag接口分别是由TagSupport类和BodyTagSupport类执行

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

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

packagecommyactions; (import statements go here)

public class MyActionTag extends TagSupport {

}

接着编译这段代码并将类文件放置在程序的类库中然后你将需要一个Tag Library Descriptor (TLD)文件这是一个XML文件以匹配你的操作名称和相应的标签管理器的类

< tag> < name>MyAction< /name>

< tagclass>commyactionsMyActionTag< /tagclass>

< bodycontent> (whatever)< /bodycontent>

< attribute>myData< /attribute>

< /tag>

< /tag>

假设你已经建立一个名为MyAction的操作这是一个与commyactionsMyActionTag类匹配的TLDTLD文件必须位于程序的TLDs路径

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

但是从何引入SQL?首先你需要建立具有连接功能的数据库访问你可以使用javax接口来完成而javax可见于JDBC Optional工具箱JDBC 的javaxsqlDataSource类提供了你所需要的连接

此时SQL位于什么地方?它在bean中你可以使用JDBCcreateStatement和PreparedStatement在bean中建立一个方法将这一方法成为一个公共的Vector并正确地将你的SQL声明传递到这一方法

总结

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

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

上一篇:浅析JSP开发中的对象和范围属性

下一篇:在Linux系统中搭建JSP开发环境