基于MVC模式的新闻发布系统
2014-11-05史瑾
史 瑾
(山西运城农业职业技术学院,山西运城044000)
数字信息时代使人们的交流方式发生了很大的变化,新闻发布系统又名信息发布系统,是一个以计算机网络平台构建起来的新闻发布系统,它可以对网络上所有的信息进行管理分类,还能系统化,标准化的发布到网站上的一种网站应用程序,网站信息通过一个简单的界面加入数据,然后通过已有的网页模板格式与审核流程发布到网站上。
1 总体设计方案
1.1 开发工具的选用和介绍
1.1.1 JDK 环境
JDK环境,是Java系统编译运行时必须配置的环境,在此环境下Java代码才能够执行出结果,在本次设计中我们选用的Tomcat服务器的配置也必须在配置好JDK环境之后才能运行,本次设计我们选用了1.6的版本进行开发。
1.1.2 MySQL
MySQL数据库管理系统是用于关联数据库并将数据保存到所创建的表中,在设计中涉及到数据的存储过程,必须要有数据库管理系统来进行管理[1]。目前来说MySQL一般比价适用于中小型企业的,本次设计数据非常有限所以选择MySQL。
1.1.3 WEB 服务器 Tomcat
Tomcat是Apache底下的一个项目,它拥有免费、开放源码的特点因此Tomcat成为许多程序开发、调试时所选择的服务器,在设计过程中主要使用它来进行程序调试。同时在本次设计中需要用到JSP和Servlet技术,Tomcat对于这些技术也兼容,它成为了我对服务器选择的首选[2]。
在本系统中选用稳定版本Tomcat6.0进行开发。
1.1.4 集成开发工具MyEclipse
目前最流行的Java集成开发工具。MyEclipse主要的属性有快速的性能、重构性能、快速修复错误、调整组织导入包、弹出窗口进行代码自动装配并且它能够很好地与MySQL、Tomcat进行集成。
本系统中我们选用MyEclipse8.6。
1.1.5 Dreamweaver CS5
Adobe Dreamweaver CS5是一款集网页制作和管理网站于一身的所见即所得网页编辑器,Dreamweaver CS5是第一套针对专业网页设计师特别发展的视觉化网页开发工具。
1.2 开发技术的介绍
1.2.1 JSP 页面技术
JSP产生于Servlet之后,主要是为了解决Servlet中输出HTML代码效率低的问题而产生的。JSP的技术主要是由以下两个部分组成:
JSP的基本语法:两个注释、3个脚本元素、8个动作指令。
JSP的九大内置对象:request请求对象、response响应对象、pageContext页面上下文对象、session会话对象、application应用程序对象、out输出对象、config配置对象、page页面对象和exception例外对象[3]。
1.2.2 Servlet技术
Servlet产生于JSP技术之前,它最大的特点就是基于线程
Servlet是MVC开发的技术,所有基于J2EE的MVC框架都离不开Servlet。通常Servlet用于进行系统的初始化、服务拦截、过滤等。
1.2.3 HTML标签语言和JavaScript脚本语言的编写
HTML:超级文本标记语言是标准通用标记语言下的一个应用,它通过标记符号来标记要显示的网页中的各个部分。
Javascript是由Netscape公司创造的一种脚本语言。被定为javascript,但是javascript与java是两门不相干的语言,作用也不一样。作为一门独立的编程语言,javascript可以做很多的事情,但它最主流的应用还是在Web上——创建动态网页[4]。
1.3 开发框架MVC的概述
MVC模式作为系统的搭建框架,采用这种模式的好处是可以使每一层次的作用分工明确,它强制性的使应用程序的输入、处理和输出分开[5]。使用MVC应用程序被分成三个核心部件:模型(model)、视图(model)、控制器(controller)。本文采用的是JSP+Servlet+DAO三层模式来搭建整个框架。
图1 MVC模式
2 详细设计与实现
2.1 系统开发准备工作
2.1.1 JSP 文件的导入
系统开发前我们需要先倒入本项目所需要的JSP模板,需要说明的是在一个实际的项目开发过程中会分为负责JSP界面设计的美编,以及负责JAVA软件开发的软件工程师。在本次设计中我们主要是完成软件设计部分的功能,所以开发前需导入一个JSP文件模板。
2.1.2 JDBC 连接数据库
JDBC是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。(如图2)
图2 JDBC连接数据库
由上图可知JDBC的作用是为数据库的连接提供可扩展的接口,当系统选择不同类型的数据库时,只需采用不同的驱动便可连接上不同的数据库[6]。
在本次系统开发前需编写一个JDBC连接池,当系统需要获取数据库数据时,只需创建一个数据库连接对象,便可与数据库获取连接,然后可以执行SQL语句对数据库进行操作。
2.2 MVC模式实现过程
设计中采用的是MVC模式作为系统的搭建框架,使用MVC应用程序被分成三个核心部件:模型(model)、视图(model)、控制器(controller)。本文采用的是JSP+Servlet+DAO三层模式来搭建整个框架。
JSP为view层,用于在浏览器显示页面。Servlet为controller层,作为控制器,用于实现前台后台的业务数据交互以及逻辑设计。DAO为model层,作为模型用于从数据库获取数据,这里要指出DAO模式与传统的model层不同,它不仅承载数据,而且包含了内在的逻辑和操作[7]。本次设计的总体实现过程(图3)。
图3 实现过程
2.3 系统功能具体实现思想
在本系统的设计过程中我以先后顺序为:model,DAO,Servlet,JSP 的分层顺序搭建起 MVC 模式。然后在数据库中完成增、删、改查等功能。下面我以某些关键功能的例子来说明系统的实现思想。
2.3.1 对信息的批量删除
我们以文章的批量删除为例,其他的删除功能,以及单条记录的删除可以仿照此例实现。
①model的建立,首先把文章的所有所有属性封装在一个类里面,类名为newsInfo。这个类的属性是与数据库中的表的内容相匹配的,其中类中的Id可以做为该类的对象的索引,此外model中除了拥有属性外还包含了get、set方法用于获取和设置该类对象的属性。
②DAO层,该层主要是负责逻辑操作以及与数据库的数据交互,首先要创建数据库连接对象,与数据库连接。因为要实现删除功能,所以在DAO层中就定义了一个删除的方法,以批量删除为例,因为批量删除,所以需要用数组对传来需删除的Id数据进行接收,然后返回boolean类型进行判断,
Servlet层,本层的作用在于从前台网页获取参数再调用DAO层中所提供的方法进行逻辑操作,然后操作结果返回前台网页。需要说明的是在Servlet中存在着几个域可以存放数据与前台网页进行交流。其中常用的域有request域和 session域。request域所存放的内容在一个请求过程中会一直存在,当请求结束或重定向后域中的内容才会被释放。而session域则会在整个会话中存在只有关闭浏览器后才会消失。
③JSP层,在这层中与Servlet层有着相同的域来存放参数和内容彼此进行交互。JSP层的作用主要是在HTML网页页面设计的基础上添加了可以实现编写JAVA代码的功能,同时也能插入javascript脚本,通过该脚本可以编写方法各种功能,在事件促发后可调用该方法完成操作。在本例中因为要将所需删除的Id传给Servlet层,所以要使用一个for循环进行遍历,将所有的遍历出来的Id以及告诉Servlet所需执行的方法的参数op形成一个字符串传递出去。实现代码如下:
功能就能通过前台网页JSP页面获取删除操作经过Servlet层、DAO层对数据库中的文章进行删除[9]。
2.3.2 对信息的修改
我们以文章的修改为例,其他的修改、添加、注册、登陆功能的实现可以仿照该例来实现。需要说明的是添加和注册操作需要用到SQL语言的插入操作,登陆用到SQL语言的查找验证操作。而修改需要先从数据库中查找出来再进行插入更新。
①model的建立,此处的model其实与上一例中的文章删除所建的model相同。
②DAO层,因为要实现修改功能,所以在DAO层中就定义了查询文章信息的方法,以及一个插入文章信息的方法,同样首先要创建数据库连接对象,与数据库连接。
③Servlet/JSP层,同样是通过域中传过来的参数获取操作数,然后调用DAO的方法,完成操作回复响应。
如此一来,一个文章修改的功能就能通过前台网页JSP页面获取删除操作经过Servlet层、DAO层对数据库中的文章进行修改[10]。
[1]孙卫琴,李洪成.Tomcat与 JSP Web开发技术详解[M].北京:电子工业出版社,2011:102-108.
[2]耿祥义,张跃平.JSP实用教程[M].北京:清华大学出版社,2009:74-76.
[3]Cay S·Horstomann ,Gary Cornell.JAVA 核心技术[M].北京:机械工业出版社,2010:23-26.
[4]刘晓华,张健,周慧贞.JSP应用开发详解[M].北京:电子工业出版社,2013:40-46.
[5]赫尔德尔.Ajax权威指南[M].北京:工业电子出版社,2003:98-103.
[6]美国希尔伯沙茨.数据库系统概念(第五版)[M].北京:机械工业出版社,2012:102-108.
[7]杨学全.JSP编程技术(第一版)[M].北京:清华大学出版社,2009:36-39.
[8]邱加永,卞志城,郑经煜.软件开发JSP(第一版)[M].北京:清华大学出版社,2012:88-103.
[9]刘莹,蔡锦成.SQL Server数据库应用教程(第一版)[M].北京:清华大学出版社,2012:47-51.
[10]李刚.疯狂java讲义[M].北京:电子工业出版社,2008:66-72.