JSP网上书店开发完整实例含完整源代码文档格式.docx
- 文档编号:1053331
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:49
- 大小:279.95KB
JSP网上书店开发完整实例含完整源代码文档格式.docx
《JSP网上书店开发完整实例含完整源代码文档格式.docx》由会员分享,可在线阅读,更多相关《JSP网上书店开发完整实例含完整源代码文档格式.docx(49页珍藏版)》请在冰点文库上搜索。
图15-3
数据库ODBC安装界面
(5)在图15-3中单击“选择(S)…”按钮,启动一个类似资源管理器的界面来选择数据库,如图15-4所示,在图15-4所示的界面中选择bookstore.mdb。
图15-4
数据库选择界面
15.1
会员登录
做一个网上书店,在顾客开始购书之前,必须要记录用户的一些信息以便用户在不同的分类、不同的页面购书时,最后能够去收款台统一结帐,而且网上书店同时有许多人在选购图书,也要求对不同的顾客进行区分,我们可以要求顾客在购书之前进行注册成为会员,以后只用会员代码和密码即可登录。
为了便于说明现在的电子商务网站,由JSP做页面表现,由JavaBean做应用逻辑的结构,在本例中将会员登录程序分成两大部分:
一、JavaBean用于对数据库的操作,验证用户名和密码是否正确;
二、JSP页面部分,用于供用户会员代码和密码以及显示验证结果。
15.1.1
会员登录JavaBean
我们网上书店中的会员信息的库结构如图15-5所示:
图15-5
会员信息库
其中memberID是主键,用于区分不同的会员,新会员注册时只能使用没有被使用的用户代码。
在验证时我们只要使用验证用户的memberID和其pwd是否一致即可判断该用户是否合法,如果合法则其登录次数加1。
下面是用户验证部分的JavaBean的代码
清单15-1
BuyerBean.Java
/**BuyerBean.Java
1.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():
returnlogontimes;
//设置memberID属性;
public
voidsetMemberID(StringID){
this.memberID=ID;
//设置pwd属性
publicvoid
setPwd(Stringpassword){
this.pwd=password;
//获得该会员的真实姓名,必须在取该会员登录的次数之后才能被赋予正确的值
publicStringgetMemberName(){
returnmemberName;
//测试Bean中的各个方法是否能够正常工作
staticvoidmain(Stringargs[]){
BuyerBeanbuyer=newBuyerBean();
buyer.setMemberID(“abcd”);
buyer.setPwd(“1234”);
System.out.println(buyer.getLogontimes());
System.out.println(buyer.getMemberName());
在BuyerBean中用了package
cuug;
在发布到WEBSERVER时,可以用JAR(JDK中带的打包工具)把编译后的BuyerBean.class打包成JAR文件在服务器的环境变量classpath中给予指定,或者在服务器classpath环境变量指定的目录下建一个cuug文件夹,把BuyerBean.class放到cuug目录下。
15.1.2
会员登录htm与JSP
会员登录要由两个部分来完成,第一个页面用于会员输入其ID和密码,当然首页还可以加一些广告等的其它信息,在本例中略过。
清单15-2default.htm
<
contentType=”text/html;
charset=gb2312”>
HTML>
!
—
Copyright?
1999cuug,liu.
HEAD>
TITLE>
CUUGONLINEBOOKSTORE–MEMBERLOGIN<
/TITLE>
/HEAD>
BODYbgcolor=”white”>
H1align=”center”>
CUUG网上书店<
/H1>
H2align=”center”>
会员登录页<
/H2>
P>
/P>
CENTER>
FORMMETHOD=POSTACTION=”checklogon.jsp”>
BR>
fontsize=5color=”green”>
请输入会员代号和密码:
<
br>
会员代码:
inputTYPE=”text”name=memberID
>
密
码:
inputTYPE=”password”name=pwd
INPUTTYPE=submitname=submitValue=”登录”>
/font>
/FORM>
/CENTER>
/BODY>
/HTML>
在本例中提供了一个文本框供用户输入会员代号和登录密码,其运行结果如图15-6所示,当会员输入其代码和密码后调用checklogon.jsp来验证该网络用户是否是合法会员。
图15-6
会员登录页
在checklogon.jsp中接收从default.htm中由用户所填的会员代码和密码,把它传给BuyerBean,由BuyerBean判断该用户的会员代码和密码的正确性,若正确显示欢迎信息;
若不正确,则提供一个重新登录的链接。
Checklogon.jsp的源代码如下:
清单15-3
checklogon.jsp
DOCTYPEHTMLPUBLIC“-//W3C//DTDHTML4.0Transitional//EN”>
%@pagelanguage=”Java”
contentType=”text/html;
charset=GB2312”%>
jsp:
useBeanclass=”cuug.BuyerBean”id=”buyer”scope=”page”>
/jsp:
useBean>
METAname=”CHECKLOGON”>
CUUGONLINEBOOKSTORE–MEMBERLOGIN
BODYBGCOLOR=”#FFFFFF”>
%
StringmemberID=request.getParameter(“memberID”);
Stringpwd=request.getParameter(“pwd”);
buyer.setMemberID(memberID);
buyer.setPwd(pwd);
%>
%intlogonTimes=buyer.getLogontimes();
if(logonTimes>
0){
session.putValue("
memberID"
memberID);
%=buyer.getMemberName()%>
欢迎你第
%=logonTimes+1%>
次来到CUUG网上书店<
Ahref=”booklist.jsp”>
进入书店<
/A>
else{
对不起,<
%=memberID%>
你的用户名和密码不一致<
Ahref=”default.htm”>
重新登录<
登录正确时的结果如图15-7所示,错误时的结果如图15-8所示。
图15-7
用户登录正确(会员abcd的真实姓名是cuug001)
图15-8
用户登录错误
15.2
选书
会员登录之后,合法的用户将可以看到本书店中可供选择的图书,并且将他感兴趣的书放入“购物车”,在去“收银台”结帐之前,该用户可以放弃购买其购物车中的任何一本书。
在此处我们用BookBean来获取图书的信息,在Booklist.jsp中显示这些书。
在会员选书部分,我们仍用JavaBean来操作数据库,用jsp来做页面表现。
15.2.1
选书JavaBean
图书信息的表结构如图15-9所示,为了便于说明,在本例中price也设置成了String型,在实际应用中应该设置成货币或浮点型:
图15-9
图书信息的表结构
其中,bookISBN是主键,区分不同的图书。
JavaBean要根据不同的图书的bookISBN来获得其相应的书名、作者、出版社、价格、简介等信息。
同时JavaBean还要有列出书店中所有图书的信息的功能。
清单15-4
BookBean..Java
2000,2001bycuug,llp.
*本Bean中的各个方法的功能介绍如下:
*setBookISBN():
设置图书的编号,同时根据编号更新相应的书名、作者、出版社、价格*和简介
*getBookList()—取得书库中全部书的书名、出版社、价格、作者等信息;
*getBookISBN()—取得当前图书的编号;
*getBookName()—取得当前图书的书名;
*getBookAuthor()—取得当前图书的作者;
*getPublisher()—取得当前图书的出版社信息;
*getPrice()—取得当前图书的价格;
*getIntroduce()取得当前图书的简介信息。
publicclassBookBean{
privateStringbookISBN=null;
//图书编号
privateStringbookName=null;
//书名
privateStringbookAuthor=null;
//作者
privateStringpublisher=null;
//出版社
privateStringintroduce=null;
//简介
privateStringprice=null;
//价格
privatestaticStringstrDBDriver="
sun.jdbc.odbc.JdbcOdbcDriver"
;
privatestaticStringstrDBUrl="
jdbc:
bookstore"
publicBookBean(){
//加载驱动
System.err.println("
BookBean():
"
+e.getMessage());
//取当前书库中全部图书信息
publicResultSetgetBookList(){
//建立与数据库的连接
strSql="
SelectbookISBN,bookName,bookAuthor,publisher,pricefrombookInfo"
BookBean.getBookList():
returnrs;
//根据图书的编号给图书的其他信息赋值
private
voidgetBookInfo(StringISBN){
bookName=null;
bookAuthor=null;
publisher=null;
introduce=null;
price=null;
//建立和数据库的连接
Select*frombookInfowherebookISBN='
+ISBN+"
'
while(rs.next()){
bookName=rs.getString("
bookName"
);
bookAuthor=rs.getString("
bookAuthor"
publisher=rs.getString("
publisher"
introduce=rs.getString("
introduce"
price=rs.getString("
price"
//给图书的编号赋值,同时调用函数给图书的其他信息赋值
voidsetBookISBN(StringISBN){
this.bookISBN=ISBN;
getBookInfo(bookISBN);
//取图书编号
StringgetBookISBN(){
returnbookISBN;
//取书名
publicStringgetBookName(){
returnbookName;
//取作者信息
publicStringgetBookAuthor(){
returnbookAuthor;
//取出版社信息
publicStringgetPublisher(){
returnpublisher;
//取图书简介
publicStringgetIntroduce(){
returnintroduce;
//取图书价格
publicStringgetPrice(){
returnprice;
//将Bean作为一个application进行测试用
BookBeanbook=newBookBean();
book.setBookISBN("
7-5053-5316-4"
System.out.println(book.getBookName());
System.out.println(book.getBookAuthor());
System.out.println(book.getPublisher());
System.out.println(book.getIntroduce());
System.out.println(book.getPrice());
ResultSettmpRS=book.getBookList();
while(tmpRS.next()){
System.out.println(tmpRS.getString("
bookname"
));
tmpRS.close();
catch(Exceptione){
main()"
15.2.2
选书JSP
会员正确登录之后,即可进入书店进行选书,我们已经在checklogon.jsp中将会员的代码(memberID)放入系统的session中,为了保证用户只能从主页面登录进入书店,我们在给会员显示可供选择的图书之前,先检查session中是否有memberID的合法值,如果没有则提示用户先去登录。
清单15-5
booklist.jsp
DOCTYPEHTMLPUBLIC"
-//W3C//DTDHTML4.0Transitional//EN"
>
%@pagelanguage="
J
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JSP 网上 书店 开发 完整 实例 源代码