基于MVC模式的新闻发布系统方案.docx
《基于MVC模式的新闻发布系统方案.docx》由会员分享,可在线阅读,更多相关《基于MVC模式的新闻发布系统方案.docx(26页珍藏版)》请在冰豆网上搜索。
基于MVC模式的新闻发布系统方案
设计说明书
课题名称基于MVC模式的新闻发布系统
摘要
网络的发展日显蓬勃,人们的日常生活交流方式渐渐的被这样一个超级网络世界所融入。
信息世界的无处不在使得人们无论相隔多遥远,都有天涯若比邻的感觉。
足不出户,便可知天下新近之大事,便可与大洋彼岸的朋友畅谈无阻。
与此同时越来越多的企业开始建立自己的Web,通过可以展示产品,发布最新动态,与用户进行交流和沟通,与合作伙伴建立联系,以与开展电子商务等。
互联网的世界里蕴藏着无限生机与无限机遇,这里只有想不到的、没有做不到的。
本文主要以新闻发布系统的开发过程来论述Web在信息时代的作用,并通过系统功能的具体实现来介绍在网络技术领域里面一个动态网页制作的过程,以与它的管理方式。
本系统采用JSP/Servlet+Tomcat+MySQL开发环境与开发工具,并以MVC的模式搭建框架开发动态的Web网络新闻发布系统,用户与用户之间、用户与管理员之间通过该系统可以实现远程交互,实现信息的传递。
关键字:
JSP/Servlet,新闻发布系统,MVC模式,JavaWeb
Abstract
Thedevelopmentofnetworksbecomeincreasinglyprosperous,people'sdailylifecommunicationgraduallybeingsuchasuper-worldintegration.Worldofinformationmakespeopleeverywhereregardlessofhowfarapart,therearevirtualneighborsfeel.Stayathome,theywillknowthattheworld'smajoreventrecently,youcantalkwithfriendsacrosstheoceanunimpeded.
AtthesametimemoreandmoreenterprisesbegintobuildtheirownWebsites,throughthewebsitecanshowcaseproducts,publishingthelatestdevelopments,exchangeandcommunicationwiththeuser,toestablishcontactwithpartners,andconducte-commerce.TheworldoftheInternetthereareboundlessvitalityandunlimitedopportunities,whereonlythink,notimpossible.
Inthispaper,anewspublishingsystemWebsitedevelopmentprocesstodiscusstheroleintheinformationage,andthroughtheimplementationofsystemfunctionstointroducethetechnologyinthenetworkinsideadynamicwebproductionprocess,aswellasitsmanagement.ThesystemusesJSP/Servlet+Tomcat+MySQLdevelopmentenvironmentanddevelopmenttools,andtheMVCpatterntobuildtheframeworktodevelopdynamicWebonlinenewspublishingsystembetweenusers,betweenusersandadministratorsremotelythroughthesystemcaninteractachieveinformationtransmission.
Keywords:
JSP/Servlet,pressreleases,MVCpattern,JavaWeb
1.绪论
1.1课题背景
数字信息时代使人们的交流方式发生了很大的变化,新闻发布系统又名信息发布系统,是一个以计算机网络平台构建起来的新闻发布系统,它可以对网络上所有的信息进行管理分类,还能系统化,标准化的发布到上的一种应用程序,信息通过一个简单的界面加入数据,然后通过已有的网页模板格式与审核流程发布到上。
它的出现大大减轻了更新维护的工作量,通过网络数据库的引用,将网络的更新工作简化到只需要录入文字和上传图片,从而使的更新的速度大大缩短,从而大大加快了信息的传播速度。
目前,对于新闻发布系统的开发技术有很多种,比如PHP技术、ASP技术、JSP技术、NET技术等,成熟的新闻发布系统有很多,如著名的V7ContentManagementSuite(西门子公司采用的技术)等以与开源的产品也得到了广泛的应用,如OpenCMS等。
本课程我们将学习以JSP技术进行开发,去实现一个新闻发布系统的信息处理过程。
1.2课题研究目标和意义
本次课题研究目标,以在生活中的实际操作中对于新闻发布系统的具体操作需求进行分析和探讨,通过不同的角度去分析一个新闻发布系统的开发过程会遇到什么问题,并通过不断的讨论和测试去实现每一个需求。
达到满足用户和管理员不同身份的操作需求,以具体的实例来实现一个完整的新闻发布系统的信息交互工程。
此次课题的研究意义在于提高自己对于web项目开发的实践能力,使自己能过通过此次研究了解到一个系统的开发过程,需要哪些准备,需要哪些知识,哪些流程以与开发结束后的调试工作。
本次设计的新闻发布系统使用基于MVC模式的下的JSP/Servlet技术开发,通过此次的设计能够对MVC模式框架的深入体会,能够得到举一反三的效果,以具体的实例在开发过程过框架的搭建来实现每一个功能。
做出一个动态新闻发布系统,以与对其的管理和使用。
该新闻系统具有一般新闻系统的功能,该系统是基于MVC模式的实现,开发设计,主要实现对公司新闻的发布与管理功能,对新闻容信息的浏览阅读等。
1.3课题容
新闻发布系统的主要用途是作为信息的发布以与管理,涉与到前台用户对新闻信息的浏览、评论和后台新闻的管理。
主要是分前台浏览和后台管理两个大的模块。
前台页面是对所有用户均开放除了可以允许所有游客进入浏览新闻外,会员用户和以通过注册登录进行对新闻的评论以与留言。
后台管理部分一般是通过隐藏页面进入,并做权限验证,只有使用了正确的账号和密码,通过了权限验证才能进入后台管理和发布新闻,一般只允许管理员的登录不允许注册。
在前台新闻浏览模块,一般需要对新闻进行分门别类展示,并需要通过栏目导航进入特定的新闻信息分类模块。
在首页除了显示导航栏目外,还需要显示这些栏目的最新信息;列表以与推荐新闻信息列表,并能提供一些新闻检索功来实现用户根据个人喜好查看自己赶兴趣的新闻。
同时还应提供用户评论、留言功能,使得用户可以对新闻信息发表自己的看法和意见。
后台管理方面,必须由合法的管理者来管理新闻的的发布修改删除等,以与需要对会员用户和新闻分类进行管理,所以系统也需要一个为管理员用户登录注销的模块。
2.系统需求分析
2.1需求说明
该系统在性能功能上应达到如下需求:
操作简单、界面友好、完全框架式的页面布局,使得新闻的录入工作更简便,许多选项包括新闻分类、新闻列表、新闻出处等只需要点击鼠标就可以完成;另外,跟踪出现的提示信息也让用户随时清楚自己的操作情况。
对常见的新闻管理的各个方面:
新闻录入、浏览、删除、修改、搜索等方面都大体实现,实现了对即时新闻的管理要求。
通过相关调查,要求该系统应具有以下功能:
1.通过网络浏览各类新闻与相关信息。
2.新闻能分类显示相关信息。
3.提供站新闻的搜索功能。
4.支持其它的友情。
5.为后台管理提供管理入口。
6.后台编辑个类新闻并且管理新闻信息。
2.2用户功能分析
对于本系统,用户共分为二:
会员用户、管理员,各有不同的权限。
(一)会员用户:
此类用户具有以下权限:
1.注册会员。
2.登陆会员。
3.浏览前台网页。
4.阅读已发布新闻、留言、会员评论。
5.发表留言、评论。
(二)管理员:
此类用户具有以下权限:
1.浏览所有网页。
2.具有管理普通用户的权限。
3.发布公告信息,可供用户浏览。
4.对不合适和没用的评论进行删除。
5.向数据库导入各用户的注册信息信息。
6.登陆后可修改个人密码。
7.可以删除任何一个普通用户的所有信息。
2.3用例图
浏览者和管理员的具体分工操作所涉与到的功能(如图2.1)所示。
图2.1用例图
2.4结构图
根据需求分析得出所需要的功能,和结构得出系统结构(如图2.1)所示。
图2.2结构图
3.总体设计方案
3.1开发工具的选用和介绍
3.1.1JDK环境
JDK环境,这是Java系统编译运行时必须配置的环境,只有在此环境下Java代码才能够执行出结果,并且在本次设计中我们选用的Tomcat服务器的配置也必须在配置好JDK环境之后才能运行,所以本次设计我们选用了1.6的版本进行开发。
3.1.2MySQL
MySQL数据库管理系统是用于关联数据库并将数据保存到所创建的表中,在本次设计中涉与到数据的存储过程,所以必须要有数据库管理系统来进行管理。
目前来说MySQL一般比价适用于中小型企业的,如果数据规模非常庞大一般会选择Oracle数据库管理系统进行开发。
本次设计数据非常有限所以选择MySQL,除此之外他还有便于学习,成本低,开源等特点。
3.1.3WEB服务器Tomcat
Tomcat是Apache底下的一个项目,它拥有免费、开放源码的特点因此Tomcat成为许多程序开发、调试时所选择的服务器,在本次设计过程中主要使用它来进行程序的调试。
同时在本次设计中需要用到JSP和Servlet技术,Tomcat对于这些技术也是兼容的,因此它成为了我对服务器选择的首选。
在本系统中我们选用稳定版本Tomcat6.0进行开发。
3.1.4集成开发工具MyEclipse
是目前最流行的Java集成开发工具。
MyEclipse一经出现就以其快速、丰富的特性赢得了认可,其主要的属性有快速的性能、重构性能、快速修复错误、调整组织导入包、弹出窗口进行代码自动装配并且它能够很好地与MySQL、Tomcat进行集成。
本系统中我们选用MyEclipse8.6。
3.1.5DreamweaverCS5
AdobeDreamweaverCS5是一款集网页制作和管理于一身的所见即所得网页编辑器,DreamweaverCS5是第一套针对专业网页设计师特别发展的视觉化网页开发工具,利用它可以轻而易举地制作出跨越平台限制和跨越浏览器限制的充满动感的网页。
3.2开发技术的介绍
3.2.1JSP页面技术
JSP产生于Servlet之后,主要是为了解决Servlet中输出HTML代码效率低的问题而产生的。
JSP技术比较简单,类似于ASP、PHP这些脚本语言。
JSP的技术主要是由以下两个部分组成:
JSP的基本语法:
两个注释、3个脚本元素、8个动作指令。
JSP的九大置对象:
request请求对象、response响应对象、pageContext页面上下文对象、session会话对象、application应用程序对象、out输出对象、config配置对象、page页面对象和exception例外对象。
3.2.2Servlet技术
Servlet产生于JSP技术之前,它最大的特点就是基于线程。
与传统的CGI相比,每一个CGI请求都会产生一个新的进程,而每一个Servlet请求都只会产生一个线程,这对于系统的利用率来说是一场革命。
Servlet是MVC开发的技术,所有基于J2EE的MVC框架都离不开Servlet。
通常Servlet用于进行系统的初始化、服务拦截、过滤等。
3.2.3HTML标签语言和JavaScript脚本语言的编写
HTML:
超级文本标记语言是标准通用标记语言下的一个应用,也是一种规,一种标准,它通过标记符号来标记要显示的网页中的各个部分。
Javascript是由Netscape公司创造的一种脚本语言。
为便于推广,被定为javascript,但是javascript与java是两门不相干的语言,作用也不一样。
作为一门独立的编程语言,javascript可以做很多的事情,但它最主流的应用还是在Web上——创建动态网页(即网页特效)。
提要:
Javascript是学习脚本语言的首选。
她兼容性好,绝大多数浏览器均支持Javascript,而且她功能强大,实现简单方便,入门简单,即使是程序设计新手也可以非常快速容易地使用JavaScript进行简单的编程。
3.3开发框架MVC的概述
3.3.1MVC模式简介
MVC全名是ModelViewController,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典,用于组织代码用一种业务逻辑和数据显示分离的方法,这个方法的假设前提是如果业务逻辑被聚集到一个部件里面,而且界面和用户围绕数据的交互能被改进和个性化定制而不需要重新编写业务逻辑MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
MVC(模型Model-视图View-控制器Controller)是一种设计模式。
MVC模式作为系统的搭建框架,采用这种模式的好处是可以使每一层次的作用分工明确,它强制性的使应用程序的输入、处理和输出分开。
使用MVC应用程序被分成三个核心部件:
模型(model)、视图(model)、控制器(controller)。
本文采用的是JSP+Servlet+DAO三层模式来搭建整个框架。
3.3.2MVC模式框架图
图2.1MVC模式
4.数据库设计
4.1设计步骤
1.根据需求分析对所需存储数据进行分类,建立数据库表存储、归类所需数据,确定表中各属性的类型。
2.在数据库表建立完成后还要建立各个表之间的连接关系,确定表与表之间是主外键的关系还是多对多、一对多或是一对一等的关系。
3.分析前台与后台的功能建立用户的权限关系。
4.2数据库表的设计
根据用户需求,共创建了六个表,分别为:
管理员信息表admin、会员信息表users、文章信息表newsinfo、评论信息表replys、文章频道表newstypeinfo、会员留言表leavemessage。
以下是新闻发布系统的数据库表结构的详细描述:
4.2.1管理员信息表
管理员信息表admin包含着管理员在登录时候所需的账号、密码,还有管理员的信息,管理员的Id作为主键,在查询是可通过Id来查找管理员的信息。
(如表4.1)
表4.1管理员信息表
字段名
字段说明
类型
长度
允许空值
备注
adminId
管理员Id
int
11
否
主键
adminName
管理员用户
varchar
20
否
adminPass
管理员密码
varchar
20
是
adminInfo
信息
text
是
4.2.2会员信息表
会员信息表users包含着会员注册时候所需要的填写的所有信息,以与会员Id设为主键,管理员在查找会员信息时可以根据Id来查找。
(如表4.2)
表4.2会员信息表
字段名
字段说明
类型
长度
允许空值
备注
usersId
会员Id
int
11
否
主键
usersName
会员用户
varchar
20
否
usersPass
会员密码
varchar
20
是
usersEmail
E-mail
varchar
50
是
usersInfo
信息
text
是
4.2.3文章信息表
文章信息表newsinfo包含着文章发表时候的全部信息,以与文章Id设为主键用于在查找文章时可以根据此标识来查找出文章的所有信息。
同时还在表中设有管理员Id、文章分类Id作为外键,用于对管理员信息表、文章分类表进行关联。
(如表4.3)
表4.3文章信息表
字段名
字段说明
类型
长度
允许空值
备注
newsInfoId
文章Id
int
11
否
主键
newsInfoTitle
文章标题
varchar
100
是
newsInfoDescribe
文章描述
text
是
newsInfoContent
文章容
longtext
是
newsInfoTime
创建时间
datetime
是
newsAuthor
文章作者
varchar
40
是
adminId
管理员Id
int
11
是
外键
newsITypeId
文章分类Id
int
11
是
外键
newsInfoState
int
11
是
4.2.4评论信息表
评论信息表replys包含着会员评论时候的全部信息,以与评论Id设为主键用于在查找评论时可以根据此标识来查找出评论的所有信息。
同时还在表中设有会员Id、文章Id作为外键,用于对会员信息表、文章信息表进行关联。
(如表4.4)
表4.4评论信息表
字段名
字段说明
类型
长度
允许空值
备注
replytId
评论Id
int
11
否
主键
replytContent
评论容
longtext
是
replytTime
评论时间
datetime
是
usersId
会员Id
int
11
是
外键
newsInfoleId
文章Id
int
11
是
外键
4.2.5文章频道表
文章频道表newstype主要是用于对文章的分类,管理员在发布新闻时需要对新闻进行分类存放到不同的频道,以便会员可以通过在查看文章频道来查找相关的文章。
(如表4.5)
表4.5文章频道表
字段名
字段说明
类型
长度
允许空值
备注
newsTypelId
频道Id
int
11
否
主键
newsTypeName
频道名
varchar
200
是
newsTypeDescripe
频道描述
text
是
4.2.6会员留言表
会员留言表leavemessage主要是包含会员留言容,以与留言Id设为主键以便管理员可以通过留言Id来查找留言,有需要时候可进行删除管理,此表还包含有会员Id设为外键用于标识是哪位会员进行的留言。
(如表4.6)
表4.6会员留言表
字段名
字段说明
类型
长度
允许空值
备注
leaveMessageId
留言Id
int
11
否
主键
leaveMessageContent
留言容
text
是
leaveMessageTime
留言时间
datetime
是
userId
会员Id
int
11
是
外键
4.3数据关系ER图
ER图主要是用于显示出每个对象的属性以与每个对象之间的联系关系,对于从数据表结构到代码的实现有一定的指导作用。
本次系统开发的ER图结构。
(如图4.1)
图4.1ER图
5.代码设计
5.1系统开发准备工作
5.1.1JSP文件的导入
在系统开发前我们需要先倒入本项目所需要的JSP模板,这里需要说明的是在一个实际的项目开发过程中会分为负责JSP界面设计的美编,以与负责JAVA软件开发的软件工程师。
在本次设计中我们主要是完成软件设计部分的功能,所以开发前需导入一个JSP文件模板。
5.1.2JDBC连接数据库
JDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
(如图5.1)
如图5.1JDBC连接模型
由上图可知JDBC的作用是为数据库的连接提供可扩展的接口,当系统选择不同类型的数据库时,只需采用不同的驱动便可连接上不同的数据库。
为系统提高更多的灵活性。
在本次系统开发前需编写一个JDBC连接池,当系统需要获取数据库数据时,只需创建一个数据库连接对象,便可与数据库获取连接,然后可以执行SQL语句对数据库进行操作。
本次设计连接池的编写代码:
packageorg.news.utils;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.SQLException;
importjava.util.LinkedList;
publicclassPools{
privatefinalstaticStringurl="jdbc:
mysql:
//localhost:
3306/news_all";
privatefinalstaticStringpassword="root";
privatefinalstaticStringuser="root";
privatestaticConnectioncon=null;
privatestaticLinkedListpools=newLinkedList();
static{
try{
Class.forName(".mysql.jdbc.Driver");
for(inti=1;i<=2;i++){
pools.addLast(getPoolsConnection());
}
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}
}
publicstaticConnectiongetPoolsConnection(){
try{
con=DriverManager.getConnection(url,user,password);
}catch(SQLExceptione){
e.printStackTrace();
}
returncon;
}
publicstaticConnectiongetPoolsConnectionSingle(){
con=pools.removeFirst();
returncon;
}
publicst