供求信息网的设计与实现论文.docx
《供求信息网的设计与实现论文.docx》由会员分享,可在线阅读,更多相关《供求信息网的设计与实现论文.docx(26页珍藏版)》请在冰点文库上搜索。
供求信息网的设计与实现论文
学年论文﹙设计﹚
题目供求信息网
学生姓名学号
所在院(系)电子与信息工程系
专业班级计算科学与技术10级
指导教师
2013年6月7日
电子与信息工程系学年论文(设计)开题报告
姓名
专业
计算机科学与技术
班级
10计算机科学与技术1班
指导老师
题目
供求信息网
1.本课题的基本内容
1.分析系统的开发背景需求分析等要求
2.系统设计和流程图
3.详细设计
2.本课题的重点和难点
1、系统分析
2、详细设计
3.主要参考文献
[1]高红岩.基于MVC+MyEclipse的JavaWeb应用开发[M].北京:
科学出版社,2007.
[2]孙卫琴.Tomcat与JavaWeb开发技术详解[M].北京:
电子工业出版社,2004.
[3]姜宁.JSP数据库系统开发完全手册[M].北京:
人民邮电出版社,2006.
[4]胡为君.Web开发人员参考大全[M].北京:
电子工业出版社,2007.
[5]胥光辉.软件工程方法与实践[M].机械工业出版社,2009.
[6]林琪.数据库编程与案例.中国电力出版社发行部,2008.
指导教师意见
指导教师:
年 月 日
供求信息网
作者:
指导教师:
[摘要]随着信息技术的高速发展,互联网越来越成为人们生活的主旋律。
当前,人们追求的是能够在互联网上得到足够的信息,以满足生活需要,提高生活质量。
显然,21世纪就是信息时代。
电子商务网站能够为企业和用户提供综合信息服务,满足人们在生活、工作和学习方面的需求,同时对企业实现跨地区、跨行业、跨国经营发挥了重要的作用。
论文采用MySQL数据库实现信息实体、信息类别实体以及管理员实体的存取。
利用Struts2.0框架和Tomcat服务器完成了各个模块的设计。
实现的系统功能满足了对城市供求信息网对信息显示、查询、发布以及后台进行信息审核、信息删除的相关功能的需求。
[关键词]供求信息;数据库管理系统;MySQL;
TradeInformationNetwork
Author:
Tutor:
Abstract:
Withtherapiddevelopmentofinformationtechnology,theInternethasbecomeincreaslythethematicofpeople’slife.Atpresent,peoplearelookingfortheInternettogetenoughinformation,inordertomeettheneedsoflife,improvethequalityoflife.Clearly,twenty-firstCenturyistheageofinformation.Electroniccommercewebsiteaimtoprovidecomprehensiveinformationservicesforenterprisesandusers,tomeetthepeopleinthelife,workandlearningneeds,whiletheenterpriseimplementationtocrossaregion,crosstheindustry,transnationalmanagementplaysanimportantrolein.
ThepaperusesMySQLdatabaseinformationentities,categoriesofinformationentitiesandentityaccessadministrator.UsingtheStruts2.0frameworkandTomcatserverhascompletedthedesignofeachmodule.Therealizationofsystemfunctionstomeetthecityinformationnetworkofsupplyanddemandforinformationdisplay,query,andbackgroundinformationaudit,informationdeletingrelatedfunctionalrequirements。
Keywords:
SupplyandDemandInformation;DatabaseManagementSystem;MySQL;
引言:
随着全球信息向网络化方向的发展,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用,彻底改变了人类的工作、生活、学习和娱乐方式,已成为国家经济和区域性经济增长的主要动力。
Internet也已正式成为世界最大的公共资料库。
Internet上发布信息主要是通过网上实现的,获取信息也是要在Internet“海洋”中按照一定的检索方式将所需要的信息从网上得以实现的,人们日常生活越来越多地使用这项新的技术来为自己的工作和学习服务。
由于WEB页面能把文本、图像、声音、动画、视像等多媒体信息集于一体,不但使信息的显示更加生动,而且使信息的浏览更为方便,同时WEB页能实现网上交易平台、客户信息,反馈了企业和客户的信息交流。
因此,网站建设在Internet应用上的地位显而易见,它已成为政府、企事业单位信息化建设中的重要组成部分,从而倍受人们的重视。
为了让客户或单位更好的、更方便的进行供求信息的查询、发布、和获取信息,以满足客户、单位供求信息不断增长的需求,本次设计特构建供求信息网系统。
1.系统开发工具
1.1开发工具
本系统采用的开发工具是Eclipse,并采用Tomcat6.0作为Web服务器,采用MySQL数据库,应用Struts2.0开发框架。
1.2技术介绍
本网站主要采用JSP技术。
JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。
JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。
插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
JSP与JavaServlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
1.3运行环境
1.3.1软件环境
操作系统:
WindowsXP。
Web服务器:
Tomcat6.0。
Web开发框架:
Struts2.0。
Java开发包:
JDK1.6。
数据库:
MySQL。
浏览器:
IE浏览器。
1.3.2硬件环境
对硬件环境无具体要求
2.需求分析
2.1功能需求
对于信息网站来说,用户的访问量是至关重要的。
如果网站的访问量很低,那么就很少有企业会要求为其提供有偿服务,也就没有利润可言了。
因此信息网必须为用户提供大量的、免费的、有价值的信息才能够吸引用户。
为此,网站不仅要为企业提供各种有偿服务,还需要额外为用户提供大量的无偿服务。
通过与企业的实际接触和沟通,确定网站应为用户提供求职信息、公寓信息、家教信息、物品求购、车辆信息等服务,同时为企业提供招聘信息、寻求合作和企业广告的服务。
网站的主要目的是为用户及时、准确地提供所需信息,为企业无偿和有偿提供服务。
2.2可能性分析
2.2.1要求
网站要求为用户有偿或无偿提供尽可能全面的信息,涵盖生活、工作与学习各方面,如求职、招聘、家教、招商、房屋、车辆、出售、求购等信息。
2.2.2目标
一方面为用户的生活、工作提供方便,另一方面提高企业知名度,为企业产品宣传节约大量成本。
2.2.3评价尺度
根据用户的需求,网站中发布的信息要准确、有效、全面,考虑对企业及国家的影响,对一些非法、不健康的信息要及时删除。
此外,应加强网站的安全性,避免在遭受到有意或无意的破坏时,导致系统瘫痪,造成严重损失。
3.系统设计
3.1系统模块
图3.1系统模块结构图
3.2供求信息网顶层Guest角色数据流图
图3.2Guest(浏览者)角色层数据流程图
3.3User(用户)角色层数据流图
图3.3User(用户)角色层数据流图
3.4都市供求信息网Admin角色层数据流图
图3.4Admin角色层数据流图
3.5操作流程
3.5都市供求信息网操作流程
3.6功能设计
供求信息网前台主要实现信息的显示、搜索与发布功能。
后台主要实现的功能为信息显示、信息审核、信息删除、付费设置与退出登录。
(1)信息显示,主要将列表显示给用户已付费信息和分类显示免费信息。
通过单击导航栏中的信息类别超链接,将显示该类别下的所有详细信息。
(2)信息搜索,用户可以通过该模块对网站内信息进行定位搜索和模糊搜索。
(3)信息发布,用户可通过此页面发布信息,在页面中用户需要选择要发布信息的类别,然后填写信息内容和联系方式等;在后台信息显示页面中,管理员可删除信息,并通过单击“审核”或信息标题超链接进入信息审核页面审核信息。
(4)进入后台,管理员可以通过登陆模块进入后台管理供求信息。
(5)用户登陆,主要是进行普通用户的登陆功能,只有经过登陆后用户才能发布信息。
(6)用户注册,对于新用户需要注册后才能成为本站的会员,才有机会登陆。
(7)为了防止任意用户进入后台,进行非法操作,所以设置登录功能。
管理员可登陆后台进行删除信息,并通过单击“审核”或信息标题超链接进入信息审核页面审核信息,并对信息进行付费设置以及退出登陆。
后台登录功能,用户通过单击前台页面顶部的“进入后台”超链接,进入后台登录页面。
当用户没有输入用户名和密码,或输入了错误的用户名和密码进行登录时,会返回登录页面显示相应的提示信息。
信息删除功能,信息删除用来删除一些发布的无效信息,在每条信息在操作栏中都提供了一个“删除”超链接。
信息审核功能,用户发布信息后,不能直接显示在页面中,需要管理员来审核该信息是否可以发布。
付费设置功能,付费管理可以将信息设置为“已付费”状态。
对于已付费的信息在前台页面显示时,始终显示在页面的顶部位置,以便第一时间被浏览。
3.7数据库设计
本课题是一个中型的供求信息网站,可以采用MySQL作为系统中的数据库。
首先,规划出本课题所使用的数据库实体,它们分别为供求信息实体、信息类别实体和管理员实体。
供求信息实体包括信息编号、所属类型、信息标题、信息内容、联系人、联系电话、E-mail、发布时间、审核状态和付费状态属性。
其中审核状态与付费状态属性分别用来标识信息是否审核与付费,1表示“是”,0表示“否”。
信息类别实体包括类别编号、类别标识、类别名称和类别介绍属性。
管理员实体包括编号、用户名和密码属性。
创建与实体对应的数据表,它们为数据表tb_info、tb_admin、tb_type和tb_user,分别对应着供求信息实体、信息类别实体和管理员实体。
其中数据表tb_info与tb_type之间相互关联。
供求信息表用来保存发布的所有类别的信息,该表的结构如表3.6所示。
字段名
数据类型
是否为空
是否主键
默认值
描述
id
smallint
(2)
No
Yes
ID(自动编号)
info_type
smallint
(2)
Yes
NULL
信息类别
info_title
varchar(80)
Yes
NULL
信息标题
info_content
varchar(500)
Yes
NULL
信息内容
info_linkman
varchar(50)
Yes
NULL
联系人
info_phone
varchar(50)
Yes
NULL
联系电话
info_email
varchar(100)
Yes
NULL
E-mail地址
info_date
datetime(8)
Yes
NULL
发布时间
info_state
varchar
(1)
Yes
0
审核状态
info_payfor
varchar
(1)
Yes
0
付费状态
表3.6tb_info表的结构
其中info_type字段表示信息所属类别,它与info_type表中的type_sign字段相关联。
info_state字段和info_payfor字段分别用来表示信息的审核状态与付费状态,取值为1表示“已通过审核”或“已付费”状态,取值为0表示“未通过审核”或“未付费”状态。
信息类别表用来保存信息所属的类别,如招聘信息、求职信息等,该表的结构如:
表3.7所示。
字段名
数据类型
是否为空
是否主键
默认值
描述
id
smallint
(2)
No
ID(自动编号)
type_sign
smallint
(2)
Yes
Yes
NULL
类别标识
type_name
varchar(20)
Yes
NULL
类别名称
type_intro
varchar(20)
Yes
NULL
类别介绍
表3.7tb_type表的结构
用户表用来保存管用户信息,该表的结构如表3.8所示。
字段名
数据类型
是否为空
是否主键
默认值
描述
id
smallint
(2)
No
Yes
ID
user_name
varchar(20)
Yes
NULL
用户名称
user_password
varchar(10)
Yes
NULL
用户密码
gendar
varchar
(2)
Yes
NULL
性别
date
Datetime(8)
Yes
NULL
日期
表3.8tb_user表的结构
管理员表用来保存管理员信息,该表的结构如表3.9所示。
字段名
数据类型
是否为空
是否主键
默认值
描述
id
smallint(4)
No
Yes
ID
admin_name
varchar(10)
Yes
NULL
管理员名称
admin_password
varchar(10)
Yes
NULL
管理员密码
表3.9tb_admin表的结构
4.详细设计
4.1公共类设计
在本课题中,经常需要在不同的方法中进行相同处理,例如数据库连接和字符串处理等,为了避免重复编码,所以将这些处理封装到单独的公共类中。
在本系统中,用到的公共类有数据库连接及操作类、分页类和字符串处理类3个公共类。
4.2数据库连接及操作类
4.2.1功能描述
DB类主要是对数据库的操作,如连接、关闭数据库及执行SQL语句操作数据库。
每一种操作对应一个方法,如getCon()方法用来获取数据库连接,closed()方法用来关闭数据库连接,而对数据库的增、删、改、查等操作都在doPstm()方法中实现的。
4.2.2程序实现
首先,导入所需的类包并声明类的属性然后赋值。
主要代码如下:
privateConnectioncon;//表示连接到数据库的连接
privatePreparedStatementpstm;//用来执行SQL语句
privateStringuser="sa";//登录数据库的默认用户名
privateStringpassword="lxl279598118";//登录数据库的密码
privateStringclassName="com.microsoft.jdbc.sqlserver.SQLServerDriver";//驱动名称
privateStringurl="jdbc:
microsoft:
sqlserver:
//localhost:
1433;DatabaseName=db_CityInfo";//数据库URL
然后,在覆盖默认构造方法中使用Class.forName(className)语句实现数据库驱动的加载。
通过new操作符实例化一个DB类的同时,就会加载数据库驱动。
完成数据库驱动的加载后,创建获取数据库连接的方法getCon(),在方法中使用DriverManager类的getConnection()方法获取一个Connection类实例,建立连接到URL指定的数据库,并制定数据库的用户名和密码,代码如下。
con=DriverManager.getConnection(url,user,password);
最后,创建对数据库进行增、删、改、查等操作的doPstm()方法,方法中首先调用getCon()方法获取数据库连接,然后使用PreparedStatement类对象的execute方法来执行SQL语句。
若执行查询的SQL语句,则调用getResultSet()方法返回ResultSet结果集对象。
若执行更新的SQL语句,则调用getUpdateCount()方法返回影响的记录数。
4.3业务处理类
4.3.1功能描述
业务处理类OpDB类实现了处理本课题中用户请求的所有业务的操作,包括信息显示、信息发布、管理员登录、用户登录、信息审核、信息删除等。
每一个用户请求的业务,在OpDB类中都对应着一个方法,具有相同性质的业务可在一个方法中实现。
在这些方法中,通过调用DB类中的doPstm()方法来对数据库进行操作。
4.3.2程序实现
OpGetListBox()方法
OpGetListBox()方法用来获取所有的信息类别,实现前台页面中的导航菜单项与后台的“信息类别”下拉列表框中的选项。
方法中首先调用DB类的doPstm()方法查询tb_type数据表中的所有记录,然后依次取出每条记录中的type_sign与type_intro字段内容,并分别作为TreeMap对象的key值与value值进行保存,最后返回该Map对象。
OpGetListBox()方法在处理用户访问前台首页请求的Action类中被调用,在该Action类中将返回的TreeMap对象保存在session范围内,在请求返回JSP页面后,可通过Struts
4.3.3 标签获取该TreeMap对象,实现导航菜单或下拉列表。
OpListShow()方法用来实现具有列表显示信息功能的业务,例如搜索信息、查看某类别下的所有信息等。
在方法中首先调用DB类的doPstm()方法查询数据库,接着调用getRs()方法获取查询后的结果集,然后依次将结果集中的记录封装到InfoSingle类对象中,并将该对象保存到List集合中,最后返回该List集合对象。
OpSingleShow()方法实现了查看信息详细内容的业务,如在前台查看某信息的详细内容、在后台进行信息审核与付费设置时用来显示被操作信息的详细内容。
方法中首先查询数据库,获取指定条件的记录,然后将记录封装到InfoSingle类对象中,最后返回该对象。
本系统的信息发布、信息审核、信息删除和付费设置业务具有相同的性质,都是根据指定的SQL语句来更新数据库。
OpUpdate()方法用来实现该业务,方法中首先调用DB类的doPstm()方法更新数据库,接着调用getCount()方法获取更新操作所影响的记录数,最后返回该记录数。
OpUpdate()方法的关键代码如下:
publicintOpUpdate(Stringsql,Object[]params){
inti=-1;
mydb.doPstm(sql,params);//调用DB类的doPstm()方法更新数据库
i=mydb.getCount();//获取更新操作所影响的记录数
returni;
}
LogOn()方法用来实现管理员登录操作的身份验证业务,该方法通过查询数据库来判断请求登录的用户是否存在,若存在则返回true,否则返回false。
LogOn()方法的关键代码如下:
publicbooleanLogOn(Stringsql,Object[]params){
mydb.doPstm(sql,params);//查询数据库
ResultSetrs=mydb.getRs();//获取结果集
booleanmark=(rs==null||!
rs.next()?
false:
true);//判断用户是否存在
returnmark;
}
OpCreatePage()方法用来设置分页信息,这些信息包括总记录数、总页数、当前页、分页状态和分页导航链接等。
OpCreatePage()方法主要就是将分页信息封装到CreatePage类对象中,然后返回该CreatePage对象。
在CreatePage类中定义了存储分页信息的属性,并且创建了对应的setXXX()与getXXX()方法来存取这些属性。
register()方法用来验证注册用户名时,检测用户名是否存在于tb_user数据库表中。
代码如下:
publicStringregister(){
Stringresult="";
Stringuser_name=user.getUserName();//获得注册用户名
Stringuser_password=user.getUserPassword();//忽的注册密码
Stringsql="select*fromtb_userwhereuser_name=?
";//查询语句
Object[]params={user_name};
OpDBmyOp=newOpDB();//生成OpDB类对象
try
{
UserSingleuserInfo=myOp.getUserInfoByUserName(sql,params);//把查询结果封装到UserSingle对象
if(userInfo!
=null){//如果用户名存在
ActionContext.getContext().put("tip","用户名'"+user_name+"'已存在!
"+"");
result="register";
}else{//如用户名不存在
sql="insertintotb_user(user_name,user_password)values(?
?
)";//插入记录
myOp.saveUserSingle(sql,newObjec