摘 要
随着互联网日益深入社会生活,以网站作为对外的展示窗口,进行内外信息交流,已成为大众的迫切需要。网站信息管理系统是典型的管理信息系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的数据库。而对于后者则要求应用程序功能完备,易使用等特点。
本系统使用JSP技术制作网站动态页面,用JAVA语言做连接数据库的程序,使用SQL server2000数据库作为系统数据库,开发一个具有用户注册,鲜花检索,鲜花浏览,购物车,订单查询,系统管理等功能的小型的网上花店信息管理系统。
关键词: 电子商务、 网上花店、 JSP、 Tomcat6.0、 SQL Server2000
Abstract
With increasing depth the Internet and social life in order to display the external Web site as a window to carry out internal and external information exchange, has become the urgent need for the public. Web information management system is a typical management information system (MIS), including the development of the main background of the establishment and maintenance of database and application development front-end aspects. For the former requirement to establish data consistency and integrity, and data security database. For applications which require full-featured and easy to use and so on.
The system uses dynamic JSP web pages produced using JAVA language to connect the database, the use of SQL server2000 database as the system database, developing a user registration, search of flowers, flowers browsing, shopping cart, order inquiries, the system management function small-scale information management system online florist.
Keywords: e-commerce、 online florist、 JSP、 Tomcat6.0 、SQL Server2000
目录
5.2 字符串处理的JavaBean“StringTrans”的编写
5.3 对数据表操作的JavaBean“selectsql”的编写
第一章 前言
20世纪90年代,随着计算机通信技术的日益发展和融合,以及互联网的普及和应用,信息处理和传递突破了时间和地域的界限,世界经济向全球化和信息化的方向发展,人类社会开始跨入了一个全新的电子商务时代。电子商务时代的到来,标志着一个依托互联网为基础的网上虚拟市场已经开始形成,这是一个具有全球性、数字化、跨时空等特点的飞速发展和潜力巨大的新兴市场。面对这样的一个自身在不断变化着的全新的网络虚拟市场,商业竞争规则、经济增长模式乃至社会生活方式都将发生剧烈的变化,传统的市场营销方式也将发生深刻的变化。
随着网络经济的不断发展,中国已经形成一个很大的网络群体,电子商务已经日渐成为网络交易的主流,人们已经慢慢习惯网上的购物的方式,已经首肯并相信这种购物模式,习惯了坐在家里随便挑选自己所喜爱的花卉。只要建立一个网上商店系统,配上一台电脑,就可以让自己的花卉在互联网上让用户尽情挑选购买。
花卉本身是一种比较容易在网络上进行销售的产品,不存在网上和现实中具有较大的品质差异,在网上挑选更加直观和方便,而且现在大部分网上的花店都将订花、送花合并成一条龙服务,让买花的网民越加方便。轻松点击之间,花卉与衷心的祝福便可以准时送抵家人或朋友。所以,设计一个能进行花卉查询、订购及管理功能的网上花店管理系统,将传统的花店经营管理模式与计算机网络及数据库系统的综合经营管理模式相结合,是现实客观的需要。
本系统使用JSP技术制作网站动态页面,用JAVA语言做连接数据库的程序,使用SQL server2000数据库作为系统数据库,开发一个具有用户注册,鲜花检索,鲜花浏览,购物车,订单查询,系统管理等功能的小型的网上花店信息管理系统。
2 系统分析
2.1 需求分析
随着全球信息网络的发展,Internet在世界上已不仅仅是一种技术,更重要的是它已成为一种新的经营模式。从4C( Connection.,Communication ,Commerce 。Co-operation )层次上彻底改变了人类工作,学习,生活,娱乐的方式,已成为国家经济和区域经济增长的主要动力。Internet正成为世界最大的公共资料信息库,它包含无数的信息资源,所有最新的信息都可以通过网络搜索获得。更重要的是,大部分信息都是免费的,应用电子商务可使企业获得在传统模式下所无法获得的巨量商业信息,在激烈的市场竞争中领先对手。互联网真是商机无限。
为此,我们结合网站将来发展方向,本着专业负责的精神,在原有网站的基础上,进一步强化贵公司网站网站的互动性,完善产品展示功能,推荐新闻发布功能等功能,密切同其合作伙伴、经销商、客户、和浏览者之间的关系,优化企业经营模式,提高企业运营效率。
网站目标与期望
1、树立全新企业形象
对于一个以生产为主的大型企业而言,企业的品牌形象至关重要。 特别是对于互联网技术高度发展的今天,大多客户都是通过网络来了解企业产品、企业形象及企业实力,因此,企业网站的形象往往决定了客户对企业产品的信心。建立具有国际水准的网站能够极大的提升企业的整体形象。
2、优化企业内部管理
企业网站的建设将会为企业内部管理带来一种全新的模式。网站是实现这一模式的平台。在降低企业内部资源损耗、减低成本、加强企业员工与员工,企业与员工之间的联系和沟通等方面发挥巨大作用,最终使企业的运营和运作达到最大的优化。
3、增强销售力
销售力指的是,产品的综合素质优势在销售上的体现。现代营销理论认为,销售亦即是传播。销售的成功与否,除了决定于能否将产品的各项优势充分地传播出去之外,还要看目标对象从中得到的有效信息有多少。由于互联网所具有的“一对一”的特性,目标对象能自主地选择对自己有用的信息。这本身已经决定了消费者对信息已经有了一个感兴趣的前提。使信息的传播不在是主观加给消费者,而是由消费者有选择地主动吸收。 同时,产品信息通过网站的先进设计,既有报纸信息量大的优点,又结合了电视声、光、电的综合刺激优势,可以牢牢地吸引住目标对象。因此,产品信息传播的有效性将远远提高,同时亦即是提高了产品的销售力。
成功的企业门户网站需要一个高质量的前台页面和可以提升企业信息延续性和扩展性的后台管理系统。这里所说的高质量的前台页面不仅具有美观、动态的特点,它还需要具有网站信息传输的高效性、安全性、可靠性等优势,并确保网站中商业信息不被丢失。为了实现网站功能具有较高的延续性和可扩展性,使网站的建设紧跟企业发展的需求,就需要一个网站后台管理系统。同时考虑到企业所承担的成本,决定使用jsp+javabean开发模式,这种模式更加适合中小型项目的开发。
具有以下功能:
- 门户网站前台页面设计美观、大方,凸显企业商品、新闻、文化信息;
- 门户网站后台页面简洁,应具有企业新闻、商品、用户管理等功能模块;
- 前后台设计明确,并保证前后台的安全性;
- 充分考虑架设网站平台时节约企业的成本,应用jsp+javabean+sql server2000开发模式。
- 通过后台管理问题解决方案、常见问题解答等信息。
- 对用户留言信息进行回复和管理。
- 需提供在线留言簿,方便用户留言。
2.2 可行性分析
企业门户网站满足了企业通过网站前台展示企业软件产品、为用户提供问题解决方案的要求。通过网站的建立,加强企业与客户之间的沟通,使企业能够及时了解客户的需求,及时帮助客户解决日常工作中遇到的各种问题,更好的服务于客户,从而增进了企业和客户之间的友好业务关系。
3 总体设计
3.1 项目规划
根据企业门户网站的特点,可见网站分为前、后台两部分。前台部分主要实现企业与客户交互,后台部分主要实现网站相关信息管理功能。
2.1.1网站前台:
前台展示区要求实现:企业新闻展示、产品信息介绍、公司文化、技术支持、管理员登录功能等模块。
2.1.2网站后台:
后台管理模块要求实现:企业新闻管理、商品管理、管理员注销等功能模块
3.2 系统功能结构图
3.2.1企业门户网站前台功能结构,如图1所示。
图1 企业门户网站前台功能结构图
3.2.2企业门户网站后台功能结构,如图2所示。
图2 企业门户网站后台功能结构图
3.3 系统功能结构图
3.3.1系统的功能流程结构图,如图3所示。
图3 企业门户网站系统功能结构图
3.4 系统用例图
用例是用来描述业务功能的,但用例图却不仅仅是角色和用例的堆积,首先,用例是有层次概念的,一个大的用例可以用更小的多个用例来细化,直到无需再细分为止;一个用例的执行是要有前因和后果的(前提是什么,结果会怎么样);一个用例一般会由几个有序的步骤来完成的;一般情况下,一个用例是要处理一个到多个对象的(如果一个用例执行中没有处理任何东西,则通常这个用例不是系统必须的),这些对象就是要在后面的静态视图中要详细描述的;
角色、用例、各种关系等图形元素都有属性说明,做用例分析并不是简单地在一张画布上拉几个小人和椭圆就行了,要在这上面尽可能地清楚描述每一个事物
用户用例图
管理员用例图
4 系统设计
4.1 设计目标
开发企业门户网站的最终目的是为企业提供一个简单、易用、开放可扩展的企业信息门户平台。通过需求分析以及与客户沟通,实现目标如下:
4.1.1网站使用人性化设计,界面友好、安全、实用;
4.1.2网站操作便捷并具有高读信息延续性、可扩展性;
4.1.3提供建立在关系型数据库系统上的数字信息组织、管理、查询等功能;
4.1.4对用户输入的数据进行严格的数据检索,尽可能地排除人为错误;
4.1.5最大限度地实现网站易维护性和易操作性。
4.2 开发及运行环境
软件平台:
- 操作系统:Windows XP/Windows 2000;
- 数据库:MySQL 5.0;
- 开发工具包:JDK Version1.5;
- JSP服务器:Tomcat6.0;
- 浏览器: IE6.0;
硬件平台:
- CPU:P41.8GHz;
- 内存:256MB以上。
4.3 系统包图、类图
4.3.1在UML的静态机制中类图是一个重点,它不但是设计人员关心的核心,更是实现人员关注的核心。以下是后台的主要类有对数据操作的类图、用于封闭新闻实体的类.图、封装产品实体的封装产品类别的类图、封装用户信息的类图。
类图
4.3.2包图是在 UML 中用类似于文件夹的符号表示的模型元素的组合。系统中的每个元素都只能为一个包所有,一个包可嵌套在另一个包中。本系统主要包含一个包用于包含所有的后台类。这个包主要用于存放后台代码。
包图
4.4 数据库设计
4.4.1数据库概念设计
新闻实体对象E-R图:
新闻实体对象包括:新闻标题、新闻内容、新闻作者、提交时间及新闻编号等属性。这几个属性均为新闻实体的基本信息,其中新闻编号为新闻实体对象的唯一标识,设置为自动增长类型。
商品实体对象E-R图:
商品试题对象包括商品编号、商品名称、商品样图、商品描述、商品类别、提交时间等属性。其中,商品编号为商品实体对象的唯一标识,设置为自动增长类型;商品样图存储商品样图的文件名称;商品提交时间属性设置为datetime类型。
商品类别实体对象E-R图:
商品类别实体对象包括商品类别名称,商品类别编号、提交时间等属性。其中商品类别编号书为商品类别实体对象的唯一标识,设置为自动增长类型。
用户实体对象E-R图:
用户实体对象包括用户名称、用户编号、用户密码等属性。其中用户编号属性为用户实体对象的唯一标识,设置为自动增长类型。
4.4.2数据库逻辑结构设计
根据数据库实体E-R图,可以设计数据库表结构,如下:
企业商品表tb_business:
(主要用于存放企业商品信息。)
列名 | 数据类型 | 长度 | 允许空 | 描述 |
Id | Int | 4 | 0 | 商品ID |
Name | Varchar | 50 | 1 | 商品名称 |
Img | Varchar | 50 | 1 | 商品样图 |
Ms | Varchar | 100 | 1 | 商品描述 |
Category | Varchar | 20 | 1 | 商品类别 |
submittime | datetime | 8 | 1 | 提交时间 |
商品表结构
用户表tb_usertable:
(用户表主要保存用户的相关信息。)
列名 | 数据类型 | 长度 | 允许空 | 描述 |
Id | int | 4 | 0 | 用户编号 |
Name | Varchar | 50 | 1 | 用户名 |
password | Varchar | 50 | 1 | 用户密码 |
用户表结构
商品类别表tb_category:
(商品类别表主要用于保存商品类别的信息。)
列名 | 数据类型 | 长度 | 允许空 | 描述 |
Id | int | 4 | 0 | 类别编号 |
Categoryname | Varchar | 50 | 1 | 类别名称 |
submittime | Datetime | 8 | 1 | 提交时间 |
商品类别表结构
企业新闻表tb_news:
(企业新闻表用于存放企业新闻相关信息。)
列名 | 数据类型 | 长度 | 允许空 | 描述 |
Id | int | 4 | 0 | 新闻编号 |
Title | Varchar | 50 | 1 | 新闻名称 |
Content | Varchar | 100 | 1 | 新闻内容 |
Author | Varchar | 20 | 1 | 新闻作者 |
submittime | Datetime | 8 | 1 | 提交时间 |
新闻表结构
4.5 详细设计
管理员首先登陆系统,在登陆时,登陆模块会将管理员ID给新闻管理模块,在新闻管理模块中单击“添加新闻”命令即可在添加列表中按要求添加新闻信息,完毕后单击“保存”按钮提交列表信息给数据库模块,进行添加处理,最后提示添加成功信息给管理员,至此添加新闻动作完成
管理员首先登陆系统,在登陆时,登陆模块会将管理员ID给产品管理模块,在产品管理模块中单击“添加产品”命令即可在添加列表中按要求添加产品信息,完毕后单击“保存”按钮提交列表信息给数据库模块,进行添加处理,最后提示添加成功信息给管理员,至此添加产品动作完成
当系统处于添加新闻状态时,可以添加,添加后保存到数据库中
当系统处于添加产品状态时,可以添加,添加后保存到数据库中
5 辅助JavaBean的编写
根据系统的需求编写需要的JavaBean。下面将给出企业门户网站中所需要的部分辅助JavaBean的编写过程。
5.1 基本数据库操作的JavaBean的编写
基本数据库操作的JavaBean是一个公共类,通常包括连接数据库的方法getConnection、获取结果集总记录数的方法getRow、删除数据的方法Delete等。下面将给出编写企业门户网站中的基本数据库操作的JavaBean“connsqlserver”的实现过程。
5.1.1先将“connsqlserver”保存到指定的包中,并导入所需的类包,并将其保存到“com.wsy e”包中,代码如下:
package com.wsy;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
4.1.2定义connsqlserver类,并定义静态变量,代码如下:
public class connsqlserver {
String driverName="com.mysql.jdbc.Driver";
String username="root";
String password="root";
String dbName="db_net";
String url="jdbc:MySQL://localhost:3306/db_net?useUnicode=true&characterEncoding=utf-8";
private static Connection cn = null;
public connsqlserver()
{
}
5.1.3创建连接数据库的方法getConnection,该方法返回Connection对象的一个实例。getConnection方法的代码如下:
private void getConnection() {
if (cn != null) {
return;
}
try {
Class.forName("com.mysql.jdbc.Driver");
cn=DriverManager.getConnection(url,username,password);
} catch (Exception e) {
e.printStackTrace();
}
return;
}
5.1.4定义executeQuery()方法,用于执行SQL查询。代码如下:
public ResultSet executeQuery(String sql) {
if (cn == null)
getConnection();
try {
return cn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE).executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
return null;
} finally {
}
}
5.1.5定义修改数据的方法executeUpdate()
public int executeUpdate(String sql) {
if (cn == null)
getConnection();
try {
return cn.createStatement().executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
return -1;
} finally {
}
}
5.2 字符串处理的JavaBean“StringTrans”的编写
在JSP中经常需要对输入或输出的字符串进行处理,通常将处理该问题的方法统一放置在一个单独的类中。在本实例中将其保存在StringTrans类中。StringTrans类的实现方法如下:
4.2.1定义StringTrans类、导入类中所需的包,并定义生成iso-8859-1编码字符串的方法tranA,代码如下:
package com.wsy ;
import java.io.*;
public class StringTrans
{
public static String tranA(String chi)
{
String result=null;
byte temp[];
try
{
temp=chi.getBytes("iso-8859-1");
result=new String(temp);
}catch(UnsupportedEncodingException e)
{
System.out.println(e.toString());
}
return result;
}
5.2.2定义把UTF-8编码转换成iso-8859-1编码的方法tranB代码如下:
public static String tranB(String chB)
{
String result=null;
byte temp[];
try
{
temp=chB.getBytes("UTF-8");
result=new String(temp,"iso-8859-1");
}catch(UnsupportedEncodingException e)