JavaBean在JSP程序中的应用

JavaBean是为Java语言设计的软件组件模型,具有可重复使用和跨平台的特点。可以通过JavaBean来封装业务逻辑,进行数据库操作等,从而很好的实现业务逻辑和前后台程序的分离。本文将介绍什么是JavaBean、如何定义JavaBean、如何在JSP中使用JavaBean以及JavaBean的自省机制以及范围。最后还将重点介绍如何通过JavaBean来封装JDBC操作。

重点内容:

定义JavaBean

在JSP中使用JavaBean

JavaBean的范围

使用JavaBean封装JDBC操作

JavaBean简介

JSP如此强大是不是学习起来很困难呢?其实不然,使用JSP开发Web程序程序是非常简单的。读者只需要有基础JavaBean其实就是一个简单的Java类,这也就意味着,Java类的一切特征,JavaBean也都具有。JavaBean同样可以使用封装、继承、多态等特性。

JavaBean可以分为两类,一类是有用户接口(也称为UI)的JavaBean,一类是没有用户接口的JavaBean。一般在JSP中使用的都是没有用户接口的JavaBean,因此本章所介绍的JavaBean都是指没有用户接口的JavaBean。这类JavaBean只是简单的进行业务封装,如数据运算和处理、数据库操作等。

定义JavaBean

根据JavaBean的几个特点,下面来定义一个简单的JavaBean。该JavaBean用来储存教师的信息,包括如下四个属性:姓名、年龄、性别、职称。

public class Teacher {

private String name; // 姓名

private int age; // 年龄

private boolean sex; // 性别

private String professional; // 职称

/**

* 各属性的setter和getter方法

*/

}

在JSP中使用JavaBean

1.调用JavaBean

要在JSP中调用JavaBean,就需要使用到<jsp:useBean>动作指令,其语法格式如下。

<jsp:useBean id="对象名称" scope="储存范围" class="类名"></jsp:useBean>

其中id属性表示该JavaBean实例化后的对象名称。scope属性用来指定该JavaBean的范围,也就是指JavaBean实例化后的对象储存范围。范围的取值有如下四种,分别是page、request、session和application。class属性用来指定JavaBean的类名,这里所指的类名包括包名和类名。

2.设置JavaBean属性

在JSP中如需设置JavaBean属性,可以使用<jsp:setProperty>动作指令,其包含如下四种语法格式。

<jsp:setProperty name="实例化对象名" property="*"/>

<jsp:setProperty name="实例化对象名" property="属性名称"/>

<jsp:setProperty name="实例化对象名" property="属性名称" param="参数名称"/>

<jsp:setProperty name="实例化对象名" property="属性名称" value="属性值" />

其中name属性用来设置实例化对象名,必须和<jsp:useBean>中的id属性保持一致。property属性用来指定JavaBean属性名称。param属性用来指定接受参数名称,value属性用来指定属性值。

3.获取JavaBean属性

在范例4.2中获得JavaBean属性是通过在JSP表达式中调用实例化对象名的方法来实现的。下面来介绍一种更加简便的方法,那就是<jsp:getProperty>动作指令。通过使用它可以很方便的获得JavaBean属性,其语法格式如下。

<jsp:getProperty name="实例化对象名" property="属性名称"/>

其中name属性用来设置实例化对象名,和<jsp:useBean>中的id属性保持一致。property属性用来指定JavaBean属性名称。

在第一节介绍了属性有四种存储范围,分别为page、request、session以及application,这些存储范围同样适合于JavaBean。下面将分别介绍如何设置各不同范围JavaBean,以及不同存储范围的区别。

1.设置page范围的JavaBean

2.设置request范围的JavaBean

3.设置session范围的JavaBean

4.设置application范围的JavaBean

经典实例:

Person.java

package com.tfj.demo;

public class Person {
private String name;
private int age; public Person() {
} public Person(String name, int age) {
this.name = name;
this.age = age;
} public void setName(String name) {
this.name = name;
} public String getName() {
return this.name;
} public void setAge(int age) {
this.age = age;
} public int getAge() {
return this.age;
}
}

beanTest.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" errorPage="error.jsp"%>
<html>
<head>
<title>Java Bean测试</title>
<meta name="website" content="http://www.crazyit.org" />
</head>
<body>
<!-- 创建com.tfj.demo.Person的实例,该实例的实例名为p1 -->
<jsp:useBean id="p1" class="com.tfj.demo.Person" scope="page" />
<!-- 设置p1的name属性值 -->
<jsp:setProperty name="p1" property="name" value="tufujie" />
<!-- 设置p1的age属性值 -->
<jsp:setProperty name="p1" property="age" value="25" />
<!-- 输出p1的name属性值 -->
<jsp:getProperty name="p1" property="name" /><br />
<!-- 输出p1的age属性值 -->
<jsp:getProperty name="p1" property="age" />
</body>
</html>

将Person在控制台进行编译,然后将带有包的文件夹剪切到Web应用下build->classes文件夹中

移除JavaBean

前面介绍了可以通过设置JavaBean范围从而决定其生命周期。当生命周期结束,JavaBean实例对象将自动失效。这里将介绍另一种更主动的做法,那就是手动移除JavaBean。

JavaBean的移除对于不同范围的JavaBean而不同,分别通过调用pageContext、request、session、application的removeAttribute (String name)方法来移除page范围、request范围、session范围以及application范围的JavaBean。其中name属性设置为实例化对象名,必须和<jsp:useBean>中的id属性保持一致。

使用JavaBean封装JDBC操作

1. 数据库和数据库表

在学习JDBC操作之前,首先必须知道如何通过MySQL创建数据库和数据库表。在学习创建数据库和数据库表的同时,还必须知道如何删除数据库和数据表,只有这样才能更好的应用数据库以及数据表。

1.查看数据库列表

2.创建数据库

3.删除数据库

4.创建数据库表

5.删除数据库表

2. 公共数据库访问连接类的开发

公共数据库访问连接类,从名字上可以看出它的三个特点,第一个是数据库访问,第二个是连接类,第三个是公共的。

在以前的开发中,我们都是使用在JSP中直接操作数据库,这时候需要在每一个JSP中获得数据库连接对象。这时我们就希望能够有一个公用类,通过该类能很方便的获得数据库连接对象。这个类就是下面要介绍公共数据库访问连接类。在该类中的所有方法都是静态的,这时候就不必须要创建该类的实例对象,直接通过类名就可以调用。该类通常包含四个方法,一个获得方法,用来获得连接对象;三个关闭方法,分别用来关闭连接对象、预处理对象、结果集对象。

3. DAO接口

DAO的英文全称为Data Access Object,也就是数据库访问对象。DAO属于J2EE数据层的操作,使用DAO可以将底层数据访问逻辑与业务逻辑分离开来。DAO通常包括三个部分,一个是DAO接口、一个是DAO实现类、一个是DAO工厂类。

DAO接口用来声明了对数据库表中的所有操作,如增加记录、删除记录、更新记录、查询所有记录、按ID查询记录等等。

DAO实现类实现了DAO接口,并实现DAO接口中的所有方法。一个DAO接口可以有多个DAO实现类,比如有一个DAO实现类用来操作Oracle数据库,一个DAO实现类用来操作MySQL数据库。这样在开发中就不必再担心项目的迁移了。

4. DAO实现类

在DAO接口中声明了一系列用来操作数据库的方法,又因为DAO实现类实现了DAO接口,所以DAO实现类必须实现这些方法。下面分别来看如何实现商品添加方法、商品更新方法、商品删除方法、查询所有商品方法以及按ID查询商品方法。

5. DAO工厂类

DAO工厂,从它的字面意思上可以看出它就是一个能够产生DAO实例对象的工厂。能够根据不同的参数或者配置信息得到不同类型的DAO对象的实例。实现DAO工厂类能够实现接口和具体实现的分离,可以使得系统能够面向接口编程,而不是依赖具体的实现类。

JavaBean个人总结的更多相关文章

  1. java web学习总结(二十九) -------------------JavaBean的两种开发模式

    SUN公司推出JSP技术后,同时也推荐了两种web应用程序的开发模式,一种是JSP+JavaBean模式,一种是Servlet+JSP+JavaBean模式. 一.JSP+JavaBean开发模式 1 ...

  2. java web学习总结(二十八) -------------------JSP中的JavaBean

    一.什么是JavaBean JavaBean是一个遵循特定写法的Java类,它通常具有如下特点: 这个Java类必须具有一个无参的构造函数 属性必须私有化. 私有化的属性必须通过public类型的方法 ...

  3. JavaBean的用法

    JavaBean是一个可重复使用的软件组件,是用Java语言编写的.遵循一定标准的类. JavaBean是Java Web的重要组件,它封装了数据和操作的功能类,供JSP和Servlet调用,完成数据 ...

  4. JSP复习整理(五)JavaBean使用表单处理数据

    一.先建立用户输入的数据 usingGetparameter.html <!DOCTYPE html> <html> <head> <meta charset ...

  5. JSP复习整理(五)JavaBean生命周期

    一.创建一个JavaBean UserBean.java package jsp.test; public class UserBean { private String userName; priv ...

  6. 初识Jsp,JavaBean,Servlet以及一个简单mvc模式的登录界面

    1:JSP JSP的基本语法:指令标识page,include,taglib;page指令标识常用的属性包含Language用来定义要使用的脚本语言:contentType定义JSP字符的编码和页面响 ...

  7. json、javaBean、xml互转的几种工具介绍

    json.javaBean.xml互转的几种工具介绍 转载至:http://blog.csdn.net/sdyy321/article/details/7024236 工作中经常要用到Json.Jav ...

  8. javabean和jsp动作元素

    model1就是利用了jsp和javabean 的组合来处理问题.jsp页面如果有太多的逻辑代码的话,维护起来和扩展起来是相当的麻烦的.所以jsp的逻辑代码部分都打包到一种java类当中进行编写.这种 ...

  9. J2EE基础之JavaBean

    J2EE基础之JavaBean 1.什么是JavaBean? JavaBean本质上来说就是一个Java类,它通过封装属性和方法成为具有独立功能.可重复使用的,并可以与其他控件通信的组件对象.通过在J ...

  10. 编写、部署、应用JavaBean

    编写javabean   编写javabean实质上就是编写一个java类.设计javabean类就是要设计这个javabean的属性和方法,类的方法的命名遵循以下规则: 1)如果成员变量的名字是xx ...

随机推荐

  1. System.UnauthorizedAccessException: 拒绝访问 temp 目录。用来运行 XmlSerializer 的标识“NT AUTHORITY\NETWORK SERVICE”没有访问 temp 目录的足够权限。CodeDom 将使用进程正在使用的用户帐户进行编译,这样,如

    解决方案:IIS的应用程序池权限不够,应用程序给localsystem账号权限即可. 以客户的服务器系统2003sp2为例,修改步骤如下: 控制面板---管理工具--Internet 信息服务(IIS ...

  2. JS判断设备终端(PC,iPad,iPhone,android,winPhone)和浏览器

    JS判断设备终端(PC,iPad,iPhone,android,winPhone)和浏览器 var ua = navigator.userAgent; var browser = {}, weixin ...

  3. 百度地图API实现多区域标记

    最近遇到一个业务就是需要需要在地图上标记多个区域.一般餐饮业做外卖的,配送范围一般是多区域的,那么在地图上标记配送范围的时候就需要能标记多个区域.长话短说,最初的实现原型的截图如下:

  4. WordPress 后台禁用Google Open Sans字体,加速网站

    解决方法很简单,安装启用 Disable Google Fonts 或者 Remove Open Sans font Link from WP core 其中之一即可.或者如果你没有使用WP自带的官方 ...

  5. delphi 仅带下划线的TEdit控件

    在做录入框的时候,很希望有一个只带下划线的文本框,网上介绍的很多,有自己做组件的,须不知Delphi下只需要简单设置几个属性即可达到目的.

  6. cwm-recovery自动生成工具

    android发展迅速,刷机已经成了一种习惯,cwm-recovery是必不可少的工具,下面我把自己用的自动生成cwm-recovery的工具发布出来,供友友们交流和学习,欢迎拍砖 已经公开发布在gi ...

  7. PostgreSQL+PostGIS的使用 函数清单

    一. PostgreSQL与PostGIS的关系 PostgreSQL 是世界上技术最先进的开源数据库,其前身是1977年一个源于Berkeley名为Ingres的非关系型数据库,其项目领导人为Mic ...

  8. EXTJS 4.2 资料 控件之Window窗体相关属性的用法

    最大化,最小化,是否显示关闭按钮 var win_CommonPicLibMultiple = Ext.create("Ext.window.Window", { title: & ...

  9. 关于 .net 开发 Office Word 的一些问题小结

    1.在"组件服务"的DCom配置中找到Microsoft Office Word =>属性=>标识选项卡,然后选择交互式用户:::=>"安全" ...

  10. Web前端框架学习成本比较及学习方法

    就项目中自己用过的前端框架的学习成本比较与学习心得分享 刚工作时间不长只用过这几个框架下面是难易程度比较: 不论哪个web前端框架, 究其本质都是把页面的数据传递给后台服务器语言(如java)进行处理 ...