购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.2 JSP与JavaBean

在Java程序或JSP程序中,其实有很多的代码段是可以重复使用的,比如对数据库的操作、用户的有效性检查及某项特定功能的实现等。为了很好地解决这个问题,提高开发效率,Sun公司推出了JavaBean,简言之,JavaBean就是一个实现了某个功能且供重复使用的Java类。

4.2.1 JavaBean简介

JavaBean分为有用户界面的JavaBean(即可视化JavaBean)和无用户界面的JavaBean(即非可视化JavaBean)两种,前者通常用于GUI程序开发中,在JSP程序中使用的是非可视化JavaBean,在默认情况下,本书所说的JavaBean均指后者。

在JSP中使用JavaBean后,可实现HTML与Java代码的分离,使JSP更易于开发和维护。因此JavaBean成了JSP程序员的必备利器之一。

虽然JavaBean是Java类,但是它也具有自己的一些特性:

·JavaBean是一个public的类。

·JavaBean有一个不带参数的构造方法。

·JavaBean中的属性通过getXXX()和setXXX()进行操作。

例如,定义一个名为CircleArea(见例程4-4)的JavaBean用于封装圆面积的计算逻辑,以后凡是需要用到圆面积计算的地方均可调用该JavaBean来完成,实现了代码的重用。

例程4-4 CircleArea.java

4.2.2 在JSP中如何使用JavaBean

在JSP中使用JavaBean一般遵循以下 4 个步骤。

(1)导入JavaBean的类,例如:

<%@ page import='test.CircleArea'%>

(2)在指定范围内实例化一个JavaBean对象,如果该对象已经存在则直接引用。例如:

<jsp:useBean id='circle1' class='test.CircleArea' scope='page'/>

<jsp:useBean id='circle2' class='test.CircleArea' scope='request'/>

<jsp:useBean id='circle3' class='test.CircleArea' scope='session'/>

<jsp:useBean id='circle4' class='test.CircleArea' scope='application'/>

表示在page、request、session和application范围内各创建了CircleArea对象。

(3)对JavaBean的实例对象进行操作。

在实例化这些JavaBean的页面,可以直接使用它们,例如test.jsp:

在其他JSP页面可以这样使用,例如test1.jsp:

使用<jsp:setProperty>和<jsp:getProperty>标签设置和读取JavaBean的属性值,例如:

(4)从指定范围中移除JavaBean。例如:

4.2.3 用JavaBean封装数据库操作

在 4.1.4 节的购物车实例中,所有的JDBC代码都放置在JSP中,这种做法是不可取的,既不利于JSP与业务逻辑的分离,又不利于代码的重用。使用JavaBean来封装数据库操作可很好地解决这个问题。

下面通过在用户表user中执行新增、查询、修改等操作来演示JavaBean封装数据库操作的具体实现。

本实例的视频教程请参考配套光盘的“视频教程”部分。

首先,在MySQL中执行脚本user.sql(见例程4-5)创建数据库userdb。

例程4-5 user.sql

然后,再定义一个名为DBBean(见例程4-6)的JavaBean用来封装数据库的操作。

例程4-6 DBBean.java

最后,便可以在JSP文件index.jsp(见例程4-7)中调用DBBean来完成数据库的操作。

例程4-7 index.jsp

index.jsp运行效果如图4-4所示。

图4-4 index.jsp运行效果

4.2.4 用JavaBean实现用户登录验证

在4.2.3节的实例中已经演示了使用JavaBean来封装数据库操作,为了加深读者对JavaBean的理解,在上个实例的基础上再增加一个使用JavaBean实现用户登录验证的功能。

在本实例中,用户通过在登录页面login.htm(见例程4-8)中填写登录表单,然后提交给登录验证页面chkuser.jsp(见例程4-10),再由chkuser.jsp调用DBBean(见例程4-6)与UserBean(见例程4-9)完成登录的验证工作。

本实例的视频教程请参考配套光盘的“视频教程”部分。

例程4-8 登录页面login.htm

例程4-9 封装用户信息的UserBean.java

注:这里所说的自省是JSP将请求表单中的参数值自动赋给JavaBean中的同名属性。

例程4-10 登录验证页面chkuser.jsp

运行效果如图4-5所示。

图4-5 用户登录验证运行效果

本实例的完整源代码请参考配套光盘的“源代码”部分。 4TpAKrNIqVROSIT1M9+9u0Tg30dvOib74aDB/X6hMfuoW0V2fx5X6l2ym3YyTc8A

点击中间区域
呼出菜单
上一章
目录
下一章
×