基于JSP的网上购物系统设计(共39页).doc
精选优质文档-倾情为你奉上目 录摘要.1ABSTRACT.2前言31 系统概述41.1 JSP的技术原理41.2 服务器配置61.3 配置Web站点62 系统需求分析及总体设计102.1 需求分析102.2 系统功能模块设计102.3 数据库需求分析103 数据库结构设计123.1 数据库实现123.2 用JSP连接数据库144 系统详细设计174.1 前台部分174.1.1 前台总体框架174.1.2 用户管理模块184.1.3 用户资料修改254.1.4 购物车模块264.1.5 订单查询模块314.1.6 留言板模块324.2 后台部分344.2.1 后台总体框架344.2.2 管理员登录364.2.3 添加商品374.2.4 订单信息管理384.2.5 查询用户信息414.2.6 添加链接425 结束语44参考文献45致谢46专心-专注-专业基于JSP的网上购物系统设计计算机科学与技术指导老师 摘 要:伴随着Internet的蓬勃发展,网络购物中心作为电子商务的一种形式正以其高效、低成本的优势,逐步成为新兴的经营模式和理念,人们已经不再满足用途信息的浏览和发布,而是渴望着能够充分享受网络所带来的更加多的便利。网络购物正适应了当今社会快节奏地生活,使顾客足不出户便可以方便快捷轻松地选购自己喜欢的商品。本系统便是尝试用JSP在网络上架构一个动态的电子商务网站,它是在Windows XP下,以SQL Server 2000为数据库开发平台,Tomcat网络信息服务作为应用服务器,采用JSP(Java Server Pages)技术开发的网上购物系统。他分前台部分和后台部分,前台部分由用户使用,主要包括用户注册,购物车管理,订单管理,个人资料管理,留言板管理等功能;后台部分由管理员使用,主要包括商品管理,处理订单,用户信息管理,链接信息管理等功能。建立后的网站系统是一个动态、交互式、具有商品提供、系统管理、用户留言等功能的电子商务网站。关键字:JSP;SQLserver2000;Tomcat;网上购物系统Designed in the Online shopping system based on JSPComputer Science and Technology Teacher Abstract:Along 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前言21世纪是网络飞速发展的时代,上网、创建网站已经成为热门话题。Internet技术得到持续、猛烈的发展,已经成为计算机产业的一个技术热点,越来越多的企业开始关注网络,许多人正在或正准备学习网络知识,进行网络开发或创建自己的网站。JSP的全称是Java Server Pages,是一种以Java为主的跨平台Web开发语言,它具有安全性,健全性,运行效率高等许多优点。本次毕业设计基于JSP的网上购物网站的设计,是在Windows XP下,以SQL Server 2000为数据库开发平台,Tomcat网络信息服务作为应用服务器,采用JSP(Java Server Pages)技术开发的。在本论文中全面详细地介绍了网上影院系统的设计方案,第1章为JSP的基础理论,包括JSP的技术原理,Java及Java Servlets概述,JavaBean简介,在JSP中使用XML。第2章为系统构架,包括服务器配置,Web站点配置;第3章为系统需求分析及总体设计,包括需求分析,系统功能模块设计,对具体功能及用例说明,数据库需求分析;第4章为数据库设计,包括数据库结构设计,用JSP连接数据库;第5章系统详细设计,包括前台和后台两个大的部分,前台部分由用户使用,主要包括用户注册,购物车管理,订单管理,个人资料管理,留言板管理等功能;后台部分由管理员使用,主要包括会员信息管理,主要包括商品管理,处理订单,用户信息管理,链接信息管理等功能;第6章为开发难点和技巧。1 系统概述1.1 JSP的技术原理1.1.1 JSP语言及其特点在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp)。JSP页面看上去象标准的HTML和XML页面,并附带有JSP引擎能够处理和抽取的额外元件。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给用户。程序片段可以操作数据库、重新定向网页以及发送E-mail等,这就是建立动态网站所需要的功能。所有程序都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低。它基于强大的Java语言,具有良好的伸缩性,在网络数据库应用开发领域具有得天独厚的优势。JSP技术在多个方面加速了动态Web页面的开发:(1)将内容的生成和显示进行分离使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求来变化的,例如请求帐户信息或者特定的一瓶酒的价格)。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和Beans中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBCTM技术访问数据库,或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。(2)强调可重用的组件绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者Enterprise JavaBeansTM组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。(3)采用标识简化页面开发Web页面开发人员不会都是熟悉脚本语言的编程人员。JavaServer Page技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。通过开发定制化标识库,JSP技术是可以扩展的。今后,第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。(4)JSP能提供所有Servlets功能与Servlets相比,JSP能提供所有Servlets功能,它比用Println书写和修改HTML更方便。可以更明确地进行分工,Web页面设计人员编写HTML,只需留出空间让Servlets程序员插入动态部分即可。JSP技术能够支持高度复杂的基于Web的应用。(5)健壮的存储管理和安全性由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译成为Java Servlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性。(6)一次编写,各处运行作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。随着越来越多的供应商将JSP支持添加到他们的产品中,您可以使用自己所选择的服务器和工具,更改工具或服务器并不影响当前的应用。1.1.2 Java及Java Servlets概述JSP技术是用JAVA语言作为脚本语言的,谈及JSP技术,少不了要对JAVA技术进行一些基本的介绍。1.1.3 JavaBean简介JavaBean是一种基于Java的软件组件,JavaBean和Active控件一样,可以通过封装业务逻辑建立一整套可重复利用的对象库。JSP对于在Web应用中集成JavaBean组件提供了完善的支持,这种支持不仅能缩短开发时间(可以直接利用经过测试和可信任的已有组件),避免重复开发,也为JSP应用带来了更多的可伸缩性。JavaBean组件可以用来执行复杂的计算任务,或负责与数据库的交互及数据提取等。由于Java语言在这些方面所具有的特点和优势,使得基于它的软件JavaBean组件技术倍受人们关注。它的任务就是:一次编写,可以在任何地方执行,可以在任何地方重用。JavaBean组件可以在任何地方重用包括了可以在应用程序、其他组件、文档、Web站点和应用程序构造器工具等多种方案中再利用。为了创建和使用Java软件组件,JavaBean被实现为一种独立于平台和结构的应用程序接口,它的实现可以忽略内部的结构和细节问题,只需定义其外部的特征及对外功能就行。其中,属性、方法和事件三种接口可以独立对外进行开发。1.2 服务器配置第一步:从官方网站http;/下载该软件的最新版本。我所下载的是jdk-1_5_0_06-windows-i586-p.exe文件。第二步:双击.exe文件,安装在C:Program FilesJavajdk1.5.0_06。第三步:JDK的环境配置:在Windows中用鼠标指向我的电脑,按右键,选择“属性”,在“系统特性”表单内选择“高级”标签,在“高级”标签内选择“环境变量”,在系统变量中加入变量JAVA_HOME(变量名为C:ProgramFilesJavajdk1.5.0_06),classpath(变量值为C:Program FilesJavajdk1.5.0_06libdt.jar;C:ProgramFilesJavajdk1.5.0_06libtools.jar;C:ProgramFilesJavajdk1.5.0_06)和path(变量值为C:Program FilesJavajdk1.5.0_06bin;)。安装和配置完毕后,在“命令提示符”中输入javac,会出现如图1所示,则说明JDK安装和配置都是正确的。图1 javac调试界面1.3.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安装成功。欢迎界面如图2所示。图2 Tomcat欢迎界面1.3.3 数据库配置(1)SQL Server 2000 首先,要定义一个数据库名称(DSN)。打开“开始”|“设置”|“控制面板”|“管理工具“,在文件夹下有ODBC数据源的快捷方式。 在弹出的“ODBC数据源管理器”对话框中选择“系统DSN”选项卡,然后单击“添加”按纽,选择“SQL Server”为数据库驱动程序,单击“完成”按纽。如图3所示。图3 创建新数据源 在弹出的“创建SQL Server的新数据源”对话框的“数据源名称”文本框输入“biye”,在“描述”文本框中可以写上数据库的功能。在“服务器”下拉列表中选择要连接的SQL Server,此处要安装的本地服务器,所以选择“XY”即可。如图4所示。图4 选择数据库服务器单击“下一步”按钮,选择“使用用户输入登录ID和密码的SQL Server验证”单选按钮,“登录ID”默认为“weiyue”,密码为空。如图5所示。图5 SQL Server身份验证设置单击“下一步”按钮,在下拉列表中选择该数据库的数据库为“毕业设计”,如图6所示。图6 选择SQL数据库单击“下一步”按钮,再单击“完成”按钮即可打开“ODBC Microsoft SQL Server 安装”对话框。如图7所示。图7 测试数据源2 系统需求分析及总体设计2.1 需求分析此基于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 数据库结构设计3.1 数据库实现3.1.2 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.3 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.4 tb_manager(管理员信息表)主要用于保存管理员信息,该表的结构如表4所示。表4 tb_manager(管理员信息表)字 段说 明类 型 ( 长 度 )备 注Id管理员idInt(4)不允许空Admin管理员名称Varchar(30)不允许空Adminpass管理员密码Varchar(16)不允许空3.1.5 tb_sub(订单生成表)主要用于保存会员等级信息,该表的结构如表5所示。表5 tb_sub(订单生成表)主要用于记录某一订单表中所订购的商品的详细信息,该表的结构如表4-6所示表6 tb_shop(订单商品表)字 段说 明类型(长度)备注Subid订单idVarchar(50)不允许空Warename货物名称Varchar(50)不允许空Price货物价格Bigint (8)不允许空Wsum货物数量Bigint (8)不允许空Wcount统计Bigint (8)不允许空3.1.7 tb_Link(超级链接表)主要用于记录添加的超级链接信息,该表的结构如表7所示表7 tb_Link(超级链接表)字 段说 明类型(长度)备注Lname链接名Varchar(50)不允许空Laddress链接地址Varchar(50)不允许空Ldatetime发布时间Dattime(8)不允许空3.1.8 tb_Affiche(公告信息表)主要用于记录后台添加的公告信息,该表的结构如表8所示表8 tb_Affiche(公告信息表)字 段说 明类型(长度)备注Test公告内容Test(16)不允许空Dattime公告时间Dattime(8)不允许空3.2 用JSP连接数据库在本系统中,需要多次连接数据库,而且这种连接是一项很消耗资源的操作,因此,在本系统中对数据库连接的部分写成了一个JavaBean。文件名为Condb.java,关键代码如下:package 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 系统详细设计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 前台文件结构图(3)网站前台首页的运行结果如图11所示。图11 购物网站首页4.1.2 用户管理模块用户管理模块主要包括用户注册,登录及找回密码3个部分.(1)用户注册当用户第一次登录时首先要注册,成为会员后,才可以购买物品.用户可以通过单击首页的注册按键来打开注册页面进行会员注册操作,用户注册页面的运行结果如图12所示.图12 用户注册页面你的用户名");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">用户登录窗口设置在首页上,主要用来接收用户输入的用户名和密码,并更新用户在网站中的状态信息. 会员登录窗口的运行结果如图13所示。图13 会员登录窗口网站首页在用户第一次访问时会判断用户是否登录,未登录则显示用户登录窗口,提示用户登录或注册.对于已经登录的用户,在用户登录窗口将显示用户的相关信息.首页主要是根据保存用户名信息的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)找回密码当密码意外丢失,会给用户带来不必要麻烦,重新注册一个新的用户,浪费了新得用户的时间,也浪费了网站的资源,如果用户只记住自己的用户名和电子邮箱名,并提供密码提示的问题和答案,就可以找回密码。运行结果如图14所示:图14 找回密码页面用户单击查找按钮,系统会将表的数据提交到user/res.jsp 中。user/res.jsp 页用来验证提交过来的4个条件,是否完全符合数据库中的查询条件。只有符合才能显示密码结果,否则弹出“你输入的信息有误”的提示对话框。关键代码如下:<%Condb con=new Condb();String username=request.getParameter("username");4.1.3 用户资料修改用户资料修改在前台主页上,单击“修改资料”链接,进入用户修改资料页面,该页面主要用于修改用户信息,其运行结果如图15所示.图15 修改用户信息个人资料修改完毕后,要将修改后的数据信息更新注册到数据表中,单击“修改”按钮,如果提交的数据无误,将弹出“数据更新成功”消息对话框:否则将弹出“更新失败”的消息对话框。结果展示页面的关键代码如下:<%Condb con=new Condb();if(session.getAttribute("username")=null)if(rs.next()%> 4.1.4 购物车模块在超市购物,可以根据自己的需要将很多的物品挑选到购物车(篮)中。而在网上虚拟的购物商城中,通常都会采用一种被称做“购物车”的技术来模拟现实生活。这种技术用起来十分方便,不但可以随时添加,查看,修改,清空购物车中的内容,还可以随时去收银台结帐。(1)添加购物车、添加购物车就是把用户选中的商品放在购物车中。当用户在前台首页中单击商品展示区的“购买”按钮时,系统会将该商品的详细信息展示在查看物品清单页中,运行结果如下图:图16 查看物品清单页面运行结果用户在单击物品清单页面下方的“放入购物车”链接,便可将商品放入购物车,关键代码如下:<%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)查看购物车为了方便用户随时查看购物情况,在网站的首页加入了查看购物车链接,通过它可以将所选物品信息放入购物车中显示出来。查看购物车页面运行结果如下图:图17 购物车在网页中运行结果在程序中笔者使用一组文本框记录用户购买的商品数量,用户可以在文本框中输入想要购买的数量然后单击修改按钮。如果要删除物品,可以在数量文本框里输入“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/imag