实验二 网上书店.docx
《实验二 网上书店.docx》由会员分享,可在线阅读,更多相关《实验二 网上书店.docx(42页珍藏版)》请在冰豆网上搜索。
实验二网上书店
实验二网上书店
1实验目的
1)进一步理解多层应用、应用服务器、JSP程序设计的。
2)通过一个本实验,掌握较复杂Web项目开发方法。
2工具/准备工作
需要准备一台带有浏览器,安装完成Tomcat,Eclipse的计算机。
3实验内容与步骤
在本实验中我们使用JSP和JavaBean来构建一个网上书店。
本实验介绍的例子可以分成两大部分,第一部分是普通程序,用于客户在网上选购图书,第二部分是管理程序,用于在服务器端处理客户的定单。
客户端程序由以下几个部分构成:
default.jsp:
会员登录界面(首页);
checklogon.jsp:
检测登录代码和密码是否一致,根据由JavaBean返回的结果显示不同的信息。
BuyerBean:
会员的合法性检验所用的Bean;
booklist.jsp:
给登录会员显示当前书店中可供选择的图书;
addcart.jsp:
将所选的图书加入购物车;
shoppingcart.jsp:
查看购物车的内容;
本例的数据库采用Access(.MDB数据库),对数据库的访问采用便于理解的JDBC-ODBC方式,在使用本例前先在本地数据库建立一个ODBC数据源:
bookstore。
设置步骤如下:
(1)在开始->设置->控制面版(Win98、NT4.0)中选取“数据源(ODBC)”;在Win2000Professional和Server中分别位于“开始->设置->控制面版->管理工具”和“开始->程序->管理工具”下。
(2)启动“数据源(ODBC)”配置程序,界面如图1所示。
图1ODBC数据源管理界面
(3)在图1中“系统DSN”选项下单击“添加”按钮,来添加一个系统的数据源(DSN),则出现如图2所示数据源驱动程序选择界面:
图2数据源驱动程序选择界面
(4)在图2中选择“MicrosoftAccessDriver(*.mdb)”单击“完成”加载Access数据库的驱动,则出现如图3所示数据库ODBC安装界面:
图3数据库ODBC安装界面
(5)在图3中单击“选择(S)…”按钮,启动一个类似资源管理器的界面来选择数据库,如图4所示,在图4所示的界面中选择bookstore.mdb。
图4数据库选择界面
3.1会员登录
做一个网上书店,在顾客开始购书之前,必须要记录用户的一些信息以便用户在不同的分类、不同的页面购书时,最后能够去收款台统一结帐,而且网上书店同时有许多人在选购图书,也要求对不同的顾客进行区分,我们可以要求顾客在购书之前进行注册成为会员,以后只用会员代码和密码即可登录。
为了便于说明现在的电子商务网站,由JSP做页面表现,由JavaBean做应用逻辑的结构,在本例中将会员登录程序分成两大部分:
一、JavaBean用于对数据库的操作,验证用户名和密码是否正确;二、JSP页面部分,用于供用户会员代码和密码以及显示验证结果。
1)会员登录JavaBean
我们网上书店中的会员信息的库结构如图5所示:
图5会员信息库
其中memberID是主键,用于区分不同的会员,新会员注册时只能使用没有被使用的用户代码。
在验证时我们只要使用验证用户的memberID和其pwd是否一致即可判断该用户是否合法,如果合法则其登录次数加1。
下面是用户验证部分的JavaBean的代码
清单1BuyerBean.Java
/**BuyerBean.Java1.10.2001
*Copyright©2000,2001bycuugllp.
*本Bean中有两个set方法和两个get方法:
*setMemberID()—对BuyerBean中的memberID属性进行赋值;
*setPwd()—对BuyerBean中的pwd属性进行赋值;
*getLogontimes()—取该会员登录的次数
*getMenberName()获得该会员的真实姓名,用于显示欢迎信息。
*main()方法用于将BEAN作为一个Application进行测试时使用,正式发布时可以删除。
**/
packagecuug;
importJava.sql.*;
publicclassBuyerBean{
privateStringmemberID=null;//会员ID
privateStringmemberName=null;//会员姓名
privateStringpwd=null;//密码
privateintlogontimes=-1;//登录的次数
privatestaticStringstrDBDriver=“sun.jdbc.odbc.JdbcOdbcDriver”;//JDBC驱动
privatestaticStringstrDBUrl=“jdbc:
odbc:
bookstore”;//数据源,
privateConnectionconn=null;//连接
privateResultSetrs=null;//结果集
publicBuyerBean(){
//加载JDBC-ODBC驱动
try{
Class.forName(strDBDriver);
}
//捕获异常
catch(Java.lang.ClassNotFoundExceptione){
System.err.println(“BuyerBean():
”+e.getMessage());
}
}
//获得登录次数,登录的会员的名字也在该方法调用时获得
publicintgetLogontimes(){
StringstrSql=null;
try{
conn=DriverManager.getConnection(strDBUrl);
Statementstmt=conn.createStatement();
strSql=“SelectlogonTimes,membernamefrombuyerInfowherememberID=‘”+
memberID+“’andpwd=’”+pwd+“’”;
rs=stmt.executeQuery(strSql);
while(rs.next()){
//登录的次数
logontimes=rs.getInt(“logonTimes”);
//会员姓名
memberName=rs.getString(“membername”);
}
rs.close();
//如果是合法会员则将其登录次数加1
if(logontimes!
=-1){
strSql=“UpdatebuyerInfoset
logonTimes=logonTimes+1wherememberID=‘”+memberID+“’”;
stmt.executeUpdate(strSql);
}
stmt.close();
conn.close();
}
//捕获异常
catch(SQLExceptione){
System.err.println(“BuyerBean.getLogontimes():
”+e.getMessage());
}
returnlogontimes;
}
//设置memberID属性;
publicvoidsetMemberID(StringID){
this.memberID=ID;
}
//设置pwd属性
publicvoidsetPwd(Stringpassword){
this.pwd=password;
}
//获得该会员的真实姓名,必须在取该会员登录的次数之后才能被赋予正确的值
publicStringgetMemberName(){
returnmemberName;
}
//测试Bean中的各个方法是否能够正常工作
publicstaticvoidmain(Stringargs[]){
BuyerBeanbuyer=newBuyerBean();
buyer.setMemberID(“abcd”);
buyer.setPwd(“1234”);
System.out.println(buyer.getLogontimes());
System.out.println(buyer.getMemberName());
}
}
在BuyerBean中用了packagecuug;在发布到WEBSERVER时,可以用JAR(JDK中带的打包工具)把编译后的BuyerBean.class打包成JAR文件在服务器的环境变量classpath中给予指定,或者在服务器classpath环境变量指定的目录下建一个cuug文件夹,把BuyerBean.class放到cuug目录下。
2)会员登录htm与JSP
会员登录要由两个部分来完成,第一个页面用于会员输入其ID和密码,当然首页还可以加一些广告等的其它信息,在本例中略过。
清单2default.htm
—
Copyright©1999cuug,liu.
CUUGONLINEBOOKSTORE–MEMBERLOGIN
CUUG网上书店
会员登录页
请输入会员代号和密码:
会员代码:
密 码: