admin 管理员组

文章数量: 1087135


2024年1月17日发(作者:matlab二叉树遍历)

javabean:Jsp + JavaBean循序渐进教程(一)疯狂代码 / ĵ:Java/

Jsp + JavaBean循序渐进教程()

(文/刘玉锋)

 目前Jsp作为个很好动态网站WebSite开发语言得到了越来越广泛应用在各类Jsp应用中Jsp

+ Java Bean组合成为了种事实上最常见Jsp标准就让我们来看看具体Jsp是如何和

Java Bean结合在起吧

  本教程将阐述JavaBean原理接着将阐述JavaBean在JavaServer Page下特定语法然后

演示个使用Jsp+JavaBean简单计数器最后将详细讲解个有数据库功能JavaBean+jsp

用户注册

Java Bean原理和应用

  1、什么是JavaBean?

  JavaBean是描述Java软件Software组件模型有点类似于MicrosoftCOM组件概念在Java模型中

通过JavaBean可以无限扩充Java功能通过JavaBean组合可以快速生成新应用

对于员来说最好点就是JavaBean可以实现代码重复利用另外对于易维护性等等

也有很重大意义

  JavaBean通过Java虚拟机(Java Virtual Machine)可以得到正确执行运行JavaBean最

小需求是JDK1.1或者以上版本

  JavaBean传统应用在于可视化领域如AWT下应用自从Jsp诞生后JavaBean更多应

用在了非可视化领域在服务器端应用方面表现出来了越来越强生命力在这里我们主要讨论是非

可视化JavaBean可视化JavaBean在市面上有很多Java书籍都有详细阐述在这里就不作为

重点了

  2、非可视化JavaBean

  非可视化JavaBean顾名思义就是没有GUI界面JavaBean在Jsp中常用来封装事务逻

辑、数据库操作等等可以很好地实现业务逻辑和前台(如jsp文件)分离使得系统具有更好

健壮性和灵活性

  个简单例子比如说个购物车要实现购物车中添加件商品这样功能就可以写

个购物车操作JavaBean建立个publicAddItem成员思路方法前台Jsp文件里面直接这个

思路方法来实现如果后来又考虑添加商品时候需要判断库存是否有货物没有货物不得购买在这个

时候我们就可以直接修改JavaBeanAddItem思路方法加入处理语句来实现这样就完全不用修改前台

jsp了

  当然也可以把这些处理操作完全写在jsp中不过这样jsp页面可能就有成百上千行光看

代码就是个头疼事情更不用说修改了如果您使用过asp开发过话相信对这就深有体会

了(其实使用ASP+COM组件完全可以实现同jsp+javabean同样架构但不知道某种原因网上常见

都是全部写在asp页面中所以使得维护修改等极为不方便当然这是题外话了)由此可见通过

JavaBean可以很好地实现逻辑封装、易于维护等等

  如果您使用Jsp开发个很好习惯就是多使用JavaBean

  3、JavaBean简单例子

  创建JavaBean并不是件困难事情如果您写过Java话那就很容易了要注意点

就是在非可视化JavaBean中常用>get或者>这样成员思路方法来处理属性>(properties>)>

  下面让我们来看个简单JavaBean

import .*;

public FirstJavaBean {

private String FirstProperty = String("");

public FirstJavaBean {

}

public String getFirstProperty {

FirstProperty;

}

public void FirstProperty(String value) {

FirstProperty = value;

}

public void (String args)

{

.("My First JavaBean!");

}

}

如果运行这个就会出现下面结果:

First JavaBean!

  这是个很典型JavaBean代表简单地解释下FirstProperty是其中个属性

(Property)外部通过get/思路方法可以对这个属性进行操作如果您写过VB话对

这个就再也熟悉不过了Main思路方法是为了测试用写JavaBean可以先不必加入到Jsp中

而直接用思路方法来进行调试调试好以后就可以在Jsp中了

Jsp + JavaBean循序渐进教程( 2)

(文/刘玉锋)

  JavaBeans 和 JavaServer Pages结合

  通过上面学习大家对JavaBean应该有了个基本了解对于在JavaServer Pages中

JavaBeans我们还需要了解些特定jsp内容让我们来看看吧

  JavaServer Pages中JavaBean相关标签

  在JavaServer Pages中JavaBean有 3个标准标签那就是,

以及

  标签

  可以定义个具有定生存范围以及个唯idJavaBean例子这样

JavaServer Pages通过id来识别JavaBean也可以通过类似语句来操作JavaBean

  在执行过程中首先会尝试寻找已经存在具有相同id和scope值JavaBean例子

如果没有就会自动创建个新例子

  其具体语法如下

body

  其中typeSpec定义如下

typeSpec ::==“Name”

/ =“Name” type=“typeName”

/ type=“typeName” =“Name”

/ beanName=“beanName” type=“typeName”

/ type=“typeName” beanName=“beanName”

/ type=“typeName”

下面表格是标签中相关属性含义

  属性及定义

Id

  id属性是JavaBean对象唯标志代表了个JavaBean对象例子它具有特定存在范围

(page/request/session/application)在JavaServer Pages中通过id来识别JavaBean

Scope

  Scope属性代表了Javabean对象生存时间可以是page, request, session, 和

application中种

Class

  代表了JavaBean对象名字特别注意大小写要完全致

beanName

  BeanName属性代表了Bean名字通常通过 instantiate 思路方法

来化.

Type

  Type属性指定了脚本变量定义类型默认为脚本变量定义和中属性致般我们都

采用默认值

  标签

  另个标准标签就是标签了它主要用于设置bean属性值JavaServer

Pages中语法如下:

  其中name属性代表了已经存在并且具有定生存范围(scope)JavaBean例子last_syntax

代表语法如下: property=“*” /

property=“propertyName” /

property=“propertyName” param=“parameterName” /

property=“propertyName” value=“propertyValue”

下面是标签基本属性以及含义

  属性及定义

Name

  Name代表通过 标签定义JavaBean对象例子 Property

  这是个很重要属性代表了你想设置值属性property名字如果使用property=”*”就会

反复查找当前ServletRequest所有参数并且匹配JavaBean中相同名字属性property并通过

JavaBean中属性思路方法赋值value给这个属性如果value属性为空则不会修改Javabean中

属性值

Param

  Param属性代表了页面请求参数名字标签不能同时使用param和value

Value

  Value属性代表了赋给Bean属性property具体值

  标签

  最后个标签就是标签了.它可以得到JavaBean例子属性值并将他们转换为

, 最后放置在隐含Out对象中. JavaBean例子必须在

前面定义.

  标签语法如下:

  下面是标签基本属性以及含义

  属性及定义

Name

  Name属性代表了想要获得属性值Bean例子Bean例子必须在前面用标签定义.

Property

  Property属性代表了想要获得值那个property名字

Jsp + JavaBean循序渐进教程( 3)

刘玉锋?yesky

Jsp和JavaBean结合简单例子

  上面讲了这么多到现在还没有看到具体应用那好现在我们看看具体JavaServer Pages+JavaBean

例子吧首先让我们看看个简单计数器

  本例程共包含3个文件

  文件JavaServer Page-- 文件, 文件其中

主要用来进行计数器计数操作和文件主要用来显示网页计数

  文件

package count;

/**

* Title: test

* Description: counter Bean

* @author LiuYufeng

* @version 1.0

*/

public counter {

  //化JavaBean成员变量

count = 0;

  // Class构造器

public counter {

}

  // 属性CountGet思路方法

public getCount {

  //计数操作每次请求都进行计数器加

count;

;

}

  //属性CountSet思路方法

public void Count( count) {

= count;

}

}

文件

< HTML>

< HEAD>

< TITLE>

counter

< /TITLE>

< /HEAD>

< BODY>

< H1>

JBuilder Generated JSP

< /H1>

< jsp:useBean id="bean0" scope="application" ="r" />

< /BODY>

< /HTML>

文件

< HTML>

< HEAD>

< TITLE>

counter

< /TITLE>

< /HEAD>

< BODY>

< H1>

JBuilder Generated JSP

< /H1>

The Counter is :

< /BODY>

< /HTML>

  从这个例子我们不难看出Jsp和JavaBean应用般操作思路方法首先在Jsp页面中要声明并化JavaBean

这个JavaBean有个唯id标志还有个生存范围scope(设置为application是为了实现多个用户共享

个计数器功能如果要实现单个用户计数功能可以修改scope为session)最后还要制定JavaBean

来源r:

  接着我们就可以使用JavaBean提供public思路方法或者直接使用标签来得到JavaBean

中属性值:

  ("The Counter is : " + nt + "");

或者

  OK现在运行下看看然后多刷新几次注意看计数器变化上面在Jbuilder4.0下面

调试通过

  如果要直接在些jsp环境(如Tomcat、IAS、Weblogic等)下调试请注意各自文档正确放置

JavaBean文件如在Tomcat环境中本例子JavaBean编译后文件就需要放在

WEB-INFClASSES count counter.

Jsp + JavaBean循序渐进教程( 4)上

刘玉锋

-

  JavaBeans 和 JavaServer Pages结合

JavaServer Pages+JavaBeans数据库操作应用

  上面已经讲了个简单JavaBean应用计数器例子当然在实际过程中涉及更多还是和数据库

相关操作所以在这节我们将重点阐述JavaServer Pages和JavaBeans如何对数据库进行操作这里我们

选取了个比较有代表性比较实用例子那就是用户注册管理这在网上使用比较频繁不管是注册

Email、有奖调查、购买物品或者加入社区等等都会涉及到个用户注册问题;另外方面它又比较有代表性

涉及到了数据库记录增加记录显示等常见操作所以我们就拿用户注册开刀了

  采用Oracle Jdeveloper3.1开发运行环境为Wiin2000+Tomcat3.1数据库系统采用了Oracle8.16i

  首先我们建立个数据库demodb其字段如下面所示

username VARCHAR2(20) 用户名

password VARCHAR2(20) 密码

email VARCHAR2(30) Email地址

homepage VARCHAR2(50) 主页

signs VARCHAR2(200) 签名

regtime DATE 注册时间

  接着我们建立几个JavaBeans和JavaServer Pages文件

文件(封装数据库连接及些底层操作)

文件(进行用户数据读取以及添加操作)

文件(用户新增页面用于输入用户注册信息)

文件(进行用户注册信息添加)

文件(所有注册用户信息列表)

  为了方便大家看代码在很多地方都进行了详细注释和讲解至于JavaBean中涉及到Java语法结构东西

请大家参考Java书籍

  文件

  介绍说明:这个JavaBean封装数据库连接及些底层操作派生出类可以直接这些思路方法另外提供了个

toChinese思路方法主要用来进行中文数据处理

  // Copyright (c) 2000

package lyf;

/**

* A Class .

* < P>

* @author liuyufeng

*/

//声明类库文件

import .*;

import .*;

import .*;

import .*;

import .*;

import .*;

public db {

  //成员变量化

Connection conn = null; //数据库连接

ResultSet rs = null; //记录集

String Username=""; //用户名

String Password=""; //密码

String Email=""; //email

String Homepage=""; //主页

String Signs=""; //签名

  //db构建器

public db {

try {

  //注册数据库驱动为Oracle驱动

e( Driver);

}

catch(otFoundException e) {

  //这样写是为了方便调试出错打印mydb就知道在什么地方出错了

.("mydb: " + sage);

}

}

  //executeQuery思路方法用于进行记录查询操作

  //入口参数为sql语句返回ResultSet对象

public ResultSet executeQuery(String sql) {

rs = null;

try {

  //建立数据库连接使用Oracle种thin连接方式demo为主机名字demodb为数据库后面两个

demo为用户名和密码

conn = nection("jdbc:oracle:thin:@demo:1521:demodb","demo","demo");

Statement stmt = Statement;

  //执行数据库查询操作

rs = eQuery(sql);

}

catch(SQLException ex) {

.("eQuery: " + sage);

}

rs;

}

//executeUpdate思路方法用于进行add或者update记录操作

  //入口参数为sql语句成功返回true否则为false

public boolean executeUpdate(String sql) {

boolean bupdate=false;

rs = null;

try {

  //建立数据库连接其它参数介绍说明同上面样

conn = nection("jdbc:oracle:thin:@demo:1521:demodb","demo","demo");

Statement stmt = Statement;

rowCount = eUpdate(sql);

  //如果不成功bupdate就会返回0

(rowCount!=0)bupdate=true;

}

catch(SQLException ex) {

  //打印出错信息

.("eUpdate: " + sage);

}

bupdate;

}

  //toChinese思路方法用于将个串进行中文处理

  //否则将会是这样串

public String toChinese(String strvalue) {

try{

(strvaluenull)

{

null;

}

{

strvalue = String(es("ISO8859_1"), "GBK");

strvalue;

}

}catch(Exception e){

null;

}

}

}

Jsp + JavaBean循序渐进教程( 4)下

刘玉锋

文件

  介绍说明:主要进行用户数据读取以及添加操作从db派生出来addNewUser思路方法用来进行用户数据

添加checkUser思路方法用来检查用户名是否重复另外还有些/get思路方法用来对属性进行处理

文件将进行条用

  // Copyright (c) 2000

package lyf;

/**

* A Class .

*

* @author liuyufeng

*/

  //导入java类库

import .*;

import .*;

import .*;

  //adduser由db派生出来拥有db成员变量和思路方法

public adduser extends db {

  //构建器

public boolean addNewUser{

boolean boadduser=false;

try {

  //进行用户注册记录添加操作生成sql语句

String sSql= String("insert o user(regtime,username,password,email,homepage,

signs)");

sSql=sSql+ "values(SYSDAYE,""+Username+"",""+Password+"",""+Email+"",""+Homepage

+"",""+Signs+"")";

  //种调试思路方法可以打印出sql语句以便于查看

.(sSql);

  //父类executeUpdate思路方法并根据成功以否来设置返回值

(eUpdate(sSql))boadduser=true;

}

catch(Exception ex) {

//出错处理

.("User: " + sage);

}finally{

  //无论是否出错都要返回值

boadduser;

}

}

  //checkUser思路方法用来检查用户名是否重复

  //如果重复返回个false

public boolean checkUser{

boolean boadduser=false;

try {

  //构建sql查询语句

String sSql="select * from user where username=""+Username+""";

  //父类executeQuery思路方法

((eQuery(sSql)).next){

  //查询出来记录集为空

boadduser=false;

}{

boadduser=true;

}

}

catch(Exception ex) {

  //出错处理

.("User: " + sage);

}finally{

  //返回值

boadduser;

}

}

//属性/get思路方法同请求参数致

/*

  其实下面所有get/思路方法都是重复性劳动为了避免重复性拷贝粘贴工作我写了个软件Software

Jsp Code Faster只要输入系列字段名所有get/思路方法都可以自动生成大家可以在我网站WebSite

上下载这个软件Software

*/

  //属性用户名Usernameget/思路方法

public String getUsername{

Username;}

public void Username(String Username){

  //用户名有可能是中文需要进行转换

Username =ese(Username);}

  //属性密码Passwordget/思路方法

public String getPassword{

Password;}

public void Password(String Password){

Password = Password;}

  //属性Emailget/思路方法

public String getEmail{

Email;}

public void Email(String Email){

Email = Email;}

  //属性主页Homepageget/思路方法

public String getHomepage{

Homepage;}

public void Homepage(String Homepage){

Homepage = Homepage;}

  //属性主页Signsget/思路方法

public String getSigns{

Signs;}

public void Signs(String Signs){

  //签名有可能是中文需要进行转换

Signs = ese(Signs);}

}

  好了到这里Javabean基本上写完了要注意是中文处理定要经过转换还有不定所有

属性都需要/get思路方法视情况而定最后还需要编译为文件可以使用些可视化软件Software如

Jbuilder或者VisualAge等等来编译编译后会发现有两个文件db.和adduser.文件都

在lyf子目录下这两个文件就可以让后面jsp页面了

Jsp+JavaBean循序渐进教程( 5)

刘玉锋

文件

  介绍说明:用户注册页面有用户名、密码、主页、Email、个人签名等信息主要用于提供用户输入注册

信息提交Action后处理页面为文件所有参数将会传递到文件进行

处理文件开头< %@ page contentType="text/html;char=gb2312"%>语句表明这个页面使用

gb2312中文集如果不声明话在中文显示上就出现乱码< % ("Expires",

"0"); %>语句是为了让页面能够自动刷新这句话不要也没有太大影响后面基本上就是html语句了

大家都比较熟悉所以在这里没有必要浪费篇幅了

< %@ page contentType="text/html;char=gb2312"%>

< % ("Expires","0"); %>

< html>

< head>

< meta http-equiv="Content-Type" content="text/html; char=gb2312">

< meta name="GENERATOR" content="Microsoft FrontPage 4.0">

< meta name="ProgId" content="nt">

< title>新用户注册

< /head>

< body bgcolor="#FFFAD9">

< p align="center">< font color="#8484FF">< span ="1">< strong>< big>新个人

用户注册

< span ="1">

< form method="POST" name="formreg" action="">

< div align="center">< center>< table

border="1" width="50%" borderColorDark="#FFFFFF" borderColorLight="#000000"

cellspacing="0">

< tr>

< td width="27%" bgcolor="#DDDDFF" align="center">< span ="1">用户名:

< td width="73%" bgcolor="#DDDDFF">< span ="1">< input type="text"

name="username" size="20"

tabindex="2">< font color="#FF0000">< b>*

< /tr>

< tr>

< td width="27%" bgcolor="#DDDDFF" align="center">输入密码:

< td width="73%" bgcolor="#DDDDFF">< input type="password" name="password"size="20"

tabindex="2">< font color="#FF0000">< b>*

< /tr>

< tr>

< td width="27%" bgcolor="#DDDDFF" align="center">校验密码:

< td width="73%" bgcolor="#DDDDFF">< input type="password" name="Password1"size="20"

tabindex="3">< font color="#FF0000">< b>*

< /tr>

< tr>

< td width="27%" bgcolor="#DDDDFF" align="center">E-mail

< td width="73%" bgcolor="#DDDDFF">< input type="text" name="email" size="20"tabindex="4">

< font color="#FF0000">*

< /tr>

< tr>

< td width="27%" bgcolor="#DDDDFF" align="center">主页地址:

< td width="73%" bgcolor="#DDDDFF">< input type="text" name="homepage" size="20"

tabindex="6" value="">

< /tr>

< tr>

< td width="100%" bgcolor="#DDDDFF" colspan="2">

< BR>

< center>< span ="1">< Font color="red">< B>介绍自己:

< span ="">(介绍自己不能超过120字)

< /tr>

< tr>

< td width="100%" bgcolor="#DDDDFF" colspan="2"> < textarea rows="6"

name="signs" cols="66" tabindex="9">

< /tr>

< tr>

< td width="30%" bgcolor="#DDDDFF" colspan="2">< center>< p>< input

type="submit" value="递交" _disibledevent=>< input type="re" value="清除" name="B2"tabindex="11">

< /tr>

< /table>

< /center>

< /form>

< hr size="1" color="#FF0000">

< span ="">

< p align="center">Better View:800*600 Best View:1024x768

为了本系统能够更好为您服务请使用IE4.0或以上版本浏览器

< font color="#000000">< a%20Guide("")"

target="_self">版权所有

< span ="">

< a href="" target="_blank">JSP爱好者

(刘玉锋)制作 Copyright? 2000

< /body>

< /html>

  注册页面做完了看看后面如何对这个页面数据进行处理

Jsp+JavaBean循序渐进教程( 6)

刘玉锋

这节涉及到两个页面个文件用来实现记录添加操作另个文件文件

用来显示所有已经注册用户信息这两个页面都涉及到了JavaBean具体还是来看看文件吧

对于文件中关键代码都会添加上注释以方便大家理解

  文件

  介绍说明:用户注册操作页面并根据用户注册成功否显示相应反馈信息这个页面主要特点就是使用了

r这个JavaBeanaddNewUser思路方法来进行记录添加

< %@ page contentType="text/html;char=gb2312"%>

< % ("Expires","0"); %>

< !--生成个JavaBean:r例子id为adduser生存范围为page-->

< jsp:useBean id="adduser" ="r" scope="page"/>

  < !--设置JavaBean中各个属性值这会JavaBean中各个属性思路方法以便JavaBean得到

正确属性值”*”代表进行所有属性匹配-->

< jsp:Property name="adduser" property="*"/>

< html>

< head>

< meta http-equiv="Content-Language" content="zh-cn">

< meta http-equiv="Content-Type" content="text/html; char=gb2312">

< meta name="GENERATOR" content="Microsoft FrontPage 3.0">

< meta name="ProgId" content="nt">

< title>用户添加< /title>

< /head>

< body bgcolor="#FFEBBD">

< div align="center">< center>

< %

  //rcheckUser思路方法检查是否有重复用户名

  //如果有重复就显示对应信息

(!ser)

{

  //页面文字输出信息使用jsp内置对象outprln思路方法相当于asp中思路方法

("对不起这个用户名"+rname+"已经被申请了请重新选择!");

  //代表返回运行时候碰到就不会进行下面处理了功能相当于asp中

;

}

%>

< %

//如果没有用户名重复问题raddNewUser思路方法来将用户数据添加到数据库中并

根据数据添加成功否来显示对应信息

(User){

%>

< H2>添加用户成功!

< H2>添加用户失败请和管理员联系!

< /BODY>

< /HTML>

  文件

  介绍说明:用户信息列表页面用于显示注册所有用户信息对数据进行了分页显示

  为了方便大家使用采用了通用分页代码如果是JDBC2.0以上或者其他支持

TYPE_SCROLL_INSENSITIVE游标数据库驱动可以有更简洁分页思路方法

  和前面jsp页面类似语句就不讲解了代表在

这个页面中导入Set这个类库Jsp页面中间要声明ResultSet;

.*类库是Oracle专用Jdbc驱动让Jsp页面可以用来进行Oracle数据库操作

< %@ page contentType="text/html;char=gb2312"%>

< % ("Expires","0"); %>

< %@ page import="Set" %>

< %@ page import=".*" %>

< !--生成个JavaBean:例子-->

< jsp:useBean id="db" ="" scope="request"/>

< jsp:Property name="db" property="*"/>

< %

   strSQL; //SQL语句

PageSize; //页显示记录数

RowCount; //记录总数

PageCount; //总页数

Page; //待显示页码

strPage;

i,j,k;

  //设置页显示记录数

PageSize = 15;

  //取得待显示页码

strPage = ameter("page");

(strPagenull){//表明在QueryString中没有page这个参数此时显示第页数据

Page = 1;

}

{//将串转换成整型

Page = nt(strPage);

(Page<1) Page = 1;

}

//获取记录总数

strSQL = "select count(*) from user";

ResultSet result = eQuery(strSQL); //执行SQL语句并取得结果集

; //记录集刚打开时候指针位于第条记录的前

RowCount = (1);

; //关闭结果集

  //记算总页数

PageCount = (RowCount+PageSize-1) / PageSize;

  //调整待显示页码

(Page>PageCount) Page = PageCount;

strSQL="select * from user order by id desc";

  //执行SQL语句并取得结果集

result = eQuery(strSQL);

  //将记录指针定位到待显示页第条记录上

i = (Page-1) * PageSize;

for(j=0;j

< html>

< head>

< meta http-equiv="Content-Language" content="zh-cn">

< meta http-equiv="Content-Type" content="text/html; char=gb2312">

< meta name="GENERATOR" content="Microsoft FrontPage 3.0">

< meta name="ProgId" content="nt">

< title>用户列表< /title>

< /head>

< body bgcolor="#FFEBBD">

< div align="center">< center>

< table border="1"

borderColorDark="#FFFFFF" borderColorLight="#000000" cellspacing="0" height="22"

width="100%">

< tr bgcolor="#FFEBAD">

< td height="1" width="691" ="">

第页 共页

< a href="?page=0">首页

< a href="?page=">上页

上页

< a href="?page=">下页

下页

< a href="?page=">尾页

第< input type="text" ="" name="page" size="3" value=""

tabindex="1">页< input type="submit" ="" value="go" name="B1" tabindex="2">

< table border="1" width="100%" cellspacing="0" bordercolorlight="#000000"

bordercolordark="#FFFFFF" ="">

< tr bgcolor="#FFEBAD">

< td >

< div align="left">用户名

< td >

< p align="center">Email

< td >

< p align="center">主页

< td>

< p align="center">登记时间

< td>

< p align="center">介绍说明

< tr bgcolor="#FFEBAD">

< td>

< div align="left">

< td>< div align="center">

< td>< div align="center">< font color="#0000CC">

< td>< div align="center">< font color="#FF6666">

< td>< div align="center">< font color="#0000FF">

< /table>

< /body>

< /html>

  先运行文件进行用户注册操作然后运行文件看看是否已经

添加到数据库中对于具体jsp文件和文件放在什么目录下问题请看具体jsp服务器软件Software参考

个最简单思路方法就是用Jbuilder4.0直接运行它自带了Tomcat服务器软件Software

  好了到这里Jsp+JavaBean介绍就基本上结束了通过上面学习大家应该对JavaBean如何

应用于JSP中有了个基本了解剩下就是在具体中去应用和发挥了

  后说点是为了方便大家上面所有代码可以在我网站WebSite“JSP爱好者

”下载

  2009-2-12 5:10:11

疯狂代码 /


本文标签: 方法 思路 进行