资源描述
基于Java语言商务网站系统设计
计算机科学和技术指导老师
摘 要
伴伴随Internet蓬勃发展,网络购物中心作为电子商务一个形式正以其高效、低成本优势,逐步成为新兴经营模式和理念,大家已经不再满足用途信息浏览和公布,而是渴望着能够充足享受网络所带来愈加多便利。网络购物正适应了当今社会快节奏地生活,使用户足不出户便能够方便快捷轻松地选购自己喜爱商品。
本系统便是尝试用JSP在网络上架构一个动态电子商务网站,它是在Windows XP下,以SQL Server 为数据库开发平台,Tomcat网络信息服务作为应用服务器,采取JSP(Java Server Pages)技术开发网上购物系统。她分前台部分和后台部分,前台部分由用户使用,关键包含用户注册,购物车管理,订单管理,个人资料管理,留言板管理等功效;后台部分由管理员使用,关键包含商品管理,处理订单,用户信息管理,链接信息管理等功效。
建立后网站系统是一个动态、交互式、含有商品提供、系统管理、用户留言等功效电子商务网站。
关键字:JSP;SQLserver;Tomcat;网上购物系统
Designed in the business website system based on Java
Computer 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 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 ;Tomcat;Online shopping system
目录
摘 要 I
Abstract II
序言 VI
第1章 系统概述 1
1.1 JSP技术原理 1
1.1.1 JSP语言及其特点 1
1.1.2 Java及Java Servlets概述 3
1.1.3 JavaBean介绍 3
1.2 服务器配置 4
1.3.2 Tomcat安装及配置 5
1.3.3 数据库配置 6
第2章 系统需求分析及总体设计 9
2.1 需求分析 9
2.2 系统功效模块设计 9
第3章 数据库结构设计 12
3.1 数据库实现 12
3.1.1 tb_member(会员信息表) 12
3.1.2 tb_goods(商品信息表) 12
3.1.3 tb_rebate(折扣表) 13
3.1.4 tb_manager(管理员信息表) 13
3.1.5 tb_order_detail(订单明细表) 14
3.1.6 tb_order(订单信息主表) 14
3.1.7 tb_superType(商品大分类信息表) 15
3.1.8 tb_subType(商品小分类信息表) 15
3.1.9tb_BBS(公告信息表) 15
3.2 用JSP连接数据库 16
第4章 系统具体设计 23
4.1 前台部分 23
4.1.1 前台总体框架 23
4.1.2 用户管理模块 25
4.1.3 用户资料修改 28
4.1.4 购物车模块 30
4.2 后台部分 41
4.2.1 后台总体框架 41
4.2.2 管理员登录 43
4.2.3 商品管理模块 46
4.2.4 订单管理模块 49
4.2.5 会员管理模块 52
4.2.6 公告管理模块 54
第5章 结束语 59
参考文件 60
谢辞 61
序言
二十一世纪是网络飞速发展时代,上网、创建网站已经成为热门话题。Internet技术得到连续、猛烈发展,已经成为计算机产业一个技术热点,越来越多企业开始关注网络,很多人正在或正准备学习网络知识,进行网络开发或创建自己网站。
JSP全称是Java Server Pages,是一个以Java为主跨平台Web开发语言,它含有安全性,健全性,运行效率高等很多优点。
此次毕业设计——基于Java语言商务网站系统设计,是在Windows XP下,以SQL Server 为数据库开发平台,Tomcat网络信息服务作为应用服务器,采取JSP(Java Server Pages)技术开发。
在本论文中全方面具体地介绍了网上影院系统设计方案,第1章为JSP基础理论,包含JSP技术原理,Java及Java Servlets概述,JavaBean介绍,在JSP中使用XML,服务器配置,Web站点配置;第2章为系统需求分析及总体设计,包含需求分析,系统功效模块设计,对具体功效及用例说明,数据库需求分析;第3章为数据库设计,包含数据库结构设计,用JSP连接数据库;第4章为系统具体设计,包含前台和后台两个大部分,前台部分由用户使用,关键包含用户注册,购物车管理,订单查询,个人资料修改;后台部分由管理员使用,关键包含会员信息管理,商品管理,订单管理,公告信息管理等功效;第5章为结束语。
第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)页面形式发送回浏览器。这有利于作者保护自己代码,而又确保任何基于HTMLWeb浏览器完全可用性。
(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 Files\Java\jdk1.5.0_06。
第三步:JDK环境配置:在Windows中用鼠标指向我电脑,按右键,选择“属性”,在“系统特征”表单内选择“高级”标签,在“高级”标签内选择“环境变量”,在系统变量中加入变量JAVA_HOME(变量名为C:\ProgramFiles\Java\jdk1.5.0_06),
classpath(变量值为C:\Program Files\Java\jdk1.5.0_06\lib\dt.jar;C:\ProgramFiles\Java
\jdk1.5.0_06\lib\tools.jar;C:\ProgramFiles\Java\jdk1.5.0_06)和path(变量值为C:\Pro-
gram Files\Java\jdk1.5.0_06\bin;)。
安装和配置完成后,在“命令提醒符”中输入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
首先,要定义一个数据库名称(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 需求分析
此基于Java语言商务网站系统分前台功效和后台功效:
前台部分由用户使用,关键包含用户注册,购物车管理,订单管理,个人资料管理,留言板管理。
后台部分由管理员使用,关键包含管理员身份验证,商品管理,处理订单,用户信息管理,连接信息管理。
2.2 系统功效模块设计
功效结构图以下:
图8 功效模块设计图
从图中能够看出,网上购物系统能够分为前台和后台两个部分,前台部分由用户使用,关键包含用户注册,生成订单,购物车管理,查看购物车,查看留言,订购产品,订单查询和公布留言7个模块;后台部分由管理员使用,关键包含管理员身份验证,商品管理,处理订单,用户信息管理,连接信息管理5个模块。
2.3 数据库需求分析
数据库设计通常是以一个已经存在数据库管理系统为基础,常见数据库管理系统有MYSQL,SQL Server, Oracle等。我采取了SQL server数据库管理系统,建立数据库名为db_shop。
整个系统功效需要以下数据项:
会员信息表:用户id、用户名称、用户真实姓名、登录密码、所在城市、联络地址、邮政编码、证件号码、证件类别、联络电话、邮箱地址。
商品信息表:商品id、类别id、名称、介绍、定价、现价、图片、类型、入库时间、存放地址、是否新品、是否特价。
订单信息主表:订单号、品种数、用户名、真实姓名、联络地址、邮政编码、电话、付款方法、运输方法、折扣、订购日期、是否实施、备注。
订单明细表:id号、订单号、商品id、价格、数量。
管理员信息表:管理员id、管理员名称、管理员密码。
公告信息表:id号、标题、公告内容、公告时间。
商品大类别信息表:类别id、类别名称。
商品小类别信息表:类别id、父类id、类别名称。
折扣表:等级、消费额、折扣。
第3章 数据库结构设计
3.1 数据库实现
3.1.1 tb_member(会员信息表)
关键用于保留用户注册信息,该表结构如表1所表示。
表1 tb_goods(商品信息表)
列 名
说 明
类 型 ( 长 度 )
备 注
Id
会员id
Int (8)
不许可空,主键
Usrname
用户名
Varchar (20)
不许可空
Truename
真实姓名
Varchar (20)
不许可空
Password
密码
Varchar (20)
不许可空
City
所在城市
Varchar (20)
Address
联络地址
Varchar (100)
Postcode
邮政编码
Varchar (6)
CardNO
证件号码
Varchar (24)
不许可空
CardType
证件类型
Varchar (20)
不许可空
Grade
等级
Int (4)
不许可空
Amount
消费额
Money (4)
不许可空
Tel
电话
Varchar (20)
Email
E-mail
Varchar (100)
不许可空
Freeze
是否冻结
Int (4)
3.1.2 tb_goods(商品信息表)
关键用于保留商品基础信息,该表结构如表2所表示。
表2 tb_goods(商品信息表)
列 名
说 明
类 型 ( 长 度 )
备 注
Id
物品id
bigInt (8)
不许可空,主键
Typeid
商品类别
Int (4)
不许可空
goodsname
物品名称
Varchar (50)
不许可空
price
定价
Money (8)
不许可空
Nowprice
现价
Money(8)
不许可空
Introduce
物品介绍
Text (16)
不许可空
Picture
图片文件
Varchar (100)
不许可空
Newgoods
是否新品
Int (4)
不许可空
INTtime
公布时间
Dattime (8)
不许可空
Sale
是否特价
Int (4)
不许可空
Hit
浏览次数
Int (4)
不许可空
3.1.3 tb_rebate(折扣表)
关键用于统计用户在购置商品时折扣信息,该表结构如表3所表示。
表3 tb_rebate(折扣表)
字 段
说 明
类型(长度)
备注
Grade
等级
Varchar(20)
不许可空,主键
Amount
消费额
Money(8)
不许可空
Rebate
折扣
Float(50)
不许可空
3.1.4 tb_manager(管理员信息表)
关键用于保留管理员信息,该表结构如表4所表示。
表4 tb_manager(管理员信息表)
字 段
说 明
类 型 ( 长 度 )
备 注
Id
管理员id
Int(4)
不许可空,主键
Manager
管理员名称
Varchar(30)
不许可空
PWD
管理员密码
Varchar(30)
不许可空
3.1.5 tb_order_detail(订单明细表)
用来保留订单具体表信息,其结构如表5所表示。
表5 tb_order_detail(订单明细表)
字 段
说 明
类型(长度)
备注
Id
Id号
Bigint(8)
不许可空,主键
Orderid
订单id
Bigint(8)
不许可空
Goodsid
商品id
Bigint(8)
不许可空
Price
货物价格
Money(8)
不许可空
Number
货物数量
Int (4)
不许可空
3.1.6 tb_order(订单信息主表)
关键用于保留订单概要信息,该表结构如表6所表示。
表6 tb_order(订单信息主表)
字 段
说 明
类型(长度)
备注
Orderid
订单id
Bigint(8)
不许可空,主键
Bnumber
品种数
Smallint(2)
不许可空
Usermane
用户名
Varchar(15)
不许可空
Truename
真实姓名
Varchar (15)
不许可空
Address
联络地址
Varchar (100)
不许可空
Postcode
邮政编码
Varchar (10)
不许可空
Tel
电话
Varchar (20)
不许可空
Pay
付款方法
Varchar (20)
不许可空
Carry
运输方法
Varchar (20)
不许可空
Rebate
折扣
Float (8)
不许可空
Orderdate
订货日期
Smalldatetime(4)
不许可空
Enforce
是否实施
Int(4)
不许可空
Bz
备注
Varchar(200)
不许可空
3.1.7 tb_superType(商品大分类信息表)
关键用于保留商品大类别信息,该表结构如表7所表示。
表7 tb_superType(商品大类别信息表)
字 段
说 明
类型(长度)
备注
Id
类别id
Int(4)
不许可空,主键
Typename
类别名称
Varchar(50)
不许可空
3.1.8 tb_subType(商品小分类信息表)
关键用于保留商品类别中小类别信息,其结构如表8所表示。
表8 tb_subType(商品小类别信息表)
字 段
说 明
类型(长度)
备注
Id
类别id
Int(4)
不许可空,主键
Typename
类别名称
Varchar(50)
不许可空
SuperType
父类id
Int(4)
不许可空
3.1.9tb_BBS(公告信息表)
关键用于统计后台添加公告信息,该表结构如表8所表示。
表9 tb_BBS(公告信息表)
字 段
说 明
类型(长度)
备注
Id
Id号
Int(4)
不许可空
Title
公告标题
Varchar(100)
不许可空
Content
公告内容
Varchar(40000)
不许可空
INTtime
公告时间
Dattime(8)
不许可空
3.2 用JSP连接数据库
在本系统中,需要数次连接数据库,而且这种连接是一项很消耗资源操作,所以,在本系统中对数据库连接部分写成了一个JavaBean。文件名为Condb.java,关键代码以下:
package com.tools;
import java.sql.*;
import java.io.*;
import java.util.*;
public class ConnDB
{
public Connection conn = null;
public Statement stmt = null;
public ResultSet rs = null;
private static String propFileName = "/com/connDB.properties"; //指定资源文件保留位置
private static Properties prop = new Properties();
private static String dbClassName =
"com.microsoft.jdbc.sqlserver.SQLServerDriver";
private static String dbUrl =
"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_shop";
private static String dbUser = "sa";
private static String dbPwd = "";
public ConnDB(){
try {
InputStream in=getClass().getResourceAsStream(propFileName);
prop.load(in); //经过输入流对象加载Properties文件
dbClassName = prop.getProperty("DB_CLASS_NAME"); //获取数据库驱动
dbUrl = prop.getProperty("DB_URL",dbUrl);
dbUser=prop.getProperty("DB_USER",dbUser);
dbPwd=prop.getProperty("DB_PWD",dbPwd);
}
catch (Exception e) {
e.printStackTrace(); //输出异常信息
}
}
public static Connection getConnection() {
Connection conn = null;
try {
Class.forName(dbClassName).newInstance();
conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);
}
catch (Exception ee) {
ee.printStackTrace();
}
if (conn == null) {
System.err.println(
"警告: DbConnectionManager.getConnection() 取得数据库链接失败.\r\n\r\n链接类型:" +
dbClassName + "\r\n链接位置:" + dbUrl + "\r\n用户/密码" + dbUser + "/" +
dbPwd);
}
return conn;
}
/*
*功效:实施查询语句
*/
public ResultSet executeQuery(String sql) {
try {
conn = getConnection();
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery(sql);
}
catch (SQLException ex) {
System.err.println(ex.getMessage());
}
return rs;
}
/*
*功效:实施更新操作
*/
public int executeUpdate(String sql) {
int result = 0;
try {
conn = getConnection();
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
result = stmt.executeUpdate(sql);
}catch (SQLException ex) {
result = 0;
}
try {
stmt.close();
}catch (SQLException ex1) {
}
return result;
}
public int executeUpdate_id(String sql) {
int result = 0;
try {
conn = getConnection();
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
result = stmt.executeUpdate(sql);
String ID = "select @@IDENTITY as id";
rs = stmt.executeQuery(ID);
if (rs.next()) {
int autoID = rs.getInt("id");
result = autoID;
}
}
catch (SQLException ex) {
result = 0;
}
return result;
}
/*
*功效:关闭数据库连接
*/
public void close() {
try { //捕捉异常
if (rs != null)
{ //当ResultSet对象实例rs不为空时
rs.close(); //关闭ResultSet对象
}
if (stmt != null)
{ //当Statement对象实例stmt不为空时
stmt.close(); //关闭Statement对象
}
if (conn != null)
{ //当Connection对象实例conn不为空时
conn.close(); //关闭Connection对象
}
} catch (Exception e) {
e.printStackTrace(System.err); //输出异常信息
}
}
}
第4章 系统具体设计
4.1 前台部分
4.1.1 前台总体框架
前台部分由用户使用,包含用户注册,购物车管理,订单管理,个人资料管理等多个部分。
(1)模块功效介绍
用户管理:为了便于网站管理,必需有一套完整用户管理体系。该网站用户管理模块由用户注册,用户登陆,2部分组成。
订单查询:登陆用户能够经过订单号查询订单。
购物车:所选商品须经过购物车进行保留,然后生成订单。
修改个人资料:为了保护用户信息不受非法侵害,用户登陆后即可对个人注册信息进行修改。
(2)前台文件构架
网络购物中心网站前台文件结构图9所表示。
商品分类(goodsType.jsp)
广告栏
(ad.jsp)
网络购物中心前台首页(index.jsp)
网站导航(navigation.jsp)
会员登录(login_u.jsp)
商品搜索(search.jsp)
右侧页面(right.jsp)
版权信息
(copyright.jsp)
会员登录处理页面(login_u_deal.jsp)
搜索结果(search_deal.jsp)
图9 前台文件结构图
(2)网站前台首页运行结果图10所表示。
图10 购物网站首页
4.1.2 用户管理模块
用户管理模块关键包含用户注册,登录及找回密码3个部分.。
(1)用户注册
当用户第一次登录时首先要注册,成为会员后,才能够购置物品.用户能够经过单击首页注册按键来打开注册页面进行会员注册操作,用户注册页面运行结果图11所表示.。
图11 用户注册页面
会员注册信息关键代码以下:
request.setCharacterEncoding("gb2312");
String username=member.getUsername();
ResultSet rs=conn.executeQuery("sel
展开阅读全文