WEB课程设计报告

WEB课程设计报告
WEB课程设计报告

第一章需求分析

随着网络的飞速发展和普及,越来越多的用户习惯上网浏览新闻。本系统的主要目的就是为用户提供一个方便、及时的网上新闻发布、浏览平台。利用本系统,用户可以直接在网上发布新闻信息并根据自己的需要对新闻进行浏览、检索、增加、或修改。本系统遵循软件工程标准,并按照软件工程规定的流程进行项目的开发。

安全需求

由于使用JSP编写的程序代码隐蔽,在客户端仅可以看到由JSP输出的动态HTML 文件,因此只要编写程序时注意严谨性,防止SQL注入和cookies欺骗,整个系统的安全就能得到保障,同时也能防止别人抄袭源代码。本系统的管理员可以有多名,为防止暴力猜解密码,在设计后台登陆模块时需考虑验证码的设计。使用为系统地发布平台,发布方便,安全可靠性比较高。

性能需求

Tomacat可以免安装,体积小,运行效率高。能很方便的在Windows和Linux系统下发布。同时使用数据库,安装方便,而且免费使用,MySql在Windows XP以及Linux下都能被良好的支持。而JSP不但可以用Eclipse,也可以用Dreamweaver编辑,甚至记事本等文本编辑工具即可编写,因此对系统运行环境非常低,小型服务器和家用电脑均可作为本系统运行环境。

功能需求

本新闻发布系统将实现以下几个功能

(1)查看新闻功能:

任何用户均可以使用查看新闻功能。查看新闻功能在首页显示最新新闻,用户

可点击文章标题查看新闻的详细内容,可以点击新闻的类别进入分类列表。

(2)站内新闻检索功能:

任何用户均可以使用新闻搜索功能。在新闻查看页面上,用户可以通过在单选按钮中选择检索方式,如新闻标题,关键字,或者正文,然后输入检索条件搜索符合新闻。这里提供的是模糊搜索功能,即只要在查询字段只能感包含用户输入的关键内容就认为是符合查询条件的记录。查询结果同样以分页的方式显示。

(3)新闻点击率统计:

通过计数器对用户对新闻的点击进行统计,实时显示新闻的点击率。

(4)管理员登录功能:

当用户需要使用新闻管理功能时,需要先以管理员身份登录系统。在地址栏中输入管理员登录页面的地址,进入管理员登录页面。用户在登录页面输入用户名和密码以及随机产生的验证码,若登录失败,则清空输入,并简要显示错误原因,管理员登录页面等待下一次登录。

(5)新闻类别管理:

管理员登录后,可以对新闻的类别进行添加修改删除操作。

(6)新闻发布功能:

获得权限的用户可以使用发布新闻功能。用户通过在系统菜单栏上单击“添加新闻”项可以进入发布新闻页面。发布新闻时,需要填写新闻的标题和内容,发布时间取当前系统时间,不需要用户填写。

(7)新闻管理功能:

当用户作为管理员登录系统后,可以进行新闻管理操作,包括对现有新闻的修改和删除。在管理页面上,用户可以通过单击每条记录右侧的“编辑”和“删除”超链接来进行操作。当管理员的本次维护工作结束后,可通过单击“退出”超链接来注销管理员身份。

(8)评论功能:

任何用户在输入标题和个人名称后可对新闻进行评论,用户可以查看所有评论,管理员可以查看和删除评论。

第二章系统开发模式及技术

JSP简介

JSP(Java Server Pages)是一种建立在Servlet规范提供的功能之上的动态网页技术,和ASP类似,他们都是在通常的网页中嵌入脚本代码,JSP文件中嵌入的是Java代码和JSP标记。用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。

JSP的特点

JSP技术在多个方面加速了动态Web页面的开发,具有以下特点。

(1) 将内容的生成和显示进行分离

使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求来变化的,例如请求帐户信息或者特定的一瓶酒的价格)。

(2) 强调可重用的组件

绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者EnterpriseJavaBeansTM组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。

(3) 采用标识简化页面开发

Web页面开发人员不会都是熟悉脚本语言的编程人员。JavaServerPage技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。

(4) 健壮性与安全性

由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译为JavaServlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理与安全性.

(5) 良好的移植性:

作为Java平台的一部分,JSP拥有Java编程语言"一次编写,隋处运行"的特点。

(6) 企业级的扩展性和性能:

当与Java2平台、企业版(J2ee)和EnterpriseJavaBeans技术整合时,JSP页面将服务器JSP页面中的程序代码的识别就是依靠一些基本指令完成.

JSP技术

JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。

访问WEB数据库常见技术

目前在WINDOWS环境下有多种访问WEB数据库的技术,主要有:

(1) 公共网关接口CGI(Common Gateway Interface)

CGI是较早实现的技术。适用于多种服务器平台,如UNIX、WINDOWS等,但CGI 的开发成本高、维护困难、功能有限、不具备事务处理功能、占用服务器资源较多。

(2) INTERNET数据库连接器IDC(Internet Database Connector)。

IDC集成在ISAPI(Internet Server API)中,充分利用了DLL技术,易扩充,但编程较CGI更为复杂,只适用于小型数据库系统。

(3) 先进数据库连接器ADC(Advance Database Connector)

ADC提供了ActiveX Control来访问数据库,它的主要特点是数据查询由用户端浏览器执行,因而需将服务器端数据库中的部分记录下载到用户端,系统开销较大、响应慢,只适用于特别频繁的数据库查询操作。

(4) JAVA/JDBC语言编程

JAVA语言是一种面向对象、易移植、多线程控制的语言,可通过JDBC去连接数据库。用JAVA/JDBC编写的软件可移植性强,适用于多种操作系统,但其执行效率和执行速度还不理想,目前无法建立高效、高速的应用。

(5) 动态服务器页面JSP(Active Server Page)

JSP是微软公司推出的WEB应用开发技术,着重于处理动态网页和WEB数据库的开发,编程灵活、简洁,具有较高的性能,是目前访问WEB数据库的非常好的选择。

本系统采用的数据库访问技术

本新闻发布系统使用JDBC访问MySql数据库,JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序,同时,JDBC也是个商标名。

有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC 结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。

Java数据库连接体系结构是用于Java应用程序连接数据库的标准方法。JDBC 对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。JDBC使用已有的SQL标准并支持与其它数据库连接标准,如ODBC之间的桥接。JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。访问并操纵数据库服务器中的数据。

JDBC由JSP技术支持,其数据库访问模型如下图所示。

图2-1 采用JDBC 技术实现数据库访问模型

B/S 开发模式

B/S 结构,即Browser/Server--浏览器/服务器结构,浏览器发送请求而服务器应答请求。其工作原理如下

图2-2 B/S 结构的三层模型

前台通过IE 、Firefox 等浏览器向Web 服务器发送HTTP 请求,web 服务器通过JSP 和一些中间件访问后台数据库,并将操作的结果以HTML 页面的形式返回给前端的浏览器。比与C/S 模式,采用B/S 模式用户的操作更加简单,不像C/S 需要在客户端进行客户端程序,只需要一个通用浏览器即可完成数据的请求与接收,大幅的减少了客户端的维护工作。同时,B/S 模式使用的技术是Internet 的Web 技术,因而更适合

浏览器

WEB 服务器

数据库服务器

SQL 数据请求

返回结果

Web 请求 返回HTML

于网上的信息发布。

第三章总体设计

因为网络中新闻发布的频率非常高,如果没有一个高效的新闻发布管理系统,则维护工作将非常繁琐,浪费很多时间和精力。通过使用新闻发布系统,管理员只需设置标题、内容和图片等新闻,系统将自动生成对应的网页,使新闻发布和管理变得很轻松。而对于前台界面,为适应多个用户的需求,必须达到友好,方便,简洁,易用的特点。本文将根据前期的需求分析,对新闻发布系统进行总体设计。

系统功能描述

新闻发布系统包括新闻类别管理、新闻发布管理、新闻搜索、留言评论管理等模块。具体描述如下:

(1)新闻类别管理:

a.新闻类别的添加;

b.新闻类别的修改;

c.新闻类别的删除;

(2)新闻发布管理:

a.基本新闻信息的发布,包括新闻标题、新闻内容等;

b.基本新闻信息的修改;

c.基本新闻信息的删除;

(3)新闻统计模块

a.对点击次数的统计

b.根据点击次数排除点击排行榜

c.根据发布时间的先后时间排出最新文章

(4)新闻搜索模块:

a.按照新闻标题搜索; -

b.按照新闻内容搜索。

c.搜索结果的显示

(5)评论管理模块:

a.网友发表评论、留言;

b.对留言的过滤

c.管理员对留言的管理

E-R模型

根据分析可划分出新闻信息、新闻类别信息、评论信息和用户信息和几个实体,其具体的E-R模型如下

(1)新闻信息

图3-1 新闻信息实体的E-R模型

(2)评论信息

图3-2 评论信息实体的E-R模型用户信息

(3)

(4

(5)ER关系图

图3-5 ER关系模型图

系统流程图

图3-6 系统的基本流程

任何用户从浏览器输入地址进入本新闻发布系统后首先进入新闻主界面,即可进行新闻的查看,根据标题或内容进行新闻的搜索,以及进入评论页面进行新闻的评论。输入管理员登录页面的地址,进入登录页面,用户输入用户名和密码以及正确的验证码后可进入后台管理,有新闻的发布,新闻的管理,新闻类别的管理,新闻评论的管理等。断开与服务器的连接即退出本新闻系统。

数据流图

(1)前台数据流图

图3-7 前台的数据流图

数据库中有两个表用于前台的数据的存放,新闻信息表newsinfo中存放新闻的内容,标题,点击量等数据,通过各种命令与前台进行数据交换。留言信息表存放用户的留言。

(2)后台数据流图

图3-8 后台数据

流图

系统功能模块划分

从功能描述的内容可以看到,本系统可以实现五个完整的功能。根据这些功能,设计出系统的功能模块,如下图所示。

图3-9 新闻发布总体系统功能模块示意图数据库设计

本系统采用MySql数据库,在数据库中使用数据表article来储存现有的新闻信息。表的结构如表

表3-1 新闻信息表newsinfo

使用数据表users来储存管理员的信息,表的结构如下表

表3-2 管理员信息表users

使用数据表comment来储存新闻评论信息,表的结构如下表

表3-3 新闻评论comment

使用数据表classes来储存新闻类别信息,表的结构如下表

表3-4 新闻类别信息名称classes

第四章详细设计

前台系统

4.1.1 新闻的查看

主页面如下图

图4-1 系统主页界面效果

任何用户在浏览器输入网址后进入本站界面,即可查看新闻标题及发布时间,新闻的评论、新闻的点击率等,单击任意一条新闻标题即可查看新闻内容。

图4-2 新闻内容界面效果显示一条新闻的主要代码为:

<%

("gbk");

SearchNews sh = new SearchNews();

News n=(1);

if(n != null)

{

%>

<% ()); %>

<% ()); %>

<% ()); %>

<% ()); %>

<% ()); %>

<% ())); %>

<% ()); %>

<% ()); %>

<% ()); %>

<% ()); %>

<% } %>

<%()); %>

<% if()!=0) { %>

评论

<% ()); %> 条>>

<% } else { %> 评论

<% ()); %> 条>> <% } %>


我要留言:

4.1.2 评论功能的实现

评论管理的数据流图如下

图4-3 评论管理数据流图

评论与浏览页面:

图4-4 评论浏览添加评论页面

评论实现的事务处理相关代码:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

etU ser(username);

相关主题
相关文档
最新文档