50基于jsp的网上购物系统设计本科学位论文.doc
编 号: 审定成绩: 先锋软件学院2011届毕业设计(论文)题目: 基于JSP的网上购物系统设计 分 院: 软件工程分院 学生姓名: 付兴龙 专 业: 软件设计与开发 班 级: 0807 学 号: 200800002300 指导教师: 魏建红老师 2010年 4月先锋软件学院学生毕业设计(论文)工作自查表(2010年10月- 2010年11月检查)学生姓名付兴龙专业软件设计与开发学号200800002300导师姓名魏建红职称教师导师每周指导次数4每次: 2 小时题目名称基于JSP的网上购物系统设计作息时间上午9:0012:00下午14:00 17:00晚间时 时个人精力实际投入日均工作小时6周均工作小时30缺席天数出勤率%毕业设计(论文)工作进度已完成主要内容%待完成主要内容%第一章开发环境介绍第二章购物网站需求分析即总体设计第三章数据库结构设计第四章系统详细设计第五章系统测试和维护10204080100购物网站需求分析数据库结构设计系统详细设计系统测试和维护参考文献及总结907030200存在问题工作措施指导教师(签字): 日期: 年 月 日 先锋软件学院毕业论文(设计)评阅表(指导教师、评阅人用)论文(设计)名称基于JSP的网上购物系统设计学生姓名付兴龙学号200800002300指导教师或评阅人)姓名序号评审项目指标满分评分1论文(设计)完成量论文(设计)内容完成量,难易程度符合教学基本要求202调查与综合根据论文(设计)任务,能独立查阅文献资料和从事其它有关调研。有收集、综合和正确利用各种信息的能力。203论文(设计)质量文章切合选题,材料丰富、内容充实,观点明确、论据充分、论证严格,构思完整、层次分明、段落、论题间的衔接自然、舒展。文笔流畅、语言通顺、使用专业术语准确,图表清楚,符合要求。504创新有独特的见解,或有一定应用价值10总分评语:(明确指出论文(设计)的调研论证材料收集是否适合论点要求、创新点、论文(设计)论证能力、写作水平,同时要明确指出论文(设计)的不足之处及改进方向。) 评阅人: 年 月 日摘 要伴随着Internet的蓬勃发展,网络购物中心作为电子商务的一种形式正以其高效、低成本的优势,逐步成为新兴的经营模式和理念,人们已经不再满足用途信息的浏览和发布,而是渴望着能够充分享受网络所带来的更加多的便利。网络购物正适应了当今社会快节奏地生活,使顾客足不出户便可以方便快捷轻松地选购自己喜欢的商品。本系统便是尝试用JSP在网络上架构一个动态的电子商务网站,它是在Windows XP下,以SQL Server 2000为数据库开发平台,Tomcat网络信息服务作为应用服务器,采用JSP(Java Server Pages)技术开发的网上购物系统。他分前台部分和后台部分,前台部分由用户使用,主要包括用户注册,购物车管理,订单管理,个人资料管理,留言板管理等功能;后台部分由管理员使用,主要包括商品管理,处理订单,用户信息管理,链接信息管理等功能。建立后的网站系统是一个动态、交互式、具有商品提供、系统管理、用户留言等功能的电子商务网站。关键字:JSP;SQLserver2000;Tomcat;网上购物系统AbstractAlong with the vigorous development of the Internet, e-commerce networks as a shopping center is a form of its highly efficient, low-cost advantages, gradually emerging as a business model and philosophy, there is no longer meet use and dissemination of information browsing, but a desire to bring the full enjoyment network more convenient. Internet shopping is being adapted to the fast pace of today's society to live, so that customers can enjoy the convenience of fast and easy way to purchase their own like commodities. The system is trying to use JSP in a dynamic network of e-commerce websites structure, which is in Windows XP, SQL Server 2000 for database development in platform, Tomcat application server as a network information services, use JSP (Java Server Pages) technology development online shopping system. Prospects and the background of some of his hours, the prospects of users, including users registered, a shopping cart management, order management, personal information management, message board management functions; Background in part by managers, including commodity management, processing orders, customer information management, information management, and other functions links. After the establishment of the website is a dynamic, interactive, with commodities, systems management, voice mail, and other functions of the e-commerce website users. Keywords JSP; SQL Server 2000;Tomcat;Online shopping system第V页目录摘 要IVAbstractV前言3第一章 开发环境介绍31.1 JSP的技术原理31.1.1 JSP语言及其特点31.2 服务器配置31.3 数据库配置4第二章 购物网站需求分析及总体设计52.1需求分析52.1.1 购物网站需求分析52.1.2 系统需求分析52.2 系统功能模块设计52.3 数据库需求分析6第三章 数据库结构设计73.1 数据库实现73.1.1 tb_Ware(商品信息表)73.1.2 tb_txet(留言信息表)73.1.3 tb_manager(管理员信息表)83.1.4 tb_sub(订单生成表)83.1.5 tb_Link(超级链接表)93.1.6 tb_Affiche(公告信息表)93.2 用JSP连接数据库9第四章 系统详细设计114.1 前台部分114.1.1 前台总体框架114.1.2 用户管理模块124.1.3 用户资料修改154.1.4 购物车模块164.1.5 订单查询模块204.1.6 留言板模块214.2 后台部分224.2.1 后台总体框架224.2.2 管理员登录234.2.3 添加商品244.2.4 订单信息管理254.2.5 查询用户信息274.2.6 添加链接28第五章 系统测试和维护295.1 系统测试295.2 系统维护29结论30致 谢31参考文献32第32页前言随着Internet飞速发展,互联网成为人们快速获取、发布和传递信息的重要渠道。它在人们的政治、经济、生活等各个方面发挥着重要作用。Internet上发布信息主要是通过网站来实现。随着人们生活水平逐步提高,足不出户完成工作、学习、娱乐、购物等已经成为人们对快节奏生活方式的一种需求。当前,随着人们生活水平的提高,大大小小各种数码店已布满了城市大街小巷,数码价格大大降低,数码相机商店之间竞争相当激烈,利润减少。很多大型商店已转向在互联网上购物业务,以节约成本,增加利润增长点,网络上的数码商店也是大量存在。但是在本地区的网上数码店较少,配送范围较窄,电子商务功能应用不够,因而知名度不高,所以网上购物还有很大的发展空间。建立恒宇购物网站,开展产品网上交易、配送服务,主要有以下几个方面的作用:1降低成本。以电子商务开展业务,可以大量减少人力、物力;同时使得交易活动突破了时间和空间的限制,可以在任何时间、任何地点进行,大大降低成本,提高效率。2有利于树立购物网的形象。作为第四媒体的互联网,其特点就是可以跨越时空,正常情况下,网站无时无刻不在工作,通过亨与商务网站,用户可以跨越时空了解数码店,利用多媒体技术,恒宇购物网可以向用户展示产品、经营理念、形象。3有利于拓展营销渠道,扩大市场,提高营销效率。药店通过网站可以开展电子营销。电子营销作为传统营销的补充; 电子营销可以拓展新的空间,增加销售渠道,接触更大的消费群体,获得更多的新顾客,扩大市场。4有利于了解顾客的意见,掌握顾客的需求。在不干扰顾客正常工作和生活的条件下,通过恒宇购物网站上的客户留言、留言薄可以倾听顾客的意见,了解顾客的心声,加强与顾客间的联系建立良好的顾客关系。5有利于改善服务,提高服务质量。利用网站,通过电子沟通方式,开展在线服务方式能够更加及时准确地掌握用户的需求,通过网站的交互式服务使得被动提供和主动获得统一起来,从而实现售前、售中、售后的全过程和全方位的服务。第一章 开发环境介绍1.1 JSP的技术原理1.1.1 JSP语言及其特点在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp)。JSP页面看上去象标准的HTML和XML页面,并附带有JSP引擎能够处理和抽取的额外元件。2Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给用户。程序片段可以操作数据库、重新定向网页以及发送E-mail等,这就是建立动态网站所需要的功能。所有程序都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低。它基于强大的Java语言,具有良好的伸缩性,在网络数据库应用开发领域具有得天独厚的优势。JSP技术在多个方面加速了动态Web页面的开发:(1)将内容的生成和显示进行分离(2)强调可重用的组件(3)采用标识简化页面开发(4)JSP能提供所有Servlets功能(5)健壮的存储管理和安全性(6)一次编写,各处运行1.2 服务器配置 Tomcat安装及配置:直接运行下载的apache-tomcat-5.5.17.exe文件,按照一般的Windows程序安装步骤即可安装好Tomcat,安装时它会自动寻找JDK的位置。安装过程中需要选择一个文件夹作为Tomcat的安装目录。我选择安装的位置是C:Tomcat 5.5。安装完成以后,添加一个Tomcat的环境变量,添加方法和JDK的环境变量的添加方法相同,设置变量名为TOMCAT_HOME,变量值为C:Tomcat 5.5。设置完毕后就可以运行Tomcat服务器了。Tomcat成功启动后,在浏览器中输入http;/localhost;8080/,如果出现欢迎界面,则说明Tomcat安装成功。1.3 数据库配置SQL Server 20003 首先,要定义一个数据库名称(DSN)。打开“开始”|“设置”|“控制面板”|“管理工具“,在文件夹下有ODBC数据源的快捷方式。 在弹出的“ODBC数据源管理器”对话框中选择“系统DSN”选项卡,然后单击“添加”按纽,选择“SQL Server”为数据库驱动程序,单击“完成”按纽。 在弹出的“创建SQL Server的新数据源”对话框的“数据源名称”文本框输入“biye”,在“描述”文本框中可以写上数据库的功能。在“服务器”下拉列表中选择要连接的SQL Server,此处要安装的本地服务器,所以选择“XY”即可单击“下一步”按钮,选择“使用用户输入登录ID和密码的SQL Server验证”单选按钮,“登录ID”默认为“weiyue”,密码为空。单击“下一步”按钮,再单击“完成”按钮即可打开“ODBC Microsoft SQL Server 安装”对话框。第二章 购物网站需求分析及总体设计2.1需求分析2.1.1 购物网站需求分析本文阐述了电子商务网站设计与实现-在线销售系统的目的、过程以及各种功能的实现。给出了网站的系统分析,描述了网页设计概况,并介绍了数据库的内容和主要实现。本文还总结概括了该网页的主要特点和功能。外观设计简约,交流界面人性化,配合数据库管理,实用且易操作。2.1.2 系统需求分析此基于JSP的购物网站分前台功能和后台功能: 1) 前台部分由用户使用,主要包括用户注册,购物车管理,订单管理,个人资料管理,留言板管理2) 后台部分由管理员使用,主要包括管理员身份验证,商品管理,处理订单,用户信息管理,连接信息管理2.2 系统功能模块设计网上购物系统前台功能后台功能 用户管理 购物车管理 订单管理 个人资料管理 留言板管理 用户信息管理 公告信息管理 链接信息管理 处理订单 商品管理 管理员身份验证功能结构图如下:图9 功能模块设计图从图中可以看出,网上购物系统可以分为前台和后台两个部分,前台部分由用户使用,主要包括用户注册,生成订单,购物车管理,查看购物车,查看留言,订购产品,订单查询和发布留言7个模块;后台部分由管理员使用,主要包括管理员身份验证,商品管理,处理订单,用户信息管理,连接信息管理5个模块。2.3 数据库需求分析 数据库的设计通常是以一个已经存在的数据库管理系统为基础的,常用的数据库管理系统有MYSQL,SQL Server, Oracle等。我采用了SQL server2000数据库管理系统,建立的数据库名为db_business。整个系统功能需要以下数据项:用户:用户id、用户名称、登录密码、用户真实姓名、性别、邮箱地址、联系地址、联系电话、密码问题、答案、注册时间。留言:主题id、作者姓名、Email、主题名称、留言内容、发布时间。商品:商品id、名称、价格、图片路径、类型、简要介绍、存储地址、上传人姓名、发布时间、是否推荐。订单:订单号、用户名、真实姓名、订购日期、Email、地址、邮编、付款方式、联系方式、运送方式、订单核对、其他。管理员:管理员id、管理员名称、管理员密码。公告:公告内容、公告时间。 第三章 数据库结构设计3.1 数据库实现3.1.1 tb_Ware(商品信息表)主要用于保存商品的基本信息,该表的结构如表2所示表2 tb_Ware(商品信息表)列 名说 明类 型 ( 长 度 )备 注WAREID物品IDINT (4)不允许空,主键WARENAME物品名称VARCHAR (50)不允许空WAREPRICE物品价格BIGINT (8)不允许空WARETYPE物品类型VARCHAR (20)不允许空WAREINTRO物品介绍TEXT (16)不允许空WAREIMAGE图片路径VARCHAR (50)不允许空WAREIF是否推荐INT (4)不允许空DATTIME发布时间DATTIME (8)不允许空3.1.2 tb_txet(留言信息表)主要用于记录留言信息,该表的结构如表3所示。表3 tb_text(留言信息表)字 段说 明类型(长度)备注TEXTID主题IDINT(4)不允许空,主键USERNAME作者姓名VARCHAR(20)不允许空EMAILEMAILVARCHAR(50)不允许空DATTIME发布时间DATTIME(8)不允许空TEXTNAME主题名称VARCHAR(50)不允许空TEXTGUT留言内容TEXT (16)不允许空3.1.3 tb_manager(管理员信息表)主要用于保存管理员信息,该表的结构如表4所示。表4 tb_manager(管理员信息表)字 段说 明类 型 ( 长 度 )备 注ID管理员IDINT(4)不允许空ADMIN管理员名称VARCHAR(30)不允许空ADMINPASS管理员密码VARCHAR(16)不允许空3.1.4 tb_sub(订单生成表)主要用于保存会员等级信息。主要用于记录某一订单表中所订购的商品的详细信息,该表的结构如表4-6所示表6 tb_shop(订单商品表)字 段说 明类型(长度)备注SUBID订单IDVARCHAR(50)不允许空WARENAME货物名称VARCHAR(50)不允许空PRICE货物价格BIGINT (8)不允许空WSUM货物数量BIGINT (8)不允许空WCOUNT统计BIGINT (8)不允许空3.1.5 tb_Link(超级链接表)主要用于记录添加的超级链接信息,该表的结构如表7所示表7 tb_Link(超级链接表)字 段说 明类型(长度)备注LNAME链接名VARCHAR(50)不允许空LADDRESS链接地址VARCHAR(50)不允许空LDATETIME发布时间DATTIME(8)不允许空3.1.6 tb_Affiche(公告信息表)主要用于记录后台添加的公告信息,该表的结构如表8所示表8 tb_Affiche(公告信息表)字 段说 明类型(长度)备注TEST公告内容TEST(16)不允许空DATTIME公告时间DATTIME(8)不允许空3.2 用JSP连接数据库在本系统中,需要多次连接数据库,而且这种连接是一项很消耗资源的操作,因此,在本系统中对数据库连接的部分写成了一个JavaBean。文件名为Condb.java,关键代码如下:5package com.bwm.db;import java.sql.*; public class CondbString Sd="sun.jdbc.odbc.JdbcOdbcDriver" String Sc="jdbc:odbc:Business" Connection con=null; ResultSet rs=null; return rs;public int executeUpdate(String sql) int result=0;trycon=DriverManager.getConnection(Sc);Statement stmt=con.createStatement();result=stmt.executeUpdate(sql);catch(SQLException ex)System.err.println(ex.getMessage();return result;public void close()tryif(con!=null)con.close();第四章 系统详细设计4.1 前台部分4.1.1 前台总体框架前台部分由用户使用,包括用户注册,购物车管理,订单管理,个人资料管理等几个部分。(1)模块功能介绍用户管理:为了便于网站的管理,必须有一套完整的用户管理体系。该网站用户管理模块由用户注册,用户登陆,找回密码3部分组成。订单查询:登陆用户可以通过订单号查询订单。购物车:所选商品须通过购物车进行保存,然后生成订单。修改个人资料:为了保护用户信息不受非法侵害,用户登陆后即可对个人的注册信息进行修改。留言板:用户可以查看和添加留言信息。(2)前台文件构架前台首页index.jsp网站导航Top.jsp商品展示Middle.jsp后台入口Copy.jsp左侧导航Left.jsp留言板admin/browse.jsp用户注册user/index.jsp查看物品清单user/look.jsp查看购物车user/order.jsp购物车user/order.jsp用户注册user/check.jsp添加留言板admin/leaword.jsp留言信息验证admin/addlea.jsp修改用户资料User/Uedit.jsp订单查询页面Sub/input.jsp订单查询Sub/Query .jsp清空购物车user/putin.jsp修改user/clearr.jsp添写订单sub/index.jsp微微购物网站的前台文件结构如图10所示。图10 前台文件结构图4.1.2 用户管理模块用户管理模块主要包括用户注册,登录及找回密码3个部分.(1)用户注册当用户第一次登录时首先要注册,成为会员后,才可以购买物品.用户可以通过单击首页的注册按键来打开注册页面进行会员注册操作,用户注册页面的运行。你的用户名");form1.username.focus();return false;if(form1.pasa.value="")alert("请输入确认密码");form1.pasa.focus();return false;if(form1.password.value!=form1.pasa.value)alert("你输入的两次密码不一致");return false;if(form1.email.value="")alert("请输入你的Email址");form1.email.focus();return false;return false;if(form1.question.value="")alert("请输入回答问题的答案");form1.question.focus();return false;-></script>为了便于管理网站对用户的管理,在index.htm 用户注册页接收到的注册信息要经过严格的过滤,保证注册用户的唯一性,在提交表单后需要对数据表中的数据进行查询,如果没有找到,则在插入数据表时提示注册成功,否则提示用户以被站用,请重新注册,关键代码如下:<%;</script><%elseString sql="insert into tb_User(Username,Rname,Userpass,Email,Address,Photo,Question,Result,Dattime)values('"+username+"','"+Rname+"','"+password+"','"+email+"','"+address+"','"+photo+"','"+pass+"','"+question+"','"+date.toLocaleString()+"')"int temp=con.executeUpdate(sql);%><script language="javascript">用户登录窗口设置在首页上,主要用来接收用户输入的用户名和密码,并更新用户在网站中的状态信息. 会员登录窗口的运行结果。网站首页在用户第一次访问时会判断用户是否登录,未登录则显示用户登录窗口,提示用户登录或注册.对于已经登录的用户,在用户登录窗口将显示用户的相关信息.首页主要是根据保存用户名信息的Session参数来判断用户是否已经登录的,关键代码如下:<% String name=(String)session.getAttribute("name"); %>在会员登录窗口中单击登录按纽后,系统将对用户名和密码进行验证,判断用户是否是已注册用户,如果已注册,则更新用户在网站中的状态,如果没有注册,则拒绝用户的登录操作,登录数据验证的程序代码如下:<%Condb con=new Condb();where Username='"+username+"' and Userpass='"+password+"'"ResultSet rs=con.executeQuery(sql);if(rs.next()session.setAttribute("username",username);session.setAttribute("password",password);%><script language="javascript">alert("登录成功");</script><%response.sendRedirect("./index.jsp");else%><script language="javascript">alert("用户名或密码错误");history.back();</script><%(3)找回密码当密码意外丢失,会给用户带来不必要麻烦,重新注册一个新的用户,浪费了新得用户的时间,也浪费了网站的资源,如果用户只记住自己的用户名和电子邮箱名,并提供密码提示的问题和答案,就可以找回密码。用户单击查找按钮,系统会将表的数据提交到user/res.jsp 中。user/res.jsp 页用来验证提交过来的4个条件,是否完全符合数据库中的查询条件。只有符合才能显示密码结果,否则弹出“你输入的信息有误”的提示对话框。关键代码如下:<%Condb con=new Condb();String username=request.getParameter("username");4.1.3 用户资料修改用户资料修改在前台主页上,单击“修改资料”链接,进入用户修改资料页面,该页面主要用于修改用户信息。个人资料修改完毕后,要将修改后的数据信息更新注册到数据表中,单击“修改”按钮,如果提交的数据无误,将弹出“数据更新成功”消息对话框:否则将弹出“更新失败”的消息对话框。结果展示页面的关键代码如下:<%Condb con=new Condb();if(session.getAttribute("username")=null)if(rs.next()%> 4.1.4 购物车模块在超市购物,可以根据自己的需要将很多的物品挑选到购物车(篮)中。而在网上虚拟的购物商城中,通常都会采用一种被称做“购物车”的技术来模拟现实生活。这种技术用起来十分方便,不但可以随时添加,查看,修改,清空购物车中的内容,还可以随时去收银台结帐。(1)添加购物车、添加购物车就是把用户选中的商品放在购物车中。当用户在前台首页中单击商品展示区的“购买”按钮时,系统会将该商品的详细信息展示在查看物品清单页中。用户在单击物品清单页面下方的“放入购物车”链接,便可将商品放入购物车,关键代码如下:<%Condb con=new Condb();Str chr=new Str();/*if(session.getAttribute("username")=null)%><script language="javascript">alert("你必须先登录后才能查看购物车");if(rs.next()warename=rs.getString(2);price=rs.getInt(3);buyList mylist=new buyList();mylist.warename=warename;mylist.price=price;mylist.number=1;boolean listFlag=true;Vector shop=(Vector)session.getAttribute("shop");if(shop=null)shop=new Vector();elsefor(int i=0;i<shop.size();i+)buyList list=(buyList)shop.elementAt(i);if(list.warename=mylist.warename)list.number+;shop.setElementAt(list,i);listFlag=false;,shop);rs.close();%>(2)查看购物车为了方便用户随时查看购物情况,在网站的首页加入了查看购物车链接,通过它可以将所选物品信息放入购物车中显示出来。在程序中笔者使用一组文本框记录用户购买的商品数量,用户可以在文本框中输入想要购买的数量然后单击修改按钮。如果要删除物品,可以在数量文本框里输入“0”,并单击修改按钮来更新购物车中商品的数量。查看购物车的关键代码如下:<% include file="./user/top.jsp"%> <table width="800" height="488" border="0" align="center" cellpadding="0" cellspacing="0" background="./images/images/bag_7.gif"> <form action="clear.jsp" method="post" name="form1"> <tr> <td height="429" valign="top"> <table width="800" height="178" border="0" align="center" cellpadding="0" cellspacing="00" background="./images/images/bag_7.gif"> <tr align="center" valign="middle"> <td height="27" colspan="6" nowrap background="./images/images/bag_2.gif" class="bgcolor"><font color="#FF0000"> <%if(session.getAttribute("username")=null)out.println("您还没有登录");elseout.println(session.getAttribute("username");%></font>,您的购物情况如下所示:(注:如果想删除商品,请将数量置零后点击修改按钮。)</td> </tr> <tr align="center" valign="middle" bgcolor="#FCBE3F"> <td height="29" colspan="6" nowrap background="./images/images/bag_3.gif" class="head"> </td> </tr> <tr align="center" valign="middle" bgcolor="#FCBE3F"> <td height="22" colspan="6" nowrap background="./images/images/bag_4.gif" class="head"> </td> </tr>