jsp+sql智能道路交通信息管理系统-文献翻译 联系客服

发布时间 : 星期四 文章jsp+sql智能道路交通信息管理系统-文献翻译更新完毕开始阅读31c9e445ff00bed5b9f31d74

<%-- set all bean properties that match a form field --%>

集成JavaBean组件是JSP技术设计方面的一个过人之处。不幸的是bean和JDBC之间的集成根本不是无缝的,因

映射bean和ResultSet 示例使用com.devtech.sql以使说明简洁。示例使用Java Reflection和 此我们针对DevTech的JDBC工作开发Introspection,依靠列名及属性名提供了一个包,它不仅提供了bean和JDBCJDBC数据和bean属性间的映射。您可的集成,而且还有必要的异常处理,从而使程序员不必应付这些细节。

以把DevTech包替换成自己的代码。 annotation(注释)示例使用com.devtech.sql包中的两种查询和更新方法。这里用到的查询方法传递一个bean类、一个SQL查询和一个Object数组填充查询中的占位符。在这种情况下,仅有的占位符是给页面的URL的。结果是一个数据库游标对象,它必须是一种迭代器。 清单7 数据库游标对象 dataBase.queryCursor(AnnotationDBBean.class, new String[] { URL }, \\这个查询方法的有趣之处在于指定类型的bean将会为您实例化,只要bean属性名同ResultSet中的列名相对应,属性值就会被自动设置。每次您用游标选择下一行时,bean的属性就会根据ResultSet被自动设置。

用到的这种特殊更新方法有一个bean实例、一个String数组及一条update语句作为参数。String数组值规定了用来填充更新中的占位符的预期bean属性。在这种情况下,page、author和annotation属性是根据bean选择的。 清单8 更新方法

int count = dataBase.update(annotationBean, new String[] { \\我们的JSP页面示例annotations.jsp如清单9中所示。高亮的部分指出两个可以用定制标记替换的scriptlet,如清单 10 中所示。一些为页面设计者提供帮助的'%W %d%b%y %T')\JSP组件、把动态内容放到页面上去的getProperty操作以及标准HTML组成了页面的剩余部分。使用JSP注释的原因是因为JSP注释是私有的,不会出现在输出流中。

清单9 annotation(注释)的JSP页面 Comments for <jsp:getProperty name=\property=\/>

.


<%-- The following section iterates through all annotations in the database for the requested page. To change the look of the page, just change anything in the demarcated area. --%> Database.Cursor annotations = annotation.getCursor(); while (annotations.next(annotation) != null) { <%-- beginning of annotation change area --%>

} annotations.close(); 定制标记等价程序清楚,但不提供信息: 清单10 定制标记等价程序


我们在这个示例中使用scriptlet只是要让您(一位程序员)知道正在发生的事情。如果用陈述性的标记替换scriptlet,那么页面设计者会很清楚,但您却一头雾水。

逻辑并不复杂。annotation.getCursor()调用能得到同服务器的连接、发出查询并在结果集建立一个数据库游标对象annotations。每次调用annotations.next()时,从结果集中取出一个新行,其中的值移到bean里,方法返回的正是这个bean的引用。所用的这个特殊的next()方法使用一个要植入的bean参数。虽然我们本可以使游标为每一行实例化一个新的bean,但反复使用一个bean更加高效。

请注意真正的查询及更新都没有在表示页面中出现。被包括的页面设置表示页面环境,也包括setProperty和update操作。这些操作独立于表示页面;只有注释bean的属性所包含的contract是重要的。这遵守了将表示与模式行为相分离的策略。页面设计者完全有能力更改表示是如何呈现的,但无从得知数据库是如何集成的。如果更改在数据库更新或查询时生效,就应当由JSP程序员负责。

2.7 总结

本文对结合使用Java Server Page、JavaBean和JDBC技术并通过关系数据库生成动态内容的进行了总结性介绍。我们从对于JSP程序员新手来说最显而易见的方法(scriptlet)开始。我们看到不加控制的使用scriptlet是如何使逻辑和表示纠缠在一起的,使两者都难以维护。我们还看到标记库并不一定会改善 MVC 分