导航网站设计实现.docx
- 文档编号:10387118
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:36
- 大小:2.10MB
导航网站设计实现.docx
《导航网站设计实现.docx》由会员分享,可在线阅读,更多相关《导航网站设计实现.docx(36页珍藏版)》请在冰点文库上搜索。
导航网站设计实现
九江学院
信息科学与技术学院
《软件工程》课程设计(实训)报告书
题目:
上网导航网站的设计与实现
专业:
软件技术
班级:
信B0931
姓名:
张华
学号:
20914160122
同组人员:
指导老师:
邱兴兴
设计时间:
2011年10月24日~2011年11月4日
1.
课程设计(实训)计划
本课程设计分四个阶段完成:
第一个阶段:
完成课题题目的选定(确定是做什么)。
第二个阶段:
对选定项目进行需求分析与功能设计。
第三个阶段:
对项目进行总体设计及数据库的设计。
第四个阶段:
对项目模块进行设计。
第五个阶段:
项目实现。
第六个阶段:
项目测试。
第七个阶段:
完善项目,提交相关文档。
2.系统需求分析与功能设计(根据课题的要求进行简单的需求分析,设计相应的数据流图,得出相应的系统功能需要,系统数据流图)
2.1系统性能需求
2.1.1磁盘容量要求:
本系统属于B/S模式构架,因此存储容量较小,数据库系统也不是很大,系统文件估计占20M的磁盘空间,数据库文件占用空间也不是很大。
不过文件分享模块倒是可以占较多的空间,目前也不好估计,主要看网站的社会响应。
2.1.2安全性要求:
本系统有着权限设置,不同的用户有不同的权限,普通游客不可以上传文件,管理员基本上都可以进行网站的大部分工作。
用户上传文件,写日志,和设置首页背景必须进行登录才可以操作。
2.1.3适应性要求:
要求界面友好,菜单清楚,用户能很快熟悉网站。
2.2系统功能需求
作为一个网址导航网站,他应该具有网址导航的基本功能,包括网址导航,信息查询。
本网站在原有的基本功能的基础上还添加了一些功能:
Ι网站后台
Ι1管理员登陆到网站后台管理界面,登录时输入正确的管理员名和密码,登陆到网站后台,在这里可以查看自己的信息,修改密码(修改密码是输入自己的原始密码,然后输入新密码,再输入确认密码就可以修改了)。
Ι2添加管理员信息,管理网站不可能只是一个管理员,对于不同的管理员,有不同的权限,对于超级管理员可以拥有最大的权限,例如可以又增加其他管理员的权限,删除其他管理员的权限,限制其他管理员登陆的权限,修改密码,管理网站的权限都是有的。
Ι3查询普通管理员信息,本系统提供了两种查询方式,模糊查询,就是输入关键字,然后进入数据库进行匹配,得到相关联的管理员信息;按管理员名字进行查询,这个是精确查询,在查询界面输入管理员然后查询出管理员的信息。
Ι4管理网站用户:
(1)查看所有的用户信息,在显示所有的用户界面上,管理员可以删除用户信息,设置允许或者是禁止用户登陆,编辑用户信息。
(2)管理员可以添加用户信息,就是可以为某个网站用户初始化一个帐户。
(3)查询用户信息,这里也有两个查询方式,精确查询和模糊查询。
Ι5频道管理(相关的网址都收录在这个频道里面):
(1)查看所有频道信息,在显示所有频道信息里面,管理员可以发布频道,或者是撤销发布频道,删除频道,编辑频道信息。
(2)添加频道信息,管理员可以添加频道。
(3)查询频道信息:
这里也是两种方式,模糊查询和精确查询(按频道名进行查询)。
Ι6网址管理
(1)查看所有的网址信息,在显示网址的界面可以删除网址,发布或者是撤销发布网址,编辑网址信息。
(2)添加网址:
在添加网址的界面输入网址名字,以及连接的url,输入相关的描述信息。
(3)查询网址信息:
还是两种方式,模糊查询(输入关键字进行查询),精确查询(输入网址的名字进行查询)。
Ι7常用网址的管理
(1)查看所有的常用网址信息,在显示的界面可以删除网址信息,发布或者是撤销发布网址信息,编辑网址信息。
(2)添加常用网址:
在添加界面输入网址名字,以及连接地址,和相关的描述信息。
(3)查询网址信息:
两种方式(同上)。
Ι8前台网站的管理
(1)备份网站信息,将整个网站上的关键文件备份,以防止出现万一意外情况,减少损失。
(2)还原网站信息,将备份的网站文件还原。
Ι9文件管理
(1)查看所有文件,在显示所有文件界面显示所有文件,并可以发布或撤销文件,删除文件。
(2)上传文件。
(3)搜索文件。
Ι10安全退出网站后台管理系统。
Π网站前台
Π1打开网站,显示的是一个显示了很多网址的页面,点击相关的网址就可以浏览到相关的网站。
Π2点击相应的频道:
转到另一个界面,显示本频道上所有的网址信息。
Π3点击常用的网址信息,跳转到常用的网站。
比如XX,google。
Π4搜索信息,本站采用的是XX搜索引擎,在首页的XX搜索栏里面输入关键字进行搜索。
Π5用户登陆,用户登陆以后可以显示,进入我的导航和设置背景,否则不显示,用户进入我的导航以后可以书写日记,记录当天的自己的一些事情。
Π7用户登陆以后,在我的导航里面可以添加网址并输入链接地址。
Π8用户可以在我的导航里面,上传文件,成功以后,会提示,您上传的文件会在审查之后显示在分享之家里面。
Π9下载文件。
Π10在首页,点击分享之家,然后进入显示所有文件界面。
在这里可以下载文件。
2.3用例模型
2.3.1管理员用例图
对于管理员用户,要对网站进行管理需要先登录,用户登录时要经过验证才可以登陆成功,然后进行网站用户管理,管理员管理,版块管理,网址管理。
如图1所示:
图1管理员用户用例图
3.3.2普通用户用例图
对于普通用户来说要进行上传文件,下载文件,写日志,设置首页背景都需要登陆登陆成功才可以使用上述功能,不登陆只能使用导航功能,本站加入XX搜索功能,不注册登陆也是可以用的。
如图2所示:
图2普通用户用例图
3.4管理员活动图
这里活动图主要阐述了,管理员用户的管理活动,管理员要对网站进行管理,首先得要登录,管理员登录成功了后进入后台管理界面,选择要进行的操作:
像改密码,查看信息,添加网址信息等。
图3后台系统活动图
3.总体设计
(根据功能需求,设计系统的总体结构。
系统总体功能模块图,菜单的设计)
本系统面向普通用户、管理员二种身份的用户。
本系统主要由以下几个模块组成:
用户管理模块、管理员模块、栏目模块、资料库模块、网址管理模块、上传模块、下载模块。
整个系统的功能框架图如下图4所示:
图4系统功能框架图
4.数据库设计(完成数据库的概念设计、逻辑设计,按数据库设计方法和规范化理论得出符合3NF的逻辑模型,ER图设计,ER图转化为相应的关系模式,设计数据库的逻辑模型(以表格),在机器上完成数据库的物理设计)
4.1E-R图
(一)所有表的E-R图如下:
普通用户表的E-R图:
图4-1-1普通用户的E-R图
管理员用户表的E-R图:
图4-1-2管理员用户的E-R图
板块(就是对网址进行分类表)表的E-R图:
图4-1-3模块表的E-R图
(二)所有实体的联系图如下:
(三)对于这些实体的具体分析,如下:
用户管理,分列两个表,管理员单独拿出来生成一张表,用户管理,涉及两个实体,如下普通用户实体和管理员用户实体:
普通用户实体属性有:
id号,用户名,密码,QQ等联系方式,备注,创建、更新时间。
图5普通用户实体图
管理员账户涉及的属性有:
id号,管理员名,密码等。
图6管理员用户实体图
板块(就是对网址进行分类)实体:
属性有:
id号,版块名,备注等属性。
图7板块实体图
网址实体,其属性有:
id号,网址名,链接地址。
图8网址实体图
著名网站实体,其属性有:
id号,网址名,链接地址等。
图9著名网址实体图
板块与普通网址关系实体图:
图10板块与网址关系实体图
文件实体,其属性有:
id号,文件名,存放路径,上传文件者等。
这里没有与用户建立外键约束,因为很多控制都添加在了程序中,在程序中控制更为自由。
在用户注册的时候,用户名不让有重复的,因此无需建立外键,照样可以对数据信息进行控制。
图11文件实体图
模块类型实体图:
图12模块类型实体图
日志实体图:
日志实体同样,也是因为程序中都有控制,所以数据库中没有建立,外键约束,这样使得程序更灵活。
图13用户日志实体图
背景文件信息记录实体图:
背景文件信息记录实体同样,也是因为程序中对用户的添加都有控制,所以数据库中没有建立,外键约束,这样使得程序更灵活
图14背景信息实体图
4.2关系模型
由以上的E-R图可以得到以下的关系模型,以下是详细的关系模型:
管理员表(ID,管理员名,密码,qq,邮箱,联系电话,描述,账户创建时间,账户更新时间,账户发布时间,是否可登陆)
用户表(ID,用户名,密码,QQ,邮箱,联系电话,描述,账户创建时间,账户更新时间,账户发布时间,是否可登陆)
栏目表(ID,栏目名,描述,栏目创建时间,栏目更新时间,栏目发布时间,是否已发布)
网址表(ID,columnID,网址名,描述,是否发布,链接地址,创建日期,更新日期,发布日期,创建者)
常用网址表(ID,网址名,描述,是否发布,链接地址,创建日期,更新日期,发布日期,创建者)
文件表(ID,文件名,文件地址,描述,文件上传者)
4.3数据库表的设计
管理员表表用于记录后台登陆账号信息。
表4-3-1管理员表(admin)
字段名
描述
类型
长度
是否空
是否主键
adminid
管理员ID号
Varchar
11
否
是
Adminname
管理员名
Varchar
255
是
否
adminpasswd
管理员密码
Varchar
255
是
否
管理员QQ
Varchar
255
是
否
管理员邮箱
Varchar
255
是
否
phone
联系电话
Varchar
255
是
否
description
描述
Text
是
否
canlogin
是否可登陆
Varcahr
255
是
否
createtime
创建时间
Datetime
是
否
updatetime
更新时间
Datetime
是
否
publedtime
发布时间
Datetime
是
否
用户表表用于记录网站登陆账号信息。
表4-3-2用户表(users)
字段名
描述
类型
长度
是否空
是否主键
usersid
用户ID号
Varchar
11
否
是
usersname
用户名
Varchar
255
是
否
passwd
用户密码
Varchar
255
是
否
用户QQ
Varchar
255
是
否
用户邮箱
Varchar
255
是
否
phone
联系电话
Varchar
255
是
否
description
描述
Text
是
否
canlogin
是否可登陆
Varcahr
255
是
否
createtime
创建时间
Datetime
是
否
updatetime
更新时间
Datetime
是
否
publedtime
发布时间
Datetime
是
否
栏目表用于记录所有栏目信息。
表4-3-3栏目表(column)
字段名
描述
类型
长度
是否空
是否主键
columnID
ID号
Varchar
11
否
是
Columnname
栏目名
Varchar
255
是
否
Columndescription
描述
Text
是
否
Ispled
是否发布
Varchar
255
是
否
Createtime
创建时间
Datetime
是
否
Updatetime
更新时间
Datetime
是
否
Publedtime
发布时间
Datetime
否
否
网址用于记录网址的信息。
表4-3-4网址表(sort)
字段名
描述
类型
长度
是否空
是否主键
Sortid
ID号
int
11
否
是
Columnid
栏目ID号
Int
11
否
否
Sitename
网址名
Varchar
255
是
否
Description
描述
Text
是
否
Author
创建者
Varchar
255
是
否
Ispled
是否发布
Varchar
255
是
否
Url
链接地址
Varchar
255
否
否
Createtime
创建时间
Datetime
是
否
Updatetime
更新时间
Datetime
是
否
Publedtime
发布时间
Datetime
是
否
常用网址用于记录网址的信息。
表4-3-5网址表(site)
字段名
描述
类型
长度
是否空
是否主键
Siteid
ID号
int
11
否
是
Sitename
网址名
Varchar
255
是
否
Description
描述
Text
是
否
Author
创建者
Varchar
255
是
否
Ispled
是否发布
Varchar
255
是
否
Url
链接地址
Varchar
255
否
否
Createtime
创建时间
Datetime
是
否
Updatetime
更新时间
Datetime
是
否
Publedtime
发布时间
Datetime
是
否
文件表用于记录下载资源的地址以及发布资源的信息。
表4-3-6文件(file)
字段名
描述
类型
长度
是否空
是否主键
fileID
ID号
int
11
否
是
Filename
文件名
Varchar
255
是
否
Filepath
文件下载路径
Varchar
255
是
否
Description
描述
Text
是
否
Author
上传者
Varchar
255
是
否
日志表用来记录用户的日志信息的。
表4-3-7日志(blog)
字段名
描述
类型
长度
是否空
是否主键
Ids
ID号
int
11
否
是
btitle
标题
Varchar
255
是
否
bcontect
日志内容
Text
是
否
create
发日志时间
Datetime
是
否
Author
发日志者
Varchar
255
是
否
背景表是记录用户背景图片信息的。
表4-3-8背景(bg)
字段名
描述
类型
长度
是否空
是否主键
Bgid
ID号
int
11
否
是
Bgname
背景图片名
Varchar
255
是
否
Bgpath
背景存放路径
Varchar
是
否
Username
背景上传者
Varchar
是
否
频道类型表是记录频道类型的。
表4-3-9频道类型列表(typelist)
字段名
描述
类型
长度
是否空
是否主键
Typeid
ID号
int
11
否
是
Typename
类型名
Varchar
255
是
否
5.程序模块设计
(设计并编写输入\输出、查询\统计、数据维护等功能模块的应用程序,每个人设计2个以上的模块,一个组完成一个完整的系统,数据库访问,存储过程调用等作重点阐述)
本系统是,采用的页面显示使用的jsp,数据处理使用的是hibernate,数据接收和发送,使用的struts2.
(一)后台管理系统
1.管理员登陆模块
功能说明:
管理登陆的控制。
上级模块:
无
下级模块:
无
输入信息:
id号
输出信息:
进入后台管理界面。
处理过程:
在登陆界面,输入管理员名和密码,提交给一个action进行判断,action首先根据用户名和密码从数据库查出相应的数据,若查到了数据,允许其登陆。
关键代码:
Sessionsession=HibernateSessionFactory.getSession();
session.beginTransaction();
hql="fromAdminasadminwhereadmin.adminname='"+admin.getAdminname()+"'andadmin.adminpasswd='"+admin.getAdminpasswd()+"'";
returnsession.createQuery(hql).list();
hibernate从数据库查出数据,在action中进行判断。
Action中要使用查出的数据,先把,list转换成,admin对象,然后进行判断。
关键代码如下:
Listlist=this.adminDao.checkAdmin(admin);
Adminadmins=null;
if(list!
=null){
Iterator
while(it.hasNext()){
admins=it.next();
}
}
在action中进行判断,action首先从页面接收数据,然后判断好了,就发送数据,到输出页面。
页面截图如下:
登陆界面:
这是后台登陆界面,简洁。
这是后台管理界面。
管理员登陆成功了以后就可以,进入这个界面,然后进行日产管理工作。
2.查询模块(这里以查询网址为例介绍其执行过程)
功能说明:
查看所有的相关信息,模糊查询,和精确查询数据。
上级模块:
管理员管理,用户管理,版块管理,网址管理,文件管理。
下级模块:
删除信息,编辑信息,更新信息。
输入信息:
关键字,或是要查的信息的名字。
输出信息:
显示查询结果,若查到了,就以列表形式显示,没查到,会提示没有查到信息,或是重新输入条件查询。
处理过程:
在页面选择查询的方式和查询关键字,或是查询的信息的名字,然后,action接受这些页面信息,通过dao查询信息,action再准备好数据,传到页面。
关键代码如下:
这是得到所有的信息,以list形式返回。
Sessionsession=HibernateSessionFactory.getSession();
session.beginTransaction();
hql="fromSortassort";
Listlist=session.createQuery(hql)
.setFirstResult((pageNow-1)*pageSize)
.setMaxResults(pageSize).list();
session.getTransaction().commit();
HibernateSessionFactory.closeSession();
returnlist;
这是得到信息的总条数:
Sessionsession=HibernateSessionFactory.getSession();
session.beginTransaction();
hql="fromSortassort";
introwCount=session.createQuery(hql).list().size();
session.getTransaction().commit();
HibernateSessionFactory.closeSession();
returnrowCount;
这是dao执行查询的代码。
Action从数据库中得到数据,经过处理,返回到页面。
查询页面显示:
执行模糊查询,输入“优”关键字显示如下:
执行按网址名查找,输入“优酷网”显示如下:
这写信息,从数据库中查到的。
(二)前台网站
显示首页信息:
关键代码:
页面请求提交到action,action通过dao从数据库中得到数据,返回到页面,显示数据。
DAO的关键代码如下:
StringqueryString="fromSort";
QueryqueryObject=HibernateSessionFactory.getSession().createQuery(queryString);
returnqueryObject.list();
StringqueryString="fromSite";
QueryqueryObject=HibernateSessionFactory.getSession().createQuery(queryString);
returnqueryObject.list();
StringqueryString="fromColumn";
QueryqueryObject=HibernateSessionFactory.getSession().createQuery(queryString);
returnqueryObject.list();
ListcolumnList=this.columnDAO.findAll();
ListsortList=this.sortDAO.findAll();
ListsiteList=this.siteDAO.findAll();
得到显示在首页的信息。
6.技术难点与分析
(主要内容:
本课题在设计过程中所遇到的技术难点及解决方法。
)
本课题在设计过程中确实遇到了很多难点,这些难点有的已经解决了,有的还在研究当中,毕竟一个好的系统不是一朝一夕设计出来的。
下面,我要说一下这个难点问题:
1.管理员权限控制问题:
管理员权限怎么合理的控制,不同级别的管理员,有着不同的权限,那么谁来控制。
这些我只是基本设计了一下,管理员账户的权限,基本相同。
2.安全性问题:
本系统可以说存在很多安全问题,这些本人的水平有限,也没有好的方案,管理员在查看用户信息的时候,查出了很多信息,里面包括用户密码,这些密码,同时也被传到了页面,怎样可以把密码,给隐藏,再加密。
没有实现。
3.页面跳转的时候:
带的参数,怎样可以设置不被人看见。
4.文件上传问题:
本网站使用的是commons-fileupload-1.2.1组件,实现了文件上传。
本网站是个小型的系统,所以目前就发现了以上这些大点儿的问题,还有什么问题,以后的改进中再探索。
7.系统测试
(主要内容:
测试环境描述,测试系统结构,系统
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 导航 网站 设计 实现