基于MVC模式的新闻发布系统

更新时间:2024-03-31 17:20:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

设计说明书

课题名称 基于MVC模式的新闻发布系统

基于MVC模式的新闻发布系统

摘 要

网络的发展日显蓬勃,人们的日常生活交流方式渐渐的被这样一个超级网络世界所融入。信息世界的无处不在使得人们无论相隔多遥远,都有天涯若比邻的感觉。足不出户,便可知天下新近之大事,便可与大洋彼岸的朋友畅谈无阻。

与此同时越来越多的企业开始建立自己的Web网站,通过网站可以展示产品,发布最新动态,与用户进行交流和沟通,与合作伙伴建立联系,以及开展电子商务等。互联网的世界里蕴藏着无限生机与无限机遇,这里只有想不到的、没有做不到的。

本文主要以新闻发布系统的开发过程来论述Web网站在信息时代的作用,并通过系统功能的具体实现来介绍在网络技术领域里面一个动态网页制作的过程,以及它的管理方式。本系统采用JSP/Servlet+ Tomcat+ MySQL开发环境与开发工具,并以MVC的模式搭建框架开发动态的Web网络新闻发布系统,用户与用户之间、用户与管理员之间通过该系统可以实现远程交互,实现信息的传递。

关键字:JSP/Servlet,新闻发布系统,MVC模式,Java Web

I

基于MVC模式的新闻发布系统

Abstract

The development of networks become increasingly prosperous, people's daily life communication gradually being such a super-world integration. World of information makes people everywhere regardless of how far apart, there are virtual neighbors feel. Stay at home, they will know that the world's major event recently, you can talk with friends across the ocean unimpeded.

At the same time more and more enterprises begin to build their own Web sites, through the website can showcase products, publishing the latest developments, exchange and communication with the user, to establish contact with partners, and conduct e-commerce. The world of the Internet there are boundless vitality and unlimited opportunities, where only think, not impossible.

In this paper, a news publishing system Web site development process to discuss the role in the information age, and through the implementation of system functions to introduce the technology in the network inside a dynamic web production process, as well as its management. The system uses JSP / Servlet + Tomcat + MySQL development environment and development tools, and the MVC pattern to build the framework to develop dynamic Web online news publishing system between users, between users and administrators remotely through the system can interact achieve information transmission.

Keywords:JSP / Servlet, press releases, MVC pattern, Java Web

II

基于MVC模式的新闻发布系统

目 录

摘 要 .................................................................... I Abstract ................................................................. II 1. 绪 论 ................................................................. 1

1.1课题背景 ........................................................... 1 1.2 课题研究目标和意义 ................................................ 1 1.3 课题内容 .......................................................... 1 2.系统需求分析 ............................................................ 3

2.1 需求说明 .......................................................... 3 2.2 用户功能分析 ...................................................... 3 2.3 用例图 ............................................................ 4 2.4 结构图 ............................................................ 4 3. 总体设计方案 ........................................................... 6

3.1开发工具的选用和介绍 ............................................... 6

3.1.1 JDK环境 ..................................................... 6 3.1.2 MySQL ........................................................ 6 3.1.3 WEB服务器Tomcat ............................................. 6 3.1.4 集成开发工具MyEclipse ....................................... 6 3.1.5 Dreamweaver CS5 .............................................. 7 3.2 开发技术的介绍 .................................................... 7

3.2.1 JSP页面技术 ................................................. 7 3.2.2 Servlet技术 ................................................. 7 3.2.3 HTML标签语言和JavaScript脚本语言的编写 ..................... 7 3.3 开发框架MVC的概述 ................................................ 8

3.3.1 MVC模式简介 ................................................. 8 3.3.2 MVC模式框架图 ............................................... 9

4.数据库设计 ............................................................. 10

4.1设计步骤 .......................................................... 10 4.2 数据库表的设计 ................................................... 10

4.2.1 管理员信息表 ................................................ 10 4.2.2 会员信息表 .................................................. 10 4.2.3 文章信息表 .................................................. 11 4.2.4 评论信息表 .................................................. 11 4.2.5 文章频道表 .................................................. 12 4.2.6 会员留言表 .................................................. 12 4.3 数据关系ER图 .................................................... 13 5. 代码设计 .............................................................. 14

5.1 系统开发准备工作 ................................................. 14

5.1.1 JSP文件的导入 .............................................. 14 5.1.2 JDBC连接数据库 ............................................. 14 5.2 MVC模式实现过程 .................................................. 16 5.3系统功能具体实现思想 .............................................. 16

5.3.1 对信息的批量删除 ............................................ 17 5.3.2 对信息的修改 ................................................ 19

III

基于MVC模式的新闻发布系统

6. 系统调试 .............................................................. 21

6.1前台页面调试 ...................................................... 21 6.2 后台管理员页面调试 ............................................... 23 结束语 ................................................................... 26 致 谢 ................................................................... 27 参考文献 ................................................................. 28

IV

基于MVC模式的新闻发布系统

1. 绪 论

1.1课题背景

数字信息时代使人们的交流方式发生了很大的变化,新闻发布系统又名信息发布系统,是一个以计算机网络平台构建起来的新闻发布系统,它可以对网络上所有的信息进行管理分类,还能系统化,标准化的发布到网站上的一种网站应用程序,网站信息通过一个简单的界面加入数据,然后通过已有的网页模板格式与审核流程发布到网站上。它的出现大大减轻了网站更新维护的工作量,通过网络数据库的引用,将网络的更新工作简化到只需要录入文字和上传图片,从而使网站的更新的速度大大缩短,从而大大加快了信息的传播速度。

目前,对于新闻发布系统的开发技术有很多种,比如PHP技术、ASP技术、JSP技术、NET技术等,成熟的新闻发布系统有很多,如著名的V7 Content Management Suite(西门子公司采用的技术)等以及开源的产品也得到了广泛的应用,如Open CMS等。本课程我们将学习以JSP技术进行开发,去实现一个新闻发布系统的信息处理过程。

1.2 课题研究目标和意义

本次课题研究目标,以在生活中的实际操作中对于新闻发布系统的具体操作需求进行分析和探讨,通过不同的角度去分析一个新闻发布系统的开发过程会遇到什么问题,并通过不断的讨论和测试去实现每一个需求。达到满足用户和管理员不同身份的操作需求,以具体的实例来实现一个完整的新闻发布系统的信息交互工程。

此次课题的研究意义在于提高自己对于web项目开发的实践能力,使自己能过通过此次研究了解到一个系统的开发过程,需要哪些准备,需要哪些知识,哪些流程以及开发结束后的调试工作。本次设计的新闻发布系统使用基于MVC模式的下的JSP/Servlet技术开发, 通过此次的设计能够对MVC模式框架的深入体会,能够得到举一反三的效果,以具体的实例在开发过程中通过框架的搭建来实现每一个功能。做出一个动态新闻发布系统,以及对其的管理和使用。该新闻系统具有一般新闻系统的功能,该系统是基于MVC模式的实现,开发设计,主要实现对公司新闻的发布与管理功能,对新闻内容信息的浏览阅读等。

1.3 课题内容

新闻发布系统的主要用途是作为信息的发布以及管理,涉及到前台用户对新闻信息的浏览、评论和后台新闻的管理。主要是分前台浏览和后台管理两个大的模块。前台页

1

基于MVC模式的新闻发布系统

面是对所有用户均开放除了可以允许所有游客进入浏览新闻外,会员用户和以通过注册登录进行对新闻的评论以及留言。后台管理部分一般是通过隐藏页面进入,并做权限验证,只有使用了正确的账号和密码,通过了权限验证才能进入后台管理和发布新闻,一般只允许管理员的登录不允许注册。

在前台新闻浏览模块,一般需要对新闻进行分门别类展示,并需要通过栏目导航进入特定的新闻信息分类模块。在首页除了显示导航栏目外,还需要显示这些栏目的最新信息;列表以及推荐新闻信息列表,并能提供一些新闻检索功来实现用户根据个人喜好查看自己赶兴趣的新闻。同时还应提供用户评论、留言功能,使得用户可以对新闻信息发表自己的看法和意见。

后台管理方面,必须由合法的管理者来管理新闻的的发布修改删除等,以及需要对会员用户和新闻分类进行管理,所以系统也需要一个为管理员用户登录注销的模块。

2

基于MVC模式的新闻发布系统

2.系统需求分析

2.1 需求说明

该系统在性能功能上应达到如下需求:操作简单、界面友好、完全框架式的页面布

局,使得新闻的录入工作更简便,许多选项包括新闻分类、新闻列表、新闻出处等只需要点击鼠标就可以完成;另外,跟踪出现的提示信息也让用户随时清楚自己的操作情况。对常见网站的新闻管理的各个方面:新闻录入、浏览、删除、修改、搜索等方面都大体实现,实现了网站对即时新闻的管理要求。

通过相关调查,要求该系统应具有以下功能: 1. 通过网络浏览各类新闻及相关信息。 2. 新闻能分类显示相关信息。 3. 提供站内新闻的搜索功能。 4. 支持其它网站的友情链接。 5. 为后台管理提供管理入口。

6. 后台编辑个类新闻并且管理新闻信息。

2.2 用户功能分析

对于本系统,用户共分为二:会员用户、管理员,各有不同的权限。 (一)会员用户:

此类用户具有以下权限: 1.注册会员。 2.登陆会员。 3.浏览前台网页。

4.阅读已发布新闻、留言、会员评论。 5.发表留言、评论。 (二)管理员:

此类用户具有以下权限: 1. 浏览所有网页。

2. 具有管理普通用户的权限。 3. 发布公告信息,可供用户浏览。 4. 对不合适和没用的评论进行删除。

3

基于MVC模式的新闻发布系统

5. 向数据库导入各用户的注册信息信息。 6. 登陆后可修改个人密码。

7. 可以删除任何一个普通用户的所有信息。

2.3 用例图

浏览者和管理员的具体分工操作所涉及到的功能(如图 2.1)所示。

图2.1 用例图

2.4 结构图

根据需求分析得出所需要的功能,和结构得出系统结构(如图2.1)所示。

4

基于MVC模式的新闻发布系统

新闻发布系统普通用户前台登发发浏注录表表览册会评留新会员论言闻员管理员后台添修删管删删添管添加改除理除除加理加新新新会评留和员新修信闻闻闻闻员论言改息分 类 图 2.2 结构图

5

基于MVC模式的新闻发布系统

3. 总体设计方案

3.1开发工具的选用和介绍

3.1.1 JDK环境

JDK环境,这是Java系统编译运行时必须配置的环境,只有在此环境下Java代码才能够执行出结果,并且在本次设计中我们选用的Tomcat服务器的配置也必须在配置好JDK环境之后才能运行,所以本次设计我们选用了1.6的版本进行开发。

3.1.2 MySQL

MySQL数据库管理系统是用于关联数据库并将数据保存到所创建的表中,在本次设计中涉及到数据的存储过程,所以必须要有数据库管理系统来进行管理。目前来说MySQL一般比价适用于中小型企业的,如果数据规模非常庞大一般会选择Oracle数据库管理系统进行开发。本次设计数据非常有限所以选择MySQL,除此之外他还有便于学习,成本低,开源等特点。

3.1.3 WEB服务器Tomcat

Tomcat是Apache底下的一个项目,它拥有免费、开放源码的特点因此Tomcat成为许多程序开发、调试时所选择的服务器,在本次设计过程中主要使用它来进行程序的调试。同时在本次设计中需要用到JSP和Servlet技术,Tomcat对于这些技术也是兼容的,因此它成为了我对服务器选择的首选。

在本系统中我们选用稳定版本Tomcat6.0进行开发。

3.1.4 集成开发工具MyEclipse

是目前最流行的Java集成开发工具。MyEclipse一经出现就以其快速、丰富的特性赢得了认可,其主要的属性有快速的性能、重构性能、快速修复错误、调整组织导入包、弹出窗口进行代码自动装配并且它能够很好地与MySQL、Tomcat进行集成。

本系统中我们选用MyEclipse8.6。

6

基于MVC模式的新闻发布系统

3.1.5 Dreamweaver CS5

Adobe Dreamweaver CS5是一款集网页制作和管理网站于一身的所见即所得网页编辑器,Dreamweaver CS5是第一套针对专业网页设计师特别发展的视觉化网页开发工具,利用它可以轻而易举地制作出跨越平台限制和跨越浏览器限制的充满动感的网页。

3.2 开发技术的介绍

3.2.1 JSP页面技术

JSP产生于Servlet之后,主要是为了解决Servlet中输出HTML代码效率低的问题而产生的。JSP技术比较简单,类似于ASP、PHP这些脚本语言。JSP的技术主要是由以下两个部分组成:

JSP的基本语法:两个注释、3个脚本元素、8个动作指令。

JSP的九大内置对象:request请求对象、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 HTML标签语言和JavaScript脚本语言的编写

HTML:超级文本标记语言是标准通用标记语言下的一个应用,也是一种规范,一种标准,它通过标记符号来标记要显示的网页中的各个部分。

Javascript是由Netscape公司创造的一种脚本语言。为便于推广,被定为javascript,但是javascript与java是两门不相干的语言,作用也不一样。作为一门独立的编程语言,javascript可以做很多的事情,但它最主流的应用还是在Web上——创建动态网页(即网页特效)。

7

基于MVC模式的新闻发布系统

提要:Javascript是学习脚本语言的首选。她兼容性好,绝大多数浏览器均支持Javascript,而且她功能强大,实现简单方便,入门简单,即使是程序设计新手也可以非常快速容易地使用JavaScript进行简单的编程。

3.3 开发框架MVC的概述

3.3.1 MVC模式简介

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用于组织代码用一种业务逻辑和数据显示分离的方法,这个方法的假设前提是如果业务逻辑被聚集到一个部件里面,而且界面和用户围绕数据的交互能被改进和个性化定制而不需要重新编写业务逻辑MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。MVC(模型Model-视图View-控制器Controller)是一种设计模式。

MVC模式作为系统的搭建框架,采用这种模式的好处是可以使每一层次的作用分工明确,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型(model)、视图(model)、控制器(controller)。本文采用的是JSP+Servlet+DAO三层模式来搭建整个框架。

8

基于MVC模式的新闻发布系统

3.3.2 MVC模式框架图

图2.1 MVC模式

http://wenku.http://www.wodefanwen.com//view/b5d4eb4733687e21af45a99e.html

9

基于MVC模式的新闻发布系统

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 会员信息表

10

基于MVC模式的新闻发布系统

字段名 usersId usersName usersPass usersEmail usersInfo 字段说明 会员Id 会员用户 会员密码 E-mail 信息 类型 int varchar varchar varchar text 长度 11 20 20 50 允许空值 否 否 是 是 是 备注 主键 4.2.3 文章信息表

文章信息表newsinfo包含着文章发表时候的全部信息,以及文章Id设为主键用于在查找文章时可以根据此标识来查找出文章的所有信息。同时还在表中设有管理员Id、文章分类Id作为外键,用于对管理员信息表、文章分类表进行关联。(如表4.3) 字段名 newsInfoId newsInfoTitle newsInfoDescribe newsInfoContent newsInfoTime newsAuthor adminId newsITypeId newsInfoState 字段说明 文章Id 文章标题 文章描述 文章内容 创建时间 文章作者 管理员Id 文章分类Id 表4.3 文章信息表 类型 长度 允许空值 int 11 否 varchar 100 是 text longtext datetime varchar int int int 40 11 11 11 是 是 是 是 是 是 是 备注 主键 外键 外键 4.2.4 评论信息表

评论信息表replys包含着会员评论时候的全部信息,以及评论Id设为主键用于在查找评论时可以根据此标识来查找出评论的所有信息。同时还在表中设有会员Id、文章Id作为外键,用于对会员信息表、文章信息表进行关联。(如表4.4)

表4.4 评论信息表

11

基于MVC模式的新闻发布系统

字段名 replytId replytContent replytTime usersId newsInfoleId 字段说明 评论Id 评论内容 评论时间 会员Id 文章Id 类型 int longtext datetime int int 长度 11 11 11 允许空值 否 是 是 是 是 备注 主键 外键 外键 4.2.5 文章频道表

文章频道表newstype主要是用于对文章的分类,管理员在发布新闻时需要对新闻进行分类存放到不同的频道,以便会员可以通过在查看文章频道来查找相关的文章。(如表4.5) 字段名 newsTypelId newsTypeName newsTypeDescripe 字段说明 频道Id 频道名 频道描述 表4.5 文章频道表 类型 长度 允许空值 int 11 否 varchar text 200 是 是 备注 主键 4.2.6 会员留言表

会员留言表leavemessage主要是包含会员留言内容,以及留言Id设为主键以便管理员可以通过留言Id来查找留言,有需要时候可进行删除管理,此表还包含有会员Id设为外键用于标识是哪位会员进行的留言。(如表4.6)

表4.6 会员留言表 字段名 字段说明 类型 长度 允许空值 leaveMessage留言Id int 11 否 Id leaveMessage留言内容 text 是 Content leaveMessage留言时间 datetime 是 Time userId 会员Id int 11 是 备注 主键 外键

12

基于MVC模式的新闻发布系统

4.3 数据关系ER图

ER图主要是用于显示出每个对象的属性以及每个对象之间的联系关系,对于从数据表结构到代码的实现有一定的指导作用。本次系统开发的ER图结构。(如图4.1)

4.1 ER图

13

基于MVC模式的新闻发布系统

5. 代码设计

5.1 系统开发准备工作

5.1.1 JSP文件的导入

在系统开发前我们需要先倒入本项目所需要的JSP模板,这里需要说明的是在一个实际的项目开发过程中会分为负责JSP界面设计的美编,以及负责JAVA软件开发的软件工程师。在本次设计中我们主要是完成软件设计部分的功能,所以开发前需导入一个JSP文件模板。

5.1.2 JDBC连接数据库

JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。(如图5.1)

如图 5.1 JDBC连接模型

由上图可知JDBC的作用是为数据库的连接提供可扩展的接口,当系统选择不同类型的数据库时,只需采用不同的驱动便可连接上不同的数据库。为系统提高更多的灵活性。

在本次系统开发前需编写一个JDBC连接池,当系统需要获取数据库数据时,只需创建一个数据库连接对象,便可与数据库获取连接,然后可以执行SQL语句对数据库

14

基于MVC模式的新闻发布系统

进行操作。

本次设计连接池的编写代码: package org.news.utils;

import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.LinkedList;

public class Pools { private final static String url = \; private final static String password = \; private final static String user = \; private static Connection con = null; private static LinkedList pools = new LinkedList(); static{ try { Class.forName(\); for(int i = 1 ; i <= 2 ; i++){ pools.addLast(getPoolsConnection()); } } catch (ClassNotFoundException e) { e.printStackTrace(); } } public static Connection getPoolsConnection(){ try { con = DriverManager.getConnection(url, user, password); } catch (SQLException e) { e.printStackTrace(); } return con; } public static Connection getPoolsConnectionSingle(){ con = pools.removeFirst(); return con ; } public static void freeConnection(Connection con) throws SQLException{ pools.addLast(con); } }

15

基于MVC模式的新闻发布系统

5.2 MVC模式实现过程

在本次设计中采用的是MVC模式作为系统的搭建框架,采用这种模式的好处是可以使每一层次的作用分工明确,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型(model)、视图(model)、控制器(controller)。本文采用的是JSP+Servlet+DAO三层模式来搭建整个框架。

JSP为view层,作为视图,用于在浏览器显示页面。Servlet为controller层,作为控制器,用于实现前台后台的业务数据交互以及逻辑设计。DAO为model层,作为模型用于从数据库获取数据,这里要指出DAO模式与传统的model层不同,它不仅承载数据,而且包含了内在的逻辑和操作。

本次设计的总体实现过程(如图:4.2)。

View1: 发送请求2: doPost3: doGet4: 调用Service5: 调用Dao6: 7: 从Model中获取数据8: 9: 10: 响应请求ServletServiceDaoModel

图4.2 实现过程

5.3系统功能具体实现思想

在系统运行时会涉及到一个通过浏览器对网页的操作,而后产生一系列的请求通过底层代码去调用所需的数据去完成对每个请求的响应的过程。在本系统中这一个过程凡是涉及到与数据库交互数据时都会按照MVC模式流程来完成。这也就使每一层都必须清楚自己所负责的功能。

在本系统的设计过程中我以先后顺序为:model,DAO,Servlet,JSP的分层顺序搭建起MVC模式。然后在数据库中完成增、删、改查等功能。下面我以某些关键功能的

16

基于MVC模式的新闻发布系统

例子来说明系统的实现思想。

5.3.1 对信息的批量删除

我们以文章的批量删除为例,其他的删除功能,以及单条记录的删除可以仿照此例实现。

(1)model的建立,我们首先把文章的所有所有属性封装在一个类里面,类名为newsInfo。这个类的属性是与数据库中的表的内容相匹配的,其中类中的Id可以做为该类的对象的索引,此外model中除了拥有属性外还包含了get、set方法用于获取和设置该类对象的属性。

(2)DAO层,该层主要是负责逻辑操作以及与数据库的数据交互,所以首先要创建数据库连接对象,与数据库连接。因为要实现删除功能,所以在DAO层中就定义了一个删除的方法,以批量删除为例,因为为批量删除,所以需要用数组对传来需删除的Id数据进行接收,然后返回boolean类型进行判断,实现代码如下:

}

(3)Servlet层,本层的作用在于从前台网页获取参数再调用DAO层中所提供的方法进行逻辑操作,然后操作结果返回前台网页。需要说明的是在Servlet中存在着几个

public boolean deleteNewsInfo(int[] newsInfoIds) {

boolean b = false;

sql = \; con = DB_UTILS.getConnection(); try { } return b;

pstmt = con.prepareStatement(sql); for (int i = 0; i < newsInfoIds.length; i++) { }

e.printStackTrace();

DB_UTILS.close(con, pstmt, rs);

pstmt.setInt(1, newsInfoIds[i]); int j = pstmt.executeUpdate(); if (j > 0) { }

b = true;

} catch (SQLException e) { } finally {

17

基于MVC模式的新闻发布系统

域可以存放数据与前台网页进行交流。其中常用的域有request域和session域。request域所存放的内容在一个请求过程中会一直存在,当请求结束或重定向后域中的内容会被才被释放。而session域则会在整个会话中存在只有关闭浏览器后才会消失。在本例中批量删除的实现代码如下:

(4)JSP层,在这层中与Servlet层有着相同的域来存放参数和内容彼此进行交互。JSP层的作用主要是在HTML网页页面设计的基础上添加了可以实现编写JAVA代码的功能,同时也能插入javascript脚本,通过该脚本可以编写方法各种功能,在事件促发后可调用该方法完成操作。在本例中因为要将所需删除的Id传给Servlet层,所以要使用一个for循环进行遍历,将所有的遍历出来的Id以及告诉Servlet所需执行的方法的参数op形成一个字符串传递出去。实现代码如下:

function dels(){

}

HttpServletResponse response) throws ServletException, IOException {

public boolean deleteNewsInfoService(HttpServletRequest request,

String[] newsInfo = request.getParameterValues(\int[] newsInfoIds = new int[newsInfo.length]; for (int i = 0; i < newsInfoIds.length; i++) { }

boolean b = News_NewsType_Factory.instance_News_NewsType_Factory()

.getNewsDAO().deleteNewsInfo(newsInfoIds);

return b;

newsInfoIds[i] = Integer.parseInt(newsInfo[i]);

alert(\确定全部删除吗?\);

//获取所有checkbox对象

var checkBoxs = document.getElementsByName(\); var url=\; //获取被选中的checkbox

for(var i=0;i

if(checkBoxs[i].checked){ }

18

url = url+\+checkBoxs[i].value; checkBoxs[i].checked = false;

}else{

基于MVC模式的新闻发布系统

}

}

window.location = url;

如此一来,一个批量删除的功能就能通过前台网页JSP页面获取删除操作经过Servlet层、DAO层对数据库中的文章进行删除。

5.3.2 对信息的修改

我们以文章的修改为例,其他的修改、添加、注册、登陆功能的实现可以仿照该例来实现。需要说明的是添加和注册操作需要用到SQL语言的插入操作,登陆用到SQL语言的查找验证操作。而修改需要先从数据库中查找出来再进行插入更新。所以选用文章修改为例供大家参考。

(1)model的建立,此处的model其实与上一例中的文章删除所建的model相同。 (2)DAO层,因为要实现修改功能,所以在DAO层中就定义了查询文章信息的方法,以及一个插入文章信息的方法,同样首先要创建数据库连接对象,与数据库连接。实现代码如下:

// 通过新闻Id查询文章内容

public NewsInfo searchNewsInfo(int newsInfoId) { sql = \; con = DB_UTILS.getConnection(); NewsInfo newsInfo = null; try { pstmt = con.prepareStatement(sql); pstmt.setInt(1, newsInfoId); rs = pstmt.executeQuery(); if (rs.next()) { String newsInfoTitle = rs.getString(\); String newsInfoDescribe = rs.getString(\); String newsInfoTime = rs.getString(\); String newsAuthor = rs.getString(\); String newsInfoContent = rs.getString(\); int adminId = rs.getInt(\); int newsTypeId = rs.getInt(\); int newsInfoState = rs.getInt(\); newsInfo = new NewsInfo(newsInfoId, newsInfoTitle, newsInfoDescribe, newsInfoContent, newsInfoTime, newsAuthor, adminId, newsTypeId, newsInfoState); }

19

基于MVC模式的新闻发布系统

} catch (SQLException e) { e.printStackTrace(); } finally {

DB_UTILS.close(con, pstmt, rs); }

return newsInfo;

}

// 修改文章信息

public NewsInfo updateNewsInformation(NewsInfo newsInfo) {

con = DB_UTILS.getConnection(); sql

=

\

newsInfo

set

newsInfoTitle

=

?

,newsInfoDescribe

= ?,newsInfoContent = ?,\

+ \= ?,newsAuthor = ?,adminId = ? , newsTypeId

= ? ,newsInfoState = ? where newsInfoId = ?\;

try {

pstmt = con.prepareStatement(sql);

String newsInfoTitle = newsInfo.getNewsInfoTitle(); String newsInfoDescribe = newsInfo.getNewsInfoDescribe(); String newsInfoContent = newsInfo.getNewsInfoContent(); String newsInfoTime = newsInfo.getNewsInfoTime(); String newsAuthor = newsInfo.getNewsAuthor(); int adminId = newsInfo.getAdminId(); int newsTypeId = newsInfo.getNewsTypeId(); int newsInfoId = newsInfo.getNewsInfoId(); int newsInfoState = newsInfo.getNewsInfoState(); pstmt.setString(1, newsInfoTitle); pstmt.setString(2, newsInfoDescribe); pstmt.setString(3, newsInfoContent); pstmt.setString(4, newsInfoTime); pstmt.setString(5, newsAuthor); pstmt.setInt(6, adminId); pstmt.setInt(7, newsTypeId); pstmt.setInt(8, newsInfoState); pstmt.setInt(9, newsInfoId);

20

基于MVC模式的新闻发布系统

}

}

int i = pstmt.executeUpdate(); if (i == 0) { }

e.printStackTrace();

DB_UTILS.close(con, pstmt, rs);

newsInfo = null;

} catch (SQLException e) { } finally {

return newsInfo;

(3)Servlet/JSP层,同样是通过域中传过来的参数获取操作数,然后调用DAO的方法,完成操作回复响应。

如此一来,一个文章修改的功能就能通过前台网页JSP页面获取删除操作经过Servlet层、DAO层对数据库中的文章进行修改。

6. 系统调试

6.1前台页面调试

新闻发布系统有两种用户:会员用户(包含游客)和管理员,分别有不同的权限,但都是从同一界面登陆,此系统首页采用DIV+CSS框架,使得页面看起来美观舒适。能自动获取系统当前时间,展示新闻列表内容和广告等信息。

用户只要在浏览器地址栏输入改项目的地址,即可访问该系统的相关信息;需要说明的是:因为该系统并未真正发布成正规的网站,只是将项目部署到了Tomcat服务器上面;其他机子需要访问必须在同一个局域网中访问,在浏览器地址栏中输入:http://服务器机子地址:8080/news_all/ 既可访问项目。

21

基于MVC模式的新闻发布系统

图6.1 前台首页

在前台首页中点击“时事”模块,系统则显示“时事”模块下所有新闻内容(如图6.2)

22

基于MVC模式的新闻发布系统

在前台首页右边栏点击注册图标跳转到用户页面会员注册页面填写玩注册信息点击提交按钮可完成注册(如图6.2),注册成功返回前台首页。

图6.3 会员注册页面

6.2 后台管理员页面调试

在前台页面点击管理员登录按钮后,完成登录验证后就能进入管理员操作界面(如图6.4)。

23

基于MVC模式的新闻发布系统

图6.4管理员操作界面

在管理员界面中点击左边栏添加文章操作可以跳转到添加文章页面(如图6.5)可以添加文章成功后可以在将新闻发布到前台页面,可供用户访问。

图6.5

添加文章

在管理员界面中点击左边栏“查看/修改文章”操作在右边栏显示文章修改页面(如图6.6),在此页面中选定右边栏的“全选”按键,可以对文章进行全选操作,然后点击“删除”按键可以实现批量删除功能。

24

基于MVC模式的新闻发布系统

图6.6 文章修改

在文章修改页面中右栏点击“修改”按键可以进入修改文章信息页面(如图6.7),点击“提交”按钮可以对文章进行修改。

图6.7 修改文章信息

25

基于MVC模式的新闻发布系统

结束语

本次课程设计到此终于告一段落,从对需求分析到数据库的设计再到开发过程的详

细设计,一步一步把每一个需求功能实现。这个过程经历了几个月的努力,自己在整个过程中学习到了非常多的新知识,如HTML,JSP,CSS,JavaScript脚本等的前台开发工具和技术,以及后台的MVC框架的搭建,对JAVA基础从零学起,这一整个流程下来,使自己对Web开发才有一个初步的体会,算是刚入门而已。然而后续还有不少的知识可以继续学习,有许多的功能可以优化,可以添加,可以完善。

在系统的开发过程中,也应用上了许多曾经学过的课程,如数据库原理、面向对象程序设计等。同时也感觉到这几门理论课程的重要性,虽然大学所学知识很广泛,有不少科目可能都会用不上,但是学过的科目当我们重新捡起来的时候会觉得有额外的收获。

总的来说此次课程设计让我受益匪浅,巩固了旧知识,学习了新知识,最重要的是学到了学习的方法。其实很多东西看起来很难,似乎现在的阶段无法完成,但是只有你去尝试了才会知道自己是可以完成的。

26

基于MVC模式的新闻发布系统

致 谢

在这一刻,我心里突然有种说不出的感触,转眼间大学四年已接近尾声,回想起曾经的往事,那些在校园里曾经发生的事情,曾经帮助过你的老师和学生,会让你有种说不出的不舍。经过此次毕业设计,会让你更加感觉到身边的同学和老师是多么的亲切,他们的帮助和批评,对你又是怎样的一种鼓励,让你在遇到问题时又是怎样克服过来的。陈艳老师辛勤的督促和不愿其烦的审阅着重复的毕业论文,使作为学生的我们不得不痛下苦功,努力改进。

此次的毕业设计使我学到了很多知识,从零基础的我,蹦着对于网页开发的兴趣,硬着头皮去学习了JAVA言语,以及许多有关web项目开发所需的知识,然后才勉勉强强的完成了此次设计。我觉得这些东西对我以后想往这一行业发展有着非常关键的作用,自己还需不断的努力学习。

27

基于MVC模式的新闻发布系统

参考文献

[1] 孙卫琴,李洪成 著 《Tomcat 与 JSP Web 开发技术详解》 电子工业出版社 [2] 耿祥义,张跃平 著 《JSP实用教程》 清华大学出版社

[3] Cay S。Horstomann ,Gary Cornell著 《JAVA 核心技术》 机械工业出版社 [4] 刘晓华,张健,周慧贞 著 《JSP 应用开发详解》 电子工业出版社 [5] 赫尔德尔 著 《Ajax 权威指南》 工业电子出版社

[6] (美国等)希尔伯沙茨 著 《数据库系统概念》第五版 机械工业出版社 [7] 杨学全 著《JSP编程技术》 第一版 清华大学出版社

[8] 邱加永,卞志城,郑经煜 著 《软件开发JSP》 第一版 清华大学出版社 [9] 刘莹,蔡锦成 著 《SQL Server数据库应用教程》第一版 清华大学出版社 [10] 李刚 著 《疯狂java讲义》电子工业出版社

28

本文来源:https://www.bwwdw.com/article/rr1r.html

Top