资源描述
摘要
随着网络技术的迅速发展,以信息化带动工业化已经成为电子行业的共识,越来越多的企业选择Internet/Intranet作为产品信息的发布平台。但是目前的信息发布基本上是通过网站信息管理人员手工完成,信息的维护成本高、发布效率低。本项目的主要内容为设计一个能够对电子产品信息进行动态实时发布系统平台,并给出该系统的实现方案。
本文通过网络电子产品发布系统的建设来讨论动态网站工作原理及实现方法。首先介绍系统开发技术,系统设计的实现要求,再详细介绍系统的设计,系统各模块和数据库设计,最后分析系统实现。
电子产品发布系统采用现在流行的RSS技术、JSP技术编程、Hibernate开发、采用MYSQL数据库。
关键词:信息发布系统,RSS,JSP,Hibernate,MYSQL数据库
Abstract
Along with the development of network technology, it is a common view in the electronic industry that industrialization would be promoted by information technology. More and more enterprises make Internet/Intranet as their products information publishing platform. However the information is manually published by the website information administrator in present. It is costly to maintain information and inefficiency to publish information. The main content of this project is to design a platform which can publish the electronic products information dynamically.
This paper is to discuss the working principle and method through building the eletronic products publishing system of websites. First,we introduce the systems of development technology and the requirement of system designing.Second,we will give a detailed account of the design, system module and database design. The last,we will analysis the system.
Elctronic products publishing system of is using the RSS technology, JSP Programming, Hibernate development and MYSQL database now.
Keywords: information publishing system, RSS, JSP, Hibernate, MYSQL data
base. 目录
摘要 I
ABSTRACT II
第1章 绪论 1
1.1 系统开发背景 1
1.1.1开发背景 1
1.1.2系统的体系结构 1
1.2 系统开发工具简介 2
1.2.1 JSP概述 2
1.2.2 RSS概述 2
1.2.3 JSP 网站的RSS 应用技术 4
1.2.4 Hibernate概述 4
1.3系统开发工具SQL语言简介 5
1.3.1 SQL的优点 5
1.3.2 MYSQL特点 6
1.4 JSP与MYSQL数据库连接 7
1.4.1JSP与MYSQL数据库连接代码 7
1.4.2本系统与数据库相连 7
第2章 系统分析 8
2.1 系统需求分析 8
2.2 功能分析 8
2.2.1系统功能模块 8
2.2.2系统主要工作流程 10
第3章 数据库的分析与设计 12
3.1 数据库设计原则 12
3.2 概念结构设计 12
3.3 逻辑结构设计 13
第4章 系统功能现实 17
4.1前台管理系统 17
4.1.1产品系统 17
4.1.2用户系统 19
4.2后台管理系统 21
4.2.1管理员信息系统 22
4.2.2电子产品管理 24
总结 28
致谢 29
参考文献 30
附 录1 31
附录2 34
附录3 35
36
第1章 绪论
1.1 系统开发背景
1.1.1开发背景
在线信息的有效管理是展开网络运营的基本要求,信息管理的好坏直接影响到网站运作的效果。因此,信息管理对于网站的运作起着至关重要的作用,更新每天的信息内容,对web站点管理员们来说是一件很头痛的事。首先,收集了大量的信息资料后,还必须制作大量的网页,每天大大小小的信息,琐事烦人。最致命的一点,这些松散的信息是管理不了的,不能查询,不能在线动态删改。信息讲求时效性,当你作好网页然后上传到服务器上的时侯,恐怕别人已早你一步,把信息发布出来了。使的信息有很长的滞后周期,针对现在我们的上网环境,在线发布信息,自动生成信息网页,为信息添加搜索,查找功能是必不可少的。也正应毕业的论文要求,我们特设计此电子信息发布系统,使实践和知识综合利用。
1.1.2系统的体系结构
基于WEB就是应用目前比较广泛使用的B/S模式(browser/server),B/S结构是真正的三层结构,其结构组成如下:
图1-1 B/S结构示意图
第一层浏览器是表示层,完成用户接口功能,在客户端向指定的服务器发出请求,WEB服务器用HTTP协议把所需的文件资料传给用户,客户端接受并显示在WWW服务器上。
第二层WEB服务器是功能层,完成客户的应用功能,即WEB服务器接受客户的请求,以CGI或JSP与数据库连接,进行申请处理,而后数据库结果返回服务器,再传至客户端。
第三层数据库服务器是数据层,数据库服务器应客户请求进行各种数据处理。
●B/S 模式的优点
● 具有分布性特点,可以随时随地进行查询、浏览等业务处理。
●.业务扩展简单方便,通过增加网页即可增加服务器功能。
● 维护简单方便,只需要改变网页,即可实现所有用户的同步更新。
● 开发简单,共享性强。
B/S与C/S处理模式相比,则大大简化了客户端,只要客户端机器能上网就可以。对于B/S而言,开发、维护等几乎所有工作也都集中在服务器端,当企业对网络应用进行升级时,只需更新服务器端的软件就可以,这减轻了异地用户系统维护与升级的成本。如果客户端的软件系统升级比较频繁,那么B/S架构的产品优势明显——所有的升级操作只需要针对服务器进行,这对那些点多面广的应用是很有价值的,例如一些招聘网站就需要采用B/S模式,客户端分散,且应用简单,只需要进行简单的浏览和少量信息的录入。所以在这里我采用了B/S处理模块[1]。
1.2 系统开发工具简介
1.2.1 JSP概述
JSP技术是用JAVA语言作为脚本语言的,JSP网页为整个服务器端的JAVA库单元提供了一个接口来服务于HTTP的应用程序。
JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。 在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp)。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送 email 等等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低,可以实现无Plugin,无ActiveX,无Java Applet,甚至无Frame。
1.2.2 RSS概述
RSS(Really Simple Syndication)是一种描述和同步网站内容的格式,是目前使用最广泛的XML应用。RSS搭建了信息迅速传播的一个技术平台,使得每个人都成为潜在的信息提供者。发布一个RSS文件后,这个RSS Feed中包含的信息就能直接被其他站点调用,而且由于这些数据都是标准的XML格式,所以也能在其他的终端和服务中使用。
随着越来越多的站点对RSS的支持,RSS已经成为目前最成功的XML应用。RSS搭建了信息迅速传播的一个技术平台,使得每个人都成为潜在的信息提供者。相信很快我们就会看到大量基于RSS的专业门户、聚合站点和更精确的搜索引擎。
那么RSS究竟代表什么呢?比较普遍的有两种说法,一种是“Rich Site Summary”或“RDF Site Summary”,另一种是“Really Simple Syndication”,之所以有这些分歧,需要从RSS发展的历史说起。
最初的0.90版本RSS是由Netscape公司设计的,目的是用来建立一个整合了各主要新闻站点内容的门户,但是0.90版本的RSS规范过于复杂,而一个简化的RSS 0.91版本也随着Netscape公司对该项目的放弃而于2000年暂停。
不久,一家专门从事博客写作软件开发的公司UserLand接手了RSS 0.91版本的发展,并把它作为其博客写作软件的基础功能之一继续开发,逐步推出了0.92、0.93和0.94版本。随着网络博客的流行,RSS作为一种基本的功能也被越来越多的网站和博客软件支持。
在UserLand公司接手并不断开发RSS的同时,很多的专业人士认识到需要通过一个第三方、非商业的组织,把RSS发展成为一个通用的规范,并进一步标准化。于是2001年一个联合小组在0.90版本RSS的开发原则下,以W3C新一代的语义网技术RDF(Resource Description Framework)为基础,对RSS进行了重新定义,发布RSS1.0,并将RSS定义为“RDF Site Summary”。但是这项工作没有与UserLand公司进行有效的沟通,UserLand公司也不承认RSS 1.0的有效性,并坚持按照自己的设想进一步开发出RSS的后续版本,到2002年9月发布了最新版本RSS 2.0,UserLand公司将RSS定义为“Really Simple Syndication”。
目前RSS已经分化为RSS 0.9x/2.0和RSS 1.0两个阵营,由于分歧的存在和RSS 0.9x/2.0的广泛应用现状,RSS 1.0还没有成为标准化组织的真正标准。
RSS2.0版本的数据格式如下:
l rss:每个RSS Feed,都有而且只能有一个rss标签,作为顶层元素
l channel:在rss标签下,必须有且只能有一个channel标签
l title:这个blog的标题
l link:blog的URL访问地址
l description:简要描述
l managingEditor:blog的作者
l item:可以出现多个item,每个item,描述一条日志信息
l title:日志的标题
l link:日志的URL访问地址
l author:日志的作者
pubDate:日志的发布日期
l description:日志的内容[3]
1.2.3 JSP 网站的RSS 应用技术
在此提出一种基于JSP 的RSS 应用.
下载并安装RSS Utilities Package 后,将taglib 定义添加至Web 应用程序的/ WEB -INF/ web. xml 文件,如附录1所示:
三种方法并没有优劣之分,主要取决于所采用的RSS 具体的版本. 而且RSS 的三个版本的优缺点在学术界也众说纷纭,所以在此只给出三种应用的方法,而不作进一步的比较[8].
1.2.4 Hibernate概述
Hibernate 作为一个成熟且强大的持久层框架的实现,也对 web 的开发产生了极为深远的影响。Hibernate 是对JDBC 做了一次轻量级的封装,使业务逻辑与数据访问逻辑相分离,这正合了编码人员的心意,使的编码人员能从繁杂的JDBC代码中解脱出来,把更多的精力放到业务逻辑代码的编写中。这也使的web 开发的效率大大的提高,因为 Hibernate 会帮你完成底层繁杂的实现过程而不用我们去担心。
另外 Hibernate 还提供了很多良好的机制,比如它支持数据库连接池技术(在池中有若干个数据库的连接,业务代码只需从中获得连接,用完后再将连接放回池中,而不用去创建连接和释放连接,这样就避免了因为多次创建连接和释放连接带来的资源的浪费。尤其是需要大数量连接的情况下。)Hibernate还提供了包括数据缓存技术和回调拦截机制等[6]。
1.3系统开发工具SQL语言简介
SQL全称是“结构化查询语言(Structured Query Language)”,最早的是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言,得到了广泛的应用。如今无论是像Oracle ,Sybase,Informix,SQL server这些大型的数据库管理系统,还是像Visual Foxporo,PowerBuilder这些微机上常用的数据库开发系统,都支持SQL语言作为查询语言。
1.3.1 SQL的优点
(1) 非过程化语言
SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集。所有SQL 语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。 SQL不要求用户指定对数据的存放方法。 这种特性使用户更易集中精力于要得到的结果。所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段。查询优化器知道存在什么索引,哪儿使用合适,而用户从不需要知道表是否有索引,表有什么类型的索引。
(2) 统一的语言
SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、 应用程序员、决策支持系统人员及许多其它类型的终端用户。基本的SQL 命令只需很少时间就能学会,最高级的命令在几天内便可掌握。 SQL为许多任务提供了命令,包括:
● 查询数据
● 在表中插入、修改和删除记录
● 建立、修改和删除数据对象
● 控制对数据和数据对象的存取
● 保证数据库一致性和完整性
以前的数据库管理系统为上述各类操作提供单独的语言,而SQL 将全部任务统一在一种语言中。
(3) 是所有关系数据库的公共语言
由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS转到另一个。所有用SQL编写的程序都是可以移植的[7]。
1.3.2 MYSQL特点
MYSQL是一种关系数据库,它除了支持传统关系数据库组件(如数据库、表)和特性(如表的JOIN)外,另外也支持当今关系数据库的常用组件,如存储过程、视图等。另外,它还支持目前关系数据库都支持的标准查询语句——SQL ( Structured Query Language)。SQL另外一项重要的特点是它支持数据库复制功能。也就是当你在一个数据库执行操作时,可以将其操作结果传至远程的SQL相同的数据库上,让两边的数据库的数据保持同步。
(1). Internet集成
SQL数据库引擎提供完整的XML支持。它还具有构成最大的WEB站点和数据库存储组件所需的可伸缩性、可用性和安全功能。MYSQL程序设计模型与WINDOWS DNA构架集成,用以开发WEB应用程序,并且MYSQL支持ENGLISH QUERY和MICROSOFT搜索服务器等功能,在WEB应用程序中包含了用户友好的查询和强大的搜索功能。
(2). 可伸缩性和可用性
同一个MYSQL数据库引擎可以运行在Microsoft Windows 2000 Professional,Microsoft Windows 2000 Serve,Microsoft Windows 2000,Advance Serve,Windows98 和 Microsoft Windows NT4.0等不同操作平台上。MYSQL与WINDOWS NT和WINDOWS 2000故障转移群集共同支持不间断的将故障即时转移到备份服务器。MYSQL还引入了日志转移传送功能,这将使得你可以在可用性要求较低的环境中维护备用服务器。
(3). 企业级数据库功能
MYSQL关系数据库引擎支持当今苛刻的数据处理环境所需的功能。数据库引擎充分保护数据完整性,同时将管理上千个并发修改数据库的用户的开销减低到最小。MYSQL分布式查询使你得以引用来自不同的数据源的数据,就好像这些数据是MYSQL数据库的一部分,同时分布式事务支持充分保护任何分布式数据更新的完整性。
(4). 易于安装、部署和使用
MYSQL中包括一系列管理和开发工具,这些工具可改进在多个站点上的安装、部署、管理和使用MYSQL的过程。MYSQL还支持基于标准的、与Windows DNA集成的程序设计模型,使MYSQL数据库和数据仓库的使用成为生成强大的可伸缩系统的无缝部分。这些功能使你得以快速交付SQL应用程序,使客户只需最少的安装和管理开销即可实现这些应用程序。
(5).数据仓库
MYSQL中包括析取和分析汇总数据以进行联机分析处理的工具。
1.4 JSP与MYSQL数据库连接
1.4.1JSP与MYSQL数据库连接代码
先创建MySQL驱动对象实例,获取数据库链接对象conn,根据conn创建对MySQL数据库操作对象,通过Sql语句对数据进行查询,这里是对test 表里的所有数据进行查询,通过执行executeQuery(sql)函数获得数据结果集ResultSet 对象 rs ,再通过遍历 rs 对象将所有查询结果输出到页面上。如附录2所示。
1.4.2本系统与数据库相连
配置Hibernate 环境,下载Hibernate 包及相关工具:hibernate-3.2.1.ga.zi, hibernate-extensions-2.1.3.zip,Middlegen-Hibernate-r5.zip,xdoclet-bin-1.2.2.zip.还有相关数据库的驱动,如我用的是MySQL数据库则下载 mysql-connector-java-3.1.14.zip
安装好数据库和相关的工具如我用的是MySQL 数据库则下载mysql-essential-4.1.12-win32.msi,mysql-gui-tools-5.0-r8-win32.msi(mysqlGUI工具)
在Eclipse(注意:此处要安装好 Eclipse 和相关的 Eclipse 插件,包括 MyEclipse)
图1-2 Eclipse的结构图
其中包含了两个重要的配置文件:hibernate.cfg.xml 和 User.hbm.xml
在 hibernate.cfg.xml 中包含了对数据库的连接的一些设置,具体如下附录3所示。
第2章 系统分析
2.1 系统需求分析
网站新闻发布系统,又称为信息发布系统,是将网页上的某些需要经常变动的信息,类似新闻、新产品发布和业界动态等更新信息集中管理,并通过信息的某些共性进行分类,最后系统化、标准化发布到网站上的一种网站应用程序。网站信息通过人工的界面加入数据库,然后通过已有的网页模板格式与审核流程发布到网站上。
但是随着网络技术的迅速发展,以信息化带动工业化已经成为电子行业的共识,越来越多的企业选择Internet/Intranet作为产品信息的发布平台。但是目前的信息发布基本上是通过网站信息管理人员手工完成,信息的维护成本高、发布效率低。本项目的主要内容为设计一个能够对电子产品信息进行动态实时发布系统平台,并给出该系统的实现方案。
它的出现大大减轻了网站更新维护的工作量,通过网络数据库的引用,将网站的更新维护工作简化到只需在一个子网站上录入文字和上传图片,从而使网站的更新、共享速度大大缩短,从而大大加快了信息的传播速度,也吸引了更多的长期用户群,时时保持网站的活动力和影响力。
2.2 功能分析
2.2.1系统功能模块
后台的管理功能只对管理员开放。管理员类用户可以电子产品发布系统产品进行增加、修改、删除等操作。如果当前浏览部分不能满足管理员的要求,提供搜索条件在现有信息中进行查询。不仅可以对电子类型、性能、价格、配置进行创建、修改和删除操作,而且可以电子产品性能区分度等系数进行调整对比。对电子进行查询、搜索。如图2-1所示:
后台管理系统
管理员信息系统
电子产品管理
管理员信息修改
产品价格管理
产品品牌管理
产品配置管理
图片管理
图2-1 后台管理系统功能图
前台管理模块只对普通用户开放。普通用户可以浏览自己以往阅览过信息,也可以对产品查询,搜索。如图2-2所示:
前台管理系统
产品系统
用户系统
用户的注册和登入
产品阅览
产品查询、搜索
产品对比分析
图2-2 前台管理系统功能图
2.2.2系统主要工作流程
系统管理员后台管理程序流程图是
管理员登陆页面
admin/index.jsp
产品的库后台管理页面
admin/index.jsp
产品价格管理
type_1.jsp
产品品牌管理
Type_2.jsp
产品配置管理
test.jsp
产品图片管理
report.jsp
普通用户管理
Ordinar_admin..jsp
管理员资料
System.jsp
登陆
成功
失败
图2-3 流程图
普通用户在线测试前台管理程序流程图
电子产品首页
BuyProduct.html
登录界面
Logon.html
登录
更改个人信息
changeMyinfo.html
注册新用户
Register.html
购买产品
BuyProduct.html
更改个人信息
成功
登录
成功获得权限
失败
注册新用户
注册成功
查询产品
权限
有权限
没有权限
调整产品数量
生成订单
BuyProduct.html
购买
继续
进入系统
图2-4 前台管理程序流程图
第3章 数据库的分析与设计
数据库设计的目标是要求完全满足业务的数据存储要求。如果能够设计一个合理的数据库模型,不仅会降低程序编程和维护的难度,也会提高系统实际运行的性能,因而必须仔细的制定设计步骤方案,了解规范的设计方法和必要的规则。
3.1 数据库设计原则
选择合适的数据库是项目开发成功与否的先决条件,我们在设计时应该从以下几方面去考虑数据库的选择:
1. 易用性
2. 分布性
3. 并发性
4. 数据完整性
5. 安全性
6. 数据恢复性
3.2 概念结构设计
E-R模型和关系模型是两种对数据库不同的描述,在E-R模型中用实体集和联系表示现实世界中的事物及其相互之间的关系;而在关系模型中则用单一的结构来组织数据。所以,在这里就存在一个如何将E-R模型转化为关系模型的问题。下面介绍转化所需要遵守的几条准则:
● E-R模型中的每一个实体都转化成一个同名的关系,实体集的属性就是关系的属性,实体集的码就是关系的码。
● E-R模型中的每一个联系也用一个关系表示,与该联系相连的各实体集的码以及联系的属性转化为关系的属性。该关系的码有三种情况:
★ 若联系为1:1,则每个实体的码均是该关系的候选码。
★ 若联系为1:n,则关系的码为n端实体集的码。
★ 若联系为m:n,则关系的码为各实体集码的组合。
★ 具有相同码的关系模式可以合并。
将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计。概念结构独立于数据库逻辑结构,也独立于支持数据库的DBMS。它是现实世界与机器世界的中介,它一方面能够充分反映现实世界,包括实体与实体之间的联系,同时又易于向关系、网状、层次等数据模型转换,它是现实世界的一个真实模型,当现实世界需求改变时,概念结构也可以很容易地作相应调整,因此概念结构设计是整个数据库设计的关键所在。
概念结构通常有自顶向下、自底向上、逐步扩张、混合策略四类方法。通常采用的策略是自底向上方法,即自顶向下进行需求分析,然后再自底向上地设计概念结构。但无论采用哪种设计方法,一般都以E-R模型为工具来描述概念结构。
对电子信息发布系统管理系统的E-R图分析是建立在UML系统模型的基础上的这里给出E-R图分析的结果。实体关系图的分析结果非常复杂。一般情况下使用从繁到简的方式进行设计。首先从大的方面设计出各个实体之间的关系简图,并设计出关系。
具体如下:
图3-1 实体、属性和实体之间的ER图
这张E-R图比较简单的表达了数据库各张表之间的关系:本系统主要由这几张表组成,用户信息表的用户帐号字段和用户权限表的用户帐号字段进行关联,主要是用户登录后可以根据用户帐号到用户权限表里面获取相应的权限。
3.3 逻辑结构设计
设计逻辑结构的是和分三步进行:
1. 将概念结构(ER图)转化为一般关系模型
2. 将转化来的关系模型向MySql支持下的数据模型转化
3. 对数据模型进行优化,消除冗余字段。对数据依赖进行极小化处理。
对关系模式进行必要的分解合并和优化,形成以下的逻辑结构:
表3-1 client (用户信息表)
字段名
数据类型及长度
说明
备注
ID
Integer
Id由数据库维护
主键
logon_id
Varchar(25)
用户注册号
系统编码维护(相当于主键)
password
Varchar(25)
用户密码
不能为空
name
Varchar(25)
用户姓名
不能为空
mobile_phone
Varchar(25)
移动电话号码
不能为空
phone
Varchar(25)
电话号码
不能为空
email
Varchar(25)
Email地址
不能为空
address
Varchar(200)
地址
不能为空
zip
Varchar(10)
邮编
不能为空
表3-2 popedom(用户权限表)
字段名
数据类型及长度
说明
备注
ID
Varchar(10)
Id由数据库维护
主键
logon_id
Varchar(6)
用户注册号
系统编码维护(相当于主键)
Popedom
Varchar(10)
用户权限
不能为空
表3-3 Product(电子信息表)
字段名
数据类型及长度
说明
备注
ID
Integer
Id由数据库维护
主键
Product_id
Varchar(25)
电子产品编号
系统编码维护(相当于主键)
name
Varchar(45)
电子产品名称
不能为空
number
Integer
电子产品数量
不能为空
type
Varchar(25)
电子产品类型
不能为空
presshouse
Varchar(30)
生产地址
不能为空
presstime
Timestamp
生产日期
不能为空
Product_img_src
Varchar(45)
电子产品存放位置
不能为空
price
Varchar(25)
产品价格
不能为空
writer
Varchar(45)
厂家
不能为空
表3-4 bill(订单信息表)
字段名
数据类型及长度
说明
备注
ID
Integer
Id由数据库维护
主键
bill_id
Varchar(100)
订单号
系统编码维护(相当于主键)
client_name
Varchar(45)
用户姓名
不能为空
client_phone
Varchar(25)
用户联系电话
不能为空
client_zipcode
Varchar(25)
用户邮编号码
不能为空
client_address
Varchar(200)
用户地址
不能为空
client_email
Varchar(25)
用户email
不能为空
client_mphone
Varchar(25)
用户移动电话
不能为空
total_price
Varchar(25)
订单总价
不能为空
表3-5 Product bill(订单对应的电子产品信息)
字段名
数据类型及长度
说明
备注
Id
Integer
Id由数据库维护
bill_id
Varchar(100)
订单号
系统编码维护(相当于主键)
Product_name
Varchar(45)
电子产品名称
不能为空
Product _price
Varchar(25)
电子产品单价
不能为空
Product _num
Varchar(25)
电子产品数量
不能为空
Product _tprice
Varchar(25)
电子产品总价
不能为空
表3-6 t—article 表结构
字段名
字段类型
说明
备注
Article—id
Uniqueidentifier
编号(PK)
Article—cid
Char
产品编号
系统编码维护(相当于主键)
A rticle—time
Datatime
更新时间
不能为空
Article—title
Varchar (80)
信息标题
不能为空
Article—content
Varchar (1000)
信息内容
不能为空
Article—author
Varchar (60)
信息作者
不能为空
Article—hit
Int
信息点击率
不能为空
第4章 系统功能现实
4.1前台管理系统
4.1.1产品系统
图4-1 主页图
l 查询产品
public String selectProductByProductName(){
try{
Page page = new Page();
if(currently == null){ //如果当前页为空则设为0
currently = "0";
}
page.setCurrentPage(Integer.parseInt(currently));//初始化page当前页
//将前台传来的产品名进行UTF-8解码
String ProductName1 = .URLDecoder.decode(ProductName, "UTF-8");
//进行查询,并返回 List 对象
List ProductInfo = ProductService.selectProductByProductName(ProductName1,page,Query);
Page page1 = (Page) ProductInfo.get(ProductInfo.size()-1);
int totPage = page1.getTotalPage();//获取总页数
if(totPage == 0){
totPage = 1;
}
//向前台写后台数据库中产品id,产品图片所存放的地址
for(int i=0;i<ProductInfo.size()-1;i++){
Product Product = (Product) ProductInfo.get(i);
//System.out.println(Product.getProduct_id()+Product.getProduct_name());
encoder.append(Product.getProduct_id(),Product.getProduct_img_src());
}
if(currently.equals("0")){//只有当用户第一次搜索时返回总页数
encoder.append("Totalpage",String.valueOf(totPage));
}
responsePrint.print(encoder.toXML()); //将信息写到前台
}catch(Exception e){
e.printStackTrace();
}
return NONE;
}
4.1.2用户系统
登入界面
图4-2 界面图
1.用户登入
主要功能:进入电子发布系统主页面
处理过程:根据输入的帐号密码和验证码,查询该用户合法性以及该用户的权限,如果成功则跳转至电子发布系统主页面,验证码由后台自动生成,其主要目的是防止恶意程序无限制试探用户名,密码强行登录。
主要代码如下:
String savedcode = (String)session.getAttribute("check_code");//获取session中存放的check_code
String checkCode = request.getParameter("check_code");//获取前台传来request中的check_code
if(!savedcode.equals(checkcode)){ //如果相同则认为用户输入的验证码正确
encoder.append("error_code", LOGON_CHECK_CODE_ERROR);
responsePrint.print(encoder.toXML());
Result = false;
System.out.println("验证码错误");
}
session.removeAttribute("check_code");
if(!logon_id.equals(client.getLogon_id())){ //验证用户id
………..
} else if(!password.equals(client.getPassword())){ //验证用户密码
…………}
l 新用户注册页面
图4-3 注册图
主要代码:
public void saveClie
展开阅读全文