|
Jsp + JavaBean循序渐进教程(一) 数据挖掘研究院
--------------------------------------------------------------------------------
Jsp + JavaBean循序渐进教程(一) (文/刘玉锋)
目前,Jsp作为一个很好的动态网站开发语言得到了越来越广泛的应用,在各类Jsp应用程序中,Jsp + Java Bean的组合成为了一种事实上最常见的Jsp程序的标准,就让我们来看看具体的Jsp是如何与 Java Bean结合在一起的吧。
数据挖掘交友
本教程将阐述JavaBean的原理,接着将阐述JavaBean在JavaServer Page下的特定语法,然后 演示一个使用Jsp+JavaBean的简单的计数器,最后将详细的讲解一个有数据库功能的JavaBean+jsp 的用户注册程序。 数据挖掘论坛
Java Bean原理与应用 数据挖掘论坛
1、什么是JavaBean? 数据挖掘实验室
JavaBean是描述Java的软件组件模型,有点类似于Microsoft的COM组件概念。在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,建立一个public的AddItem成员方法,前台Jsp文件里面直接调用这个 方法来实现。如果后来又考虑添加商品的时候需要判断库存是否有货物,没有货物不得购买,在这个 时候我们就可以直接修改JavaBean的AddItem方法,加入处理语句来实现,这样就完全不用修改前台 jsp程序了。
当然,也可以把这些处理操作完全写在jsp程序中,不过这样的jsp页面可能就有成百上千行,光看 代码就是一个头疼的事情,更不用说修改了。如果您使用过asp开发过程序的话,相信对这就深有体会 了(其实使用ASP+COM组件完全可以实现同jsp+javabean同样的架构,但不知道某种原因网上常见的 都是全部写在asp页面中,所以使得维护修改等极为不方便,当然这是题外话了)。由此可见,通过 JavaBean可以很好地实现逻辑的封装、程序的易于维护等等。 数据挖掘论坛
如果您使用Jsp开发程序,一个很好的习惯就是多使用JavaBean。 数据挖掘工具
3、JavaBean的简单例子 数据挖掘论坛
创建JavaBean并不是一件困难的事情,如果您写过Java程序的话那就很容易了,要注意一点的 就是在非可视化JavaBean中,常用>get或者>set这样的成员方法来处理属性>(properties>)。> 数据挖掘交友
下面让我们来看一个简单的JavaBean 数据挖掘研究院
FirstJavaBean.java 数据挖掘工具
import java.io.*; 数据挖掘交友
public class FirstJavaBean { 数据挖掘实验室
private String FirstProperty = new String(""); 数据挖掘论坛
public FirstJavaBean() {
} 数据挖掘论坛
public String getFirstProperty() { 数据挖掘交友
return FirstProperty; 数据挖掘交友
} 数据挖掘工具
public void setFirstProperty(String value) { 数据挖掘研究院
FirstProperty = value; 数据挖掘实验室
} 数据挖掘工具
public static void main(String[] args) 数据挖掘交友
{ 数据挖掘论坛
System.out.println("My First JavaBean!");
} 数据挖掘研究院
} 数据挖掘交友
如果运行这个程序,就会出现下面的结果: 数据挖掘实验室
First JavaBean!
这是一个很典型的JavaBean的代表,简单地解释一下,FirstProperty是其中的一个属性 (Property),外部通过get/set方法可以对这个属性进行操作,如果您写过VB的class的话,对 这个就再也熟悉不过了。Main方法是为了测试程序用的,写JavaBean可以先不必加入到Jsp程序中 调用,而直接用main方法来进行调试,调试好以后就可以在Jsp程序中调用了。 数据挖掘工具
数据挖掘交友
Jsp + JavaBean循序渐进教程(二) (文/刘玉锋)
JavaBeans 和 JavaServer Pages的结合 数据挖掘研究院
通过上面的学习,大家对JavaBean应该有了一个基本的了解,对于在JavaServer Pages中调用 JavaBeans我们还需要了解一些特定的jsp的内容,让我们来看看吧。 数据挖掘实验室
JavaServer Pages中的JavaBean相关标签
在JavaServer Pages中调用JavaBean有三个标准的标签,那就是, ,以及。 数据挖掘工具
标签 数据挖掘交友
可以定义一个具有一定生存范围以及一个唯一id的JavaBean的实例,这样 JavaServer Pages通过id来识别JavaBean,也可以通过id.method类似的语句来操作JavaBean。 数据挖掘研究院
在执行过程中,首先会尝试寻找已经存在的具有相同id和scope值的JavaBean实例, 如果没有就会自动创建一个新的实例。
其具体语法如下 数据挖掘实验室
body
数据挖掘交友
其中,typeSpec定义如下
typeSpec ::=class=“className” / class=“className” type=“typeName” / type=“typeName” class=“className” / 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对象的class名字,特别注意大小写要完全一致。 数据挖掘实验室
beanName BeanName属性代表了Bean的名字,通常通过java.beans.Beans class的instantiate() 方法 来初始化。. 数据挖掘工具
Type Type属性指定了脚本变量定义的类型,默认为脚本变量定义和class中的属性一致,一般我们都 采用默认值 数据挖掘论坛
标签 数据挖掘实验室
另一个标准的标签就是标签了,它主要用于设置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中属性的set方法赋值value给这个属性。如果value属性为空,则不会修改Javabean中的 属性值。 数据挖掘研究院
Param Param属性代表了页面请求的参数名字,标签不能同时使用param和value。 数据挖掘交友
Value Value属性代表了赋给Bean的属性property的具体值。 数据挖掘工具
标签 数据挖掘实验室
最后一个标签就是标签了.它可以得到JavaBean实例的属性值,并将他们转换为 java.lang.String, 最后放置在隐含的Out对象中. JavaBean的实例必须在 前面定义.
标签的语法如下: 数据挖掘交友
下面是标签的基本属性以及含义
属性及定义
Name Name属性代表了想要获得属性值的Bean的实例,Bean实例必须在前面用标签定义. 数据挖掘交友
Property Property属性代表了想要获得值的那个property的名字。 数据挖掘研究院
Jsp + JavaBean循序渐进教程(三) 刘玉锋?yesky
Jsp与JavaBean结合的简单例子
上面讲了这么多,到现在还没有看到具体应用,那好,现在我们看看具体的JavaServer Pages+JavaBean 的例子吧,首先让我们看看一个简单的计数器程序。
本例程共包含3个文件 数据挖掘实验室
JavaBean--counter.java文件,JavaServer Page-- counter.jsp文件, counter1.jsp文件其中, counter.java主要用来进行计数器的计数操作,counter.jsp和counter1.jsp文件主要用来显示网页的计数。 数据挖掘研究院
counter.java文件 数据挖掘实验室
package count; /** * Title: test * Description: counter Bean * @author LiuYufeng * @version 1.0 */ public class counter { //初始化JavaBean的成员变量 int count = 0; // Class构造器 public counter() { } // 属性Count的Get方法 public int getCount() { //计数操作,每一次请求都进行计数器加一 count++; return this.count; } //属性Count的Set方法 public void setCount(int count) { this.count = count; } } 数据挖掘交友
counter.jsp文件 数据挖掘研究院
< HTML> < HEAD> < TITLE> counter < /TITLE> < /HEAD> < BODY> < H1> JBuilder Generated JSP < /H1> 数据挖掘论坛
< jsp:useBean id="bean0" scope="application" class="count.counter" /> 数据挖掘实验室
< /BODY> < /HTML> 数据挖掘工具
counter1.jsp文件 数据挖掘实验室
< 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的 class来源count.counter: 数据挖掘实验室
数据挖掘论坛
接着我们就可以使用JavaBean提供的public方法或者直接使用标签来得到JavaBean 中属性的值:
out.println("The Counter is : " + bean0.getCount() + "");
或者 数据挖掘实验室
数据挖掘工具
OK,现在运行一下程序看看,然后多刷新几次,注意看计数器的变化。上面的程序在Jbuilder4.0下面 调试通过。
如果要直接在一些jsp环境(如Tomcat、IAS、Weblogic等)下调试,请注意各自的文档,正确的放置 JavaBean文件。如在Tomcat环境中,本例子JavaBean编译后的文件就需要放在 WEB-INFClASSES count counter.class。 数据挖掘工具
数据挖掘工具
Jsp + JavaBean循序渐进教程(四)上 刘玉锋 数据挖掘研究院
- 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文件 数据挖掘研究院
db.java文件(封装数据库连接及一些底层操作) adduser.java文件(进行用户数据的读取以及添加操作) newuser.jsp文件(用户新增页面,用于输入用户注册信息) donewuser.jsp文件(进行用户注册信息添加) listuser.jsp文件(所有的注册用户信息列表) 数据挖掘研究院
为了方便大家看代码,在很多地方都进行了详细的注释和讲解,至于JavaBean中涉及到Java语法结构的东西, 请大家参考Java书籍。 数据挖掘研究院
db.java文件
说明:这个JavaBean封装数据库连接及一些底层操作,派生出的类可以直接调用这些方法,另外提供了一个 toChinese方法,主要用来进行中文数据的处理。 数据挖掘实验室
// Copyright (c) 2000 http://jspbbs.yeah.net package lyf; /** * A Class class. * < P> * @author liuyufeng */ //声明类库文件 import oracle.jdbc.driver.*; import java.net.*; import java.sql.*; import java.lang.*; import java.io.*; import java.util.*; public class db { //成员变量初始化 Connection conn = null; //数据库连接 ResultSet rs = null; //记录集 String Username=""; //用户名 String Password=""; //密码 String Email=""; //email String Homepage=""; //主页 String Signs=""; //签名 //db的构建器 public db() { try { //注册数据库驱动程序为Oracle驱动 Class.forName(new oracle.jdbc.driver.OracleDriver()); } catch(java.lang.ClassNotFoundException e) { //这样写是为了方便调试程序,出错打印mydb()就知道在什么地方出错了 System.err.println("mydb(): " + e.getMessage()); } }
//executeQuery方法用于进行记录的查询操作 数据挖掘研究院
//入口参数为sql语句,返回ResultSet对象 public ResultSet executeQuery(String sql) { rs = null; try { //建立数据库连接,使用Oracle的一种thin连接方式,demo为主机名字,demodb为数据库,后面的两个 demo为用户名和密码 conn = DriverManager.getConnection("jdbc:oracle:thin:@demo:1521:demodb","demo","demo"); Statement stmt = conn.createStatement(); //执行数据库查询操作 rs = stmt.executeQuery(sql); } catch(SQLException ex) { System.err.println("db.executeQuery: " + ex.getMessage()); } return rs; } //executeUpdate方法用于进行add或者update记录的操作 数据挖掘工具
//入口参数为sql语句,成功返回true,否则为false public boolean executeUpdate(String sql) { boolean bupdate=false; rs = null; try { //建立数据库连接,其它参数说明同上面的一样 conn = DriverManager.getConnection("jdbc:oracle:thin:@demo:1521:demodb","demo","demo"); Statement stmt = conn.createStatement(); int rowCount = stmt.executeUpdate(sql); //如果不成功,bupdate就会返回0 if(rowCount!=0)bupdate=true; } catch(SQLException ex) { //打印出错信息 System.err.println("db.executeUpdate: " + ex.getMessage()); } return bupdate; }
//toChinese方法用于将一个字符串进行中文处理 数据挖掘实验室
//否则将会是???这样的字符串 public static String toChinese(String strvalue) { try{ if(strvalue==null) { return null; } else { strvalue = new String(strvalue.getBytes("ISO8859_1"), "GBK"); return strvalue; } }catch(Exception e){ return null; } }
}
Jsp + JavaBean循序渐进教程(四)下 刘玉锋 数据挖掘交友
adduser.java文件
说明:主要进行用户数据的读取以及添加操作,从db派生出来,addNewUser方法用来进行用户数据的 添加,checkUser()方法用来检查用户名是否重复,另外还有一些set/get方法用来对属性进行处理, dousernew.jsp文件将进行条用。 数据挖掘交友
// Copyright (c) 2000 http://jspbbs.yeah.net package lyf; /** * A Class class. * * @author liuyufeng */ //导入java类库 import java.sql.*; import java.lang.*; import oracle.jdbc.driver.*; //adduser由db派生出来,拥有db的成员变量和方法 public class adduser extends db { //构建器 public boolean addNewUser(){ boolean boadduser=false; try { //进行用户注册的记录添加操作,生成sql语句 String sSql=new String("insert into user(regtime,username,password,email,homepage, signs)"); sSql=sSql+ " values(SYSDAYE,""+Username+"",""+Password+"",""+Email+"",""+Homepage +"",""+Signs+"")"; //一种调试的方法,可以打印出sql语句,以便于查看错误 System.out.println(sSql); //调用父类的executeUpdate方法,并根据成功以否来设置返回值 if(super.executeUpdate(sSql))boadduser=true; } catch(Exception ex) { //出错处理 System.err.println("adduser.addNewUser: " + ex.getMessage()); 数据挖掘实验室 }finally{ //无论是否出错,都要返回值 return boadduser; } } 数据挖掘工具
//checkUser()方法用来检查用户名是否重复 数据挖掘实验室
//如果重复返回一个false public boolean checkUser(){ boolean boadduser=false; try { //构建sql查询语句 String sSql="select * from user where username=""+Username+"""; //调用父类的executeQuery方法 if((super.executeQuery(sSql)).next()){ //查询出来的记录集为空 boadduser=false; }else{ boadduser=true; } } catch(Exception ex) { //出错处理 System.err.println("adduser.addNewUser: " + ex.getMessage()); }finally{ //返回值 return boadduser; } } //属性的set/get方法,同请求的参数一致 /* 其实下面的所有get/set方法都是重复性劳动,为了避免重复性的拷贝粘贴工作,我写了个软件 Jsp Code Faster,只要输入一系列的字段名,所有的get/set方法都可以自动生成,大家可以在我的网站 http://jspbbs.yeah.net上下载这个软件 */ //属性用户名Username的get/set方法 public String getUsername(){ return Username;} public void setUsername(String newUsername){ //用户名有可能是中文,需要进行转换 Username =db.toChinese(newUsername);} //属性密码Password的get/set方法 public String getPassword(){ return Password;} public void setPassword(String newPassword){ Password = newPassword;} //属性Email的get/set方法 public String getEmail(){ return Email;} public void setEmail(String newEmail){ Email = newEmail;} //属性主页Homepage的get/set方法 public String getHomepage(){ return Homepage;} public void setHomepage(String newHomepage){ Homepage = newHomepage;} 数据挖掘交友
//属性主页Signs的get/set方法 public String getSigns(){ return Signs;} public void setSigns(String newSigns){ //签名有可能是中文,需要进行转换 Signs = db.toChinese(newSigns);} } 好了,到这里,Javabean程序基本上写完了,要注意的是中文处理一定要经过转换,还有不一定所有 的属性都需要set/get方法,视情况而定,最后还需要编译为class文件,可以使用一些可视化的软件如 Jbuilder或者VisualAge等等来编译。编译后会发现有两个文件db.class和adduser.class文件,都 在lyf子目录下。这两个文件就可以让后面的jsp页面调用了。
Jsp+JavaBean循序渐进教程(五) 刘玉锋 数据挖掘工具
newuser.jsp文件 数据挖掘工具
说明:用户注册页面,有用户名、密码、主页、Email、个人签名等信息,主要用于提供用户输入注册 信息,提交Action后的处理页面为donewuse.jsp文件,所有参数将会传递到donewuser.jsp文件进行 处理。文件开头< %@ page contentType="text/html;charset=gb2312"%>语句表明这个页面使用 gb2312中文字符集,如果不声明的的话在中文显示上就出现乱码。< % response.setHeader("Expires", "0"); %>语句是为了让页面能够自动刷新,这句话不要也没有太大影响。后面的基本上就是html语句了, 大家都比较熟悉,所以在这里没有必要浪费篇幅了。 数据挖掘论坛
< %@ page contentType="text/html;charset=gb2312"%> < % response.setHeader("Expires","0"); %> < html> 数据挖掘论坛
< head> < meta http-equiv="Content-Type" content="text/html; charset=gb2312"> < meta name="GENERATOR" content="Microsoft FrontPage 4.0"> < meta name="ProgId" content="FrontPage.Editor.Document"> < title>新用户注册 < /head> < body bgcolor="#FFFAD9"> < p align="center">< font color="#8484FF">< span class="main1">< strong>< big>新个人 用户注册 < span class="main1"> < form method="POST" name="formreg" action="donewuser.jsp"> < div align="center">< center>< table border="1" width="50%" borderColorDark="#FFFFFF" borderColorLight="#000000" cellspacing="0"> < tr> < td width="27%" bgcolor="#DDDDFF" align="center">< span class="main1">用户名: < td width="73%" bgcolor="#DDDDFF">< span class="main1">< 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="http://"> < /tr> < tr> < td width="100%" bgcolor="#DDDDFF" colspan="2"> < BR> < center>< span class="main1">< Font color="red">< B>介绍自己: < span class="main">(介绍自己,不能超过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="递交" onclick="return checkmsg();" name="B1" tabindex="10"> < input type="reset" value="清除" name="B2" tabindex="11"> < /tr> < /table> < /center> < /form>
< hr size="1" color="#FF0000"> < span class="main"> < p align="center">Better View:800*600 Best View:1024x768 为了本系统能够更好的为您服务,请使用IE4.0或以上版本浏览器 < font color="#000000">< a href="javascript:%20newGuide("copyright.htm")" target="_self">版权所有 数据挖掘交友
< span class="main"> < a href="http://jspbbs.yeah.net" target="_blank">JSP爱好者 < span class="main1">(< a href="mailto:coolknight@263.net">刘玉锋) 制作 Copyright? 2000 < /body> < /html>
注册页面做完了,看看后面怎么对这个页面的数据进行处理。 数据挖掘实验室
Jsp+JavaBean循序渐进教程(六) 刘玉锋
数据挖掘工具
这一节涉及到两个页面,一个donewuser.jsp文件用来实现记录添加操作,另一个文件listuser.jsp文件 用来显示所有的已经注册的用户信息。这两个页面都涉及到了JavaBean的具体调用,还是来看看文件吧, 对于文件中关键代码,都会添加上注释,以方便大家理解。 数据挖掘工具
donewuser.jsp文件 数据挖掘论坛
说明:用户注册操作页面,并根据用户注册成功否显示相应的反馈信息,这个页面主要的特点就是使用了 lyf.adduser这个JavaBean的addNewUser()方法来进行记录的添加。
< %@ page contentType="text/html;charset=gb2312"%> < % response.setHeader("Expires","0"); %> < !--生成一个JavaBean:lyf.adduser的实例,id为adduser,生存范围为page--> < jsp:useBean id="adduser" class="lyf.adduser" scope="page"/> 数据挖掘研究院
< !--设置JavaBean中各个属性的值,这会调用JavaBean中各个属性的set方法,以便JavaBean得到 正确的属性值,”*”代表进行所有属性的匹配--> 数据挖掘工具
< jsp:setProperty name="adduser" property="*"/> < html> < head> < meta http-equiv="Content-Language" content="zh-cn"> < meta http-equiv="Content-Type" content="text/html; charset=gb2312"> < meta name="GENERATOR" content="Microsoft FrontPage 3.0"> < meta name="ProgId" content="FrontPage.Editor.Document"> < title>用户添加< /title> < /head> < body bgcolor="#FFEBBD"> < div align="center">< center> < % 数据挖掘工具
//调用lyf.adduser的checkUser()方法检查是否有重复的用户名 数据挖掘工具
//如果有重复就显示对应的信息 数据挖掘交友
if(!adduser.checkUser()) {
//页面文字输出信息,使用jsp内置对象out的println方法,相当于asp中的response.write方法 数据挖掘论坛
out.println("对不起,这个用户名"+adduser.getUsername()+"已经被申请了,请重新选择!"); 数据挖掘交友
//return代表返回,运行时候碰到return就不会进行下面的处理了,功能相当于asp中的response.end 数据挖掘交友
return; } %> < % //如果没有用户名重复的问题,调用lyf.adduser的addNewUser()方法来将用户数据添加到数据库中,并 根据数据添加成功否来显示对应的信息 数据挖掘工具
if(adduser.addNewUser()){ %> < H2>添加用户成功!
< H2>添加用户失败,请和管理员联系! 数据挖掘研究院
< /BODY> < /HTML> 数据挖掘实验室
listuser.jsp文件 数据挖掘论坛
说明:用户信息列表页面,用于显示注册的所有用户信息,对数据进行了分页显示。
为了方便大家使用,采用了通用的分页代码,如果是JDBC2.0以上或者其他支持 TYPE_SCROLL_INSENSITIVE游标的数据库驱动程序,可以有更简洁的分页方法。 数据挖掘实验室
和前面jsp页面类似的语句就不讲解了,代表在 这个页面中导入java.sql.ResultSet的这个类库,因为Jsp页面中间要声明ResultSet; oracle.jdbc.driver.*类库是Oracle专用的Jdbc驱动程序,让Jsp页面可以用来进行Oracle的数据库操作。 数据挖掘交友
< %@ page contentType="text/html;charset=gb2312"%> < % response.setHeader("Expires","0"); %> < %@ page import="java.sql.ResultSet" %> < %@ page import="oracle.jdbc.driver.*" %> < !--生成一个JavaBean:lyf.db的实例--> < jsp:useBean id="db" class="lyf.db" scope="request"/> < jsp:setProperty name="db" property="*"/> < % 数据挖掘实验室
java.lang.String strSQL; //SQL语句 数据挖掘实验室
int intPageSize; //一页显示的记录数 int intRowCount; //记录总数 int intPageCount; //总页数 int intPage; //待显示页码 java.lang.String strPage; int i,j,k; //设置一页显示的记录数 intPageSize = 15; //取得待显示页码 strPage = request.getParameter("page"); if(strPage==null){//表明在QueryString中没有page这一个参数,此时显示第一页数据 intPage = 1; } else{//将字符串转换成整型 intPage = java.lang.Integer.parseInt(strPage); if(intPage<1) intPage = 1; } //获取记录总数 strSQL = "select count(*) from user"; ResultSet result = db.executeQuery(strSQL); //执行SQL语句并取得结果集 result.next(); //记录集刚打开的时候,指针位于第一条记录之前 intRowCount = result.getInt(1); result.close(); //关闭结果集 //记算总页数 intPageCount = (intRowCount+intPageSize-1) / intPageSize; //调整待显示的页码 if(intPage>intPageCount) intPage = intPageCount; strSQL="select * from user order by id desc"; //执行SQL语句并取得结果集 数据挖掘研究院 result = db.executeQuery(strSQL); //将记录指针定位到待显示页的第一条记录上 i = (intPage-1) * intPageSize; for(j=0;j < html> < head> < meta http-equiv="Content-Language" content="zh-cn"> < meta http-equiv="Content-Type" content="text/html; charset=gb2312"> < meta name="GENERATOR" content="Microsoft FrontPage 3.0"> < meta name="ProgId" content="FrontPage.Editor.Document"> < 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" class="main"> 第页 共页 < a href="listuser.jsp?page=0">首页 < a href="listuser.jsp?page=">上一页 上一页 < a href="listuser.jsp?page=">下一页 下一页 < a href="listuser.jsp?page=">尾页 第< input type="text" class="main" name="page" size="3" value="" tabindex="1">页< input type="submit" class="main" value="go" name="B1" tabindex="2"> 数据挖掘实验室
< table border="1" width="100%" cellspacing="0" bordercolorlight="#000000" bordercolordark="#FFFFFF" class="main"> < 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> 先运行程序newuser.jsp文件,进行用户注册操作,然后运行listuser.jsp文件,看看是否已经 添加到数据库中。对于具体jsp文件和class文件放在什么目录下的问题,请看具体jsp服务器软件的参考, 一个最简单的方法就是用Jbuilder4.0直接运行,因为它自带了Tomcat服务器软件。 数据挖掘工具
好了,到这里Jsp+JavaBean的介绍就基本上结束了,通过上面的学习,大家应该对JavaBean如何 应用于JSP程序中有了一个基本的了解,剩下的就是在具体程序中去应用和发挥了。
|