1、达到满足用户和管理员不同身份的操作需求,以具体的实例来实现一个完整的新闻发布系统的信息交互工程。此次课题的研究意义在于提高自己对于web项目开发的实践能力,使自己能过通过此次研究了解到一个系统的开发过程,需要哪些准备,需要哪些知识,哪些流程以与开发结束后的调试工作。本次设计的新闻发布系统使用基于MVC模式的下的JSP/Servlet技术开发, 通过此次的设计能够对MVC模式框架的深入体会,能够得到举一反三的效果,以具体的实例在开发过程过框架的搭建来实现每一个功能。做出一个动态新闻发布系统,以与对其的管理和使用。该新闻系统具有一般新闻系统的功能,该系统是基于MVC模式的实现,开发设计,主要实现对
2、公司新闻的发布与管理功能,对新闻容信息的浏览阅读等。1.3 课题容新闻发布系统的主要用途是作为信息的发布以与管理,涉与到前台用户对新闻信息的浏览、评论和后台新闻的管理。主要是分前台浏览和后台管理两个大的模块。前台页面是对所有用户均开放除了可以允许所有游客进入浏览新闻外,会员用户和以通过注册登录进行对新闻的评论以与留言。后台管理部分一般是通过隐藏页面进入,并做权限验证,只有使用了正确的账号和密码,通过了权限验证才能进入后台管理和发布新闻,一般只允许管理员的登录不允许注册。在前台新闻浏览模块,一般需要对新闻进行分门别类展示,并需要通过栏目导航进入特定的新闻信息分类模块。在首页除了显示导航栏目外,还
3、需要显示这些栏目的最新信息;列表以与推荐新闻信息列表,并能提供一些新闻检索功来实现用户根据个人喜好查看自己赶兴趣的新闻。同时还应提供用户评论、留言功能,使得用户可以对新闻信息发表自己的看法和意见。后台管理方面,必须由合法的管理者来管理新闻的的发布修改删除等,以与需要对会员用户和新闻分类进行管理,所以系统也需要一个为管理员用户登录注销的模块。2.系统需求分析2.1 需求说明该系统在性能功能上应达到如下需求:操作简单、界面友好、完全框架式的页面布局,使得新闻的录入工作更简便,许多选项包括新闻分类、新闻列表、新闻出处等只需要点击鼠标就可以完成;另外,跟踪出现的提示信息也让用户随时清楚自己的操作情况。
4、对常见的新闻管理的各个方面:新闻录入、浏览、删除、修改、搜索等方面都大体实现,实现了对即时新闻的管理要求。通过相关调查,要求该系统应具有以下功能:1. 通过网络浏览各类新闻与相关信息。2. 新闻能分类显示相关信息。3. 提供站新闻的搜索功能。4. 支持其它的友情。5. 为后台管理提供管理入口。6. 后台编辑个类新闻并且管理新闻信息。2.2 用户功能分析对于本系统,用户共分为二:会员用户、管理员,各有不同的权限。(一)会员用户:此类用户具有以下权限:1.注册会员。2.登陆会员。3.浏览前台网页。4.阅读已发布新闻、留言、会员评论。5.发表留言、评论。(二)管理员: 此类用户具有以下权限:1. 浏
5、览所有网页。2. 具有管理普通用户的权限。3. 发布公告信息,可供用户浏览。4. 对不合适和没用的评论进行删除。5. 向数据库导入各用户的注册信息信息。6. 登陆后可修改个人密码。7. 可以删除任何一个普通用户的所有信息。2.3 用例图浏览者和管理员的具体分工操作所涉与到的功能(如图 2.1)所示。图2.1 用例图2.4 结构图根据需求分析得出所需要的功能,和结构得出系统结构(如图2.1)所示。图 2.2 结构图3.总体设计方案3.1开发工具的选用和介绍3.1.1 JDK环境JDK环境,这是Java系统编译运行时必须配置的环境,只有在此环境下Java代码才能够执行出结果,并且在本次设计中我们选
6、用的Tomcat服务器的配置也必须在配置好JDK环境之后才能运行,所以本次设计我们选用了1.6的版本进行开发。3.1.2 MySQLMySQL数据库管理系统是用于关联数据库并将数据保存到所创建的表中,在本次设计中涉与到数据的存储过程,所以必须要有数据库管理系统来进行管理。目前来说MySQL一般比价适用于中小型企业的,如果数据规模非常庞大一般会选择Oracle数据库管理系统进行开发。本次设计数据非常有限所以选择MySQL,除此之外他还有便于学习,成本低,开源等特点。3.1.3 WEB服务器TomcatTomcat是Apache底下的一个项目,它拥有免费、开放源码的特点因此Tomcat成为许多程序
7、开发、调试时所选择的服务器,在本次设计过程中主要使用它来进行程序的调试。同时在本次设计中需要用到JSP和Servlet技术,Tomcat对于这些技术也是兼容的,因此它成为了我对服务器选择的首选。在本系统中我们选用稳定版本Tomcat6.0进行开发。3.1.4 集成开发工具MyEclipse是目前最流行的Java集成开发工具。MyEclipse一经出现就以其快速、丰富的特性赢得了认可,其主要的属性有快速的性能、重构性能、快速修复错误、调整组织导入包、弹出窗口进行代码自动装配并且它能够很好地与MySQL、Tomcat进行集成。本系统中我们选用MyEclipse8.6。3.1.5 Dreamweav
8、er CS5Adobe Dreamweaver CS5是一款集网页制作和管理于一身的所见即所得网页编辑器,Dreamweaver CS5是第一套针对专业网页设计师特别发展的视觉化网页开发工具,利用它可以轻而易举地制作出跨越平台限制和跨越浏览器限制的充满动感的网页。3.2 开发技术的介绍3.2.1 JSP页面技术JSP产生于Servlet之后,主要是为了解决Servlet中输出HTML代码效率低的问题而产生的。JSP技术比较简单,类似于ASP、PHP这些脚本语言。JSP的技术主要是由以下两个部分组成:JSP的基本语法:两个注释、3个脚本元素、8个动作指令。JSP的九大置对象:request请求对
9、象、response响应对象、pageContext页面上下文对象、session会话对象、application应用程序对象、out输出对象、config配置对象、page页面对象和exception例外对象。3.2.2 Servlet技术Servlet产生于JSP技术之前,它最大的特点就是基于线程。与传统的CGI相比,每一个CGI请求都会产生一个新的进程,而每一个Servlet请求都只会产生一个线程,这对于系统的利用率来说是一场革命。Servlet是MVC开发的技术,所有基于J2EE的MVC框架都离不开Servlet。通常Servlet用于进行系统的初始化、服务拦截、过滤等。3.2.3 H
10、TML标签语言和JavaScript脚本语言的编写HTML:超级文本标记语言是标准通用标记语言下的一个应用,也是一种规,一种标准,它通过标记符号来标记要显示的网页中的各个部分。Javascript是由Netscape公司创造的一种脚本语言。为便于推广,被定为javascript,但是javascript与java是两门不相干的语言,作用也不一样。作为一门独立的编程语言,javascript可以做很多的事情,但它最主流的应用还是在Web上创建动态网页(即网页特效)。提要:Javascript是学习脚本语言的首选。她兼容性好,绝大多数浏览器均支持Javascript,而且她功能强大,实现简单方便,
11、入门简单,即使是程序设计新手也可以非常快速容易地使用JavaScript进行简单的编程。3.3 开发框架MVC的概述3.3.1 MVC模式简介MVC全名是Model View Controller,是模型(model)视图(view)控制器(controller)的缩写,一种软件设计典,用于组织代码用一种业务逻辑和数据显示分离的方法,这个方法的假设前提是如果业务逻辑被聚集到一个部件里面,而且界面和用户围绕数据的交互能被改进和个性化定制而不需要重新编写业务逻辑MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。MVC(模型Model-视图View-控制器C
12、ontroller)是一种设计模式。 MVC模式作为系统的搭建框架,采用这种模式的好处是可以使每一层次的作用分工明确,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型(model)、视图(model)、控制器(controller)。本文采用的是JSP+Servlet+DAO三层模式来搭建整个框架。3.3.2 MVC模式框架图图2.1 MVC模式4.数据库设计4.1设计步骤1.根据需求分析对所需存储数据进行分类,建立数据库表存储、归类所需数据,确定表中各属性的类型。2.在数据库表建立完成后还要建立各个表之间的连接关系,确定表与表之间是主外键的关系还是多对多
13、、一对多或是一对一等的关系。3.分析前台与后台的功能建立用户的权限关系。4.2 数据库表的设计根据用户需求,共创建了六个表,分别为:管理员信息表admin、会员信息表users、文章信息表newsinfo、评论信息表replys、文章频道表newstypeinfo、会员留言表leavemessage。以下是新闻发布系统的数据库表结构的详细描述:4.2.1 管理员信息表管理员信息表admin包含着管理员在登录时候所需的账号、密码,还有管理员的信息,管理员的Id作为主键,在查询是可通过Id来查找管理员的信息。(如表4.1)表4.1 管理员信息表字段名字段说明类型长度允许空值备注adminId管理员
14、Idint11否主键adminName管理员用户varchar20adminPass管理员密码是adminInfo信息text4.2.2 会员信息表 会员信息表users包含着会员注册时候所需要的填写的所有信息,以与会员Id设为主键,管理员在查找会员信息时可以根据Id来查找。(如表4.2)表4.2 会员信息表usersId会员IdusersName会员用户usersPass会员密码usersEmailE-mail50usersInfo4.2.3 文章信息表文章信息表newsinfo包含着文章发表时候的全部信息,以与文章Id设为主键用于在查找文章时可以根据此标识来查找出文章的所有信息。同时还在表
15、中设有管理员Id、文章分类Id作为外键,用于对管理员信息表、文章分类表进行关联。(如表4.3)表4.3 文章信息表newsInfoId文章IdnewsInfoTitle文章标题100newsInfoDescribe文章描述newsInfoContent文章容longtextnewsInfoTime创建时间datetimenewsAuthor文章作者40外键newsITypeId文章分类IdnewsInfoState4.2.4 评论信息表 评论信息表replys包含着会员评论时候的全部信息,以与评论Id设为主键用于在查找评论时可以根据此标识来查找出评论的所有信息。同时还在表中设有会员Id、文章I
16、d作为外键,用于对会员信息表、文章信息表进行关联。(如表4.4)表4.4 评论信息表replytId评论IdreplytContent评论容replytTime评论时间newsInfoleId4.2.5 文章频道表文章频道表newstype主要是用于对文章的分类,管理员在发布新闻时需要对新闻进行分类存放到不同的频道,以便会员可以通过在查看文章频道来查找相关的文章。(如表4.5)表4.5 文章频道表newsTypelId频道IdnewsTypeName频道名200newsTypeDescripe频道描述4.2.6 会员留言表会员留言表leavemessage主要是包含会员留言容,以与留言Id设为
17、主键以便管理员可以通过留言Id来查找留言,有需要时候可进行删除管理,此表还包含有会员Id设为外键用于标识是哪位会员进行的留言。(如表4.6)表4.6 会员留言表leaveMessageId留言IdleaveMessageContent留言容leaveMessageTime留言时间userId4.3 数据关系ER图ER图主要是用于显示出每个对象的属性以与每个对象之间的联系关系,对于从数据表结构到代码的实现有一定的指导作用。本次系统开发的ER图结构。(如图4.1)图4.1 ER图5. 代码设计5.1 系统开发准备工作5.1.1 JSP文件的导入在系统开发前我们需要先倒入本项目所需要的JSP模板,这
18、里需要说明的是在一个实际的项目开发过程中会分为负责JSP界面设计的美编,以与负责JAVA软件开发的软件工程师。在本次设计中我们主要是完成软件设计部分的功能,所以开发前需导入一个JSP文件模板。5.1.2 JDBC连接数据库JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。(如图5.1)如图 5.1 JDBC连接模型由上图可知JDBC的作用是为数据
19、库的连接提供可扩展的接口,当系统选择不同类型的数据库时,只需采用不同的驱动便可连接上不同的数据库。为系统提高更多的灵活性。在本次系统开发前需编写一个JDBC连接池,当系统需要获取数据库数据时,只需创建一个数据库连接对象,便可与数据库获取连接,然后可以执行SQL语句对数据库进行操作。本次设计连接池的编写代码:package org.news.utils;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.util.LinkedList;publiccla
20、ss Pools privatefinalstatic String url = jdbc:mysql:/localhost:3306/news_all;privatefinalstatic String password = rootprivatefinalstatic String user = privatestatic Connection con = null;privatestatic LinkedList pools = new LinkedList();statictry Class.forName(.mysql.jdbc.Driver);for(int i = 1 ; i =
21、 2 ; i+)pools.addLast(getPoolsConnection(); catch (ClassNotFoundException e) e.printStackTrace();publicstatic Connection getPoolsConnection()con = DriverManager.getConnection(url, user, password); catch (SQLException e) returncon;publicstatic Connection getPoolsConnectionSingle()con = pools.removeFirst();returncon ;publicst
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1