当前位置:文档之家› 面向对象的系统分析与设计大学论文

面向对象的系统分析与设计大学论文

面向对象的系统分析与设计大学论文
面向对象的系统分析与设计大学论文

河北农业大学

本科毕业论文(设计)

题目:面向对象的系统分析与设计

摘要

为了方便信息的交流,在结合动态服务网页(JSP)和MYSQL 技术之下开发了这个快截、界面友好的网上交流系统。论坛使用动态服务网页(JSP)技术建设论坛的骨干框架,使用MYSQL制作系统的数据库,实现了一个功能相对齐全的论坛系统。除了提供基本的看帖子,发帖子,回帖子,搜帖子的功能,针对管理员用户系统还提供了用户管理的操作。目的是基于现实,为用户提供一个模拟的网上交流环境。为方便大家的沟通交流,丰富人们的娱乐文化生活。

在论文的篇章上,本论文从系统分析,系统整体设计,数据库设计与现实几个方面对系统的开发过程作了详细的介绍,旨在全面地呈现系统由最初设计到最终定型的各个阶段,便于大家对系统有一个更好的把握和认识。各个功能版块的展示也包含在其中,能过直观地看到系统运行后的演示效果,其中夹杂着部分主要代码的辅助说明,便于从底层查看系统的最终实现。

关键词:动态服务网页;论坛;用户管理

Abstract

In order to facilitate people information the exchange, in unified JSP and MYSQL under the server technology has developed this quick truncation, the contact surface friendly system. The system use the JSP technology construction the main frame, use MYSQL as the systems database, realized a forum system which function relatively completely, the net friend has been possible freely to propose the question as well as helped other people to solve the problem, or exchange experience.

This forum function is complete, everyone may freely express his viewpoint in here and express the opinion to the subject, we also may promptly solve to net friend's question, and gain the useful knowledge from there. This forum also has some special functions, for example the power search function.

Keywords:Java Server Pages; BBS; user management

目录

1 系统技术及运行环境...................................................................... IV

1.1 JSP技术简介...................................................................... IV

1.2 JAVABEAN技术简介................................................................. IV

1.3 JDBC技术简介..................................................................... IV

1.4 TOMCAT技术简介.................................................................... V

1.5运行环境........................................................................... V

2 需求分析 ................................................................................ V

2.1 编写目的 .......................................................................... V

2.2 任务目标 ......................................................................... VI

2.2.1基本性能.................................................................... VI

2.2.2开发目标.................................................................... VI

2.2.3 应用目标................................................................... VI

2.3选择编程语言...................................................................... VI

2.3.1 JSP与ASP的比较............................................................ VI

2.3.2 JSP的特点与优点........................................................... VII 3系统设计.............................................................................. VIII

3.1系统设计思想.................................................................... VIII

3.1.1 网上论坛系统说明 ......................................................... VIII

3.1.2 网上论坛系统总体分析 ..................................................... VIII

3.2 数据库设计思想 ................................................................... IX

3.3 各单元模块设计 .................................................................... X

3.3.1用户注册登陆功能............................................................. X

3.3.2会员发贴与回复功能.......................................................... XI

3.3.3管理员管理帖子与用户管理功能............................................... XII

4 编码实现 ............................................................................. XIII

4.1 功能总体说明 ................................................................... XIII

4.1.1 功能总体说明............................................................. XIII

4.1.2主要功能流程.............................................................. XIII

4.2各个功能模块的实现............................................................... XIV

4.2.1数据库的连接............................................................... XIV

4.2.2用户登陆与注册模块的实现.................................................... XV

4.2.3分页显示的功能实现......................................................... XIX

4.2.4 发表与回复功能模块实现 ..................................................... XX

4.2.5后台管理模块的实现........................................................ XXII

5 系统测试................................................................. XXV

总结 .............................................................................. XXVI 致谢 (30)

参考文献 .......................................................................... XXVII

基于JSP的BBS论坛管理系统

1 系统技术及运行环境

1.1 JSP技术简介

JSP是服务器端的脚本语言,是以SERVLET为基础开发而生成的动态网页生成技术,它的底层实现是JAVA SERVLET。

JSP(JAVA SERVER PAGES)由HTML代码和潜入其中的JAVA代码所组成。服务器在页面被客户端请求后对这些代码进行处理,然后将生产的HTML页面返回客户端的浏览器。

JSP的特点是面向对象、跨平台、和SERVLET一样稳定、可以使用SERVLET提供的API,同时克服了SERVLET的缺点。

在使用JSP时一般和JAVABEANS结合使用,从而将界面表现和业务逻辑分离。

1.2 JAVABEAN技术简介

JAVABEAN是基于JAVA的组建模型,有点类似于MICROSOFT的COM组建。

在JAVA平台中,可以无限扩充JAVA程序的功能,通过JAVABEAN的组合可以生产新的应用程序。

对于程序员来说,最好的一点就是JAVABEAN可以实现代码的重复利用,另外对于程序的易维护性等也有很重大的意义。

JAVABEAN 通过JAVA虚拟机(JAVA VIRTUAL MACHINE)执行,运行JAVABEAN最小的需求是JDK1.1或者以上的版本。

JAVABEAN传统的应用在于可视化的领域,如AWT下的应用。自从JSP诞生后,JAVABEAN 更多的应用在了非可视化领域,在服务器端应用方面表现出越来越强的生命力。

1.3 JDBC技术简介

JDBC是一组API,定义用来访问数据库源的标准JAVA类库,使用这种类库可以使用一种标准的方法、方便地访问数据库资源。

JDBC的目标是使应用程序开发人员使用JDBC可以连接任何提供JDBC驱动程序的数据库系统,这样就使得程序员无须对特定的数据库的特点有过多了解,从而大大简化了和加快了开发过程。

JDBC API 为访问不同的数据库提供了一种统一途径,像ODBC一样,JDBC为开发者屏蔽了一些细节问题。

另外,JDBC对数据库的访问也具有平台无关性。

1.4 TOMCAT技术简介

在已JAVA技术为的WEB开发领域中,TAMCAT是许多JAVA程序员相当喜爱的开放源代码产品,附属在APACHE SOFTWARE FOUNDATION 所主导的JAKART项目内。由于TAMCT是SERVLET与JSP技术的参考实现(REFERNCE IMPLEMENTATION),所以它不但可以当作独立的WEB服务器,也可以结合其它的WEB服务器,只担任SERVLET容器或JSP容器的角色。

1.5运行环境

为了保证BBS论坛管理系统运行的高效性和可靠性,服务器应具有较高的软硬件配置,客户端的要求不是很高。此应用程序可广泛运行于国际互联网即Internet,也可适用于内部的局域网。其运行要求如下:

软件环境:

客户端: Windows95/98/2000/XP,Internet Explorer(IE)等。

服务器端:Windows NT/Windows2000,Tomcat 5.0,JDK 1.5及其以上版本,IE等;

数据库:采用MYSQL,运行于服务器端。

硬件环境:

服务器 CPU:PIII 500以上,内存:512M以上。

客户机 CPU:P200MMX以上,内存:32M以上。

2 需求分析

2.1 编写目的

当今网络技术逐渐渗入社会生活各个层面,以前网站上的论坛管理系统要用户登陆以后才能进行访问及互动。而随着网络互联技术的进步,现在网站投票需打开网页就可进行论坛留言。论坛对象是很多的,各个层次都可进行论坛访问,大到国家领导,小到一个普通干部,访问和留言从到指定用户进行表格到现在通过网络直接点击相应就可进行。网上论坛管理系统可解决游客访问和留言,致使现在几乎各个网站都有各种类型网站论坛管理系统,用户可选择自己的看法。所以我提出了本课题的研究。

2.2任务目标

2.2.1基本性能

系统包括主要的功能:新用户注册,会员登录,管理员删除用户,管理员删除帖子和修改帖子,查询主题,和查询用户这些功能,游客浏览留言,会员新增主题,会员留言回复,查询主题这些功能,可以满足一般的用户需要。

2.2.2开发目标

这个系统预期的目的是为了做成交互式的网页,方便客户端和浏览器端之间的交流。通过论坛,人们能够相互交流沟通,把疑惑在论坛里公布,大家献计献策,共同学习,共同进步。

2.2.3 应用目标

网上论坛系统是一个会员登录留言系统。网上游客能够浏览论坛上的帖子,并且能够注册成为用户。论坛注册会员能够发表帖子,让大家积极参与讨论。论坛管理员能够便于管理论坛,包括浏览游客留言,审核留言,对于不健康或是不利于社会稳定的留言能进行删除操作。

2.3选择编程语言

2.3.1 JSP与ASP的比较

总的来讲Java Server Page(JSP)技术和Microsoft 公司提供的Active Server Pages(ASP)技术在技术方面有许多相似点:两者都是基于WEB应用实现动态交互网页制作提供技术环境支持。两者能为程序开发人员提供实现应用程序的编制与自带组建设计网页从逻辑上分离的技术。而且两者能替代CGI使网站建设与发展变得较为简单与快捷。1).相同之处

都是运行于服务器端的脚本语言,两者都是动态网页生成技术,这两项技术都是由HTML来决定网页的版面,都是在HTML代码中混合的某种代码,有语言引擎解释执行程序

代码。HTML主要负责描述信息的显示样式,而程序代码用来描述处理逻辑。

2).不同之处

JSP是由SUN公司推出的一项技术,是基于JavaServlet 以及整个JAVA体系的WEB 开发技术,利用这项技术可以建立先进、安全和跨平台动态网站。ASP是MS公司推出技术只能在MS的平台上运行,无法实现跨平台,也无安全性保障。ASP下的编辑语言是VBScript 之类的脚本语言,而JSP使用的是JAVA。

ASP与JSP还有一个更为本质的区别:两种语言引擎用完全不一样的方式来处理面中潜入的程序代码。在ASP下,VBScript代码被ASP引擎解释执行。在JSP中,代码被编译生产Servlet并有JAVA虚礼机执行,这种也仅在对JSP的第一次请求时发生。

2.3.2 JSP的特点与优点

综合而言,JSP技术具有下面的特点:

1)write once run anywhere

JSP技术继承了JAVA先天性的先进概念“write once run anywhere”这种概念正越来越深影响着互连网行业的交互式、WEB设计的理念。JSP Pages 可以非常容易的开平台跨WEB服务器软件来设计和开放源代码。

2)支持多种动态网页格式

目前对使用JSP技术设计出来的网页应该采取什么样的格式还没有一个明确标准。一般来说JSP技术可以支持HTML/DHTML的传统浏览器文件格式,也可以支持应用与无线通讯设备例如移动电话、PDA等设备进行网页浏览器的VML文件格式,还可以支持其它一些B2B应用的XML格式。和以往的其它WEB应用技术相比较JSP技术有它很鲜明的特点。3)JSP 标签可扩冲性

尽管JSP与ASP都使用标签与脚本技术来制造动态WEB网页,但JSP技术能够使开发者扩展JSP标签,使得应用JSP的开发者定制标签库所以网页制作者可以充分利用与XML 兼容的标签技术,从而大大减少了对脚本语言的依赖。由于指定标签库技术使得网页制作者降低了制作网页和多个网页扩充关键功能的复杂程度。

4)JSP跨平台的可重用性

JSP的开发人员在开发过程中一直关注可重用性,JSP足见、企业JavaBean或制定的标签都是跨平台可重用的。企业JavaBean可以访问传统的数据库并能并能已分布式系统

模式工作于UNIX和WINDOWS平台,JSP标签可扩充功能为开发人员提供简便的与XML兼容的接口,即共享网页的打包功使其完全的工业标准化。这种基于组建的模式能够有效提高应用程序的开发效率。因为这种模式能够使开发人员利用快捷的子组建快速创建模板应用程序。然后再整和一些附加功能将其打包成一个JAVABEAN组建。

5)易于维护性

基于JSP技术的应用程序比基于ASP的应用程序更易维护和管理。脚本语言都很好服务于小的应用程序但不能适宜大型的复杂的应用程序,因为JAVA是结构化的,它比较容易创建和维护庞大的组建化的应用程序。

3系统设计

3.1系统设计思想

3.1.1 网上论坛系统说明

此网上论坛中三种不同角色游客、注册用户管理员分别可现:

游客:查看帖子、注册新用户。

注册用户:查看帖子、发新帖子、回复信息、查询主帖。

管理员:帖子管理、用户管理、数据库管理。

3.1.2 网上论坛系统总体分析

通过上面的功能说明,我们可以将论坛的制作分为四大部分:

(1)会员注册和登陆模块:

这个模块的功能,就是新来网友可以填写注册资料,通过审核后便成为本论坛的正式会员,并可以以会员身份登陆论坛。

(2)文章显示模块:

显示所有会员最新发表的一些文章主题。

(3)发表文章模块:

为会员提供发表文章的地方,以及回复主题等。

(4)论坛与用户管理模块:

版主以上职务可以进行对文章和用户进行处理,查询,修改,删除等。了解了具体的功能需求后,就可以按模块开始论坛的设计。当然,这些模块只是在功能上对论坛结构的划分,实际上并不能够完全的把他们独立出来进行设计。对于这种较小的应用,也没有必要进行完全的模块化设计,在良好的规划下直接写程序代码或许来的更为简单一些。

3.2 数据库设计思想

在建设网站系统之前,我们必须对系统所用到的数据进行大致分类和具体结构设计,既要做到清晰明了,又要能适应系统各项功能的调用,而不至于产生结构上的逻辑混乱,保证关键数据在意外情况下不会被破坏,可以说数据库是系统的重中之重。

数据库设计要遵循一些规则,一个好的数据库满足一些严格的约束和要求。尽量分离各实体对应的表,一个实体对应一个表,分析该实体有哪些属性,对应有些什么字段,以及各实体之间的联系。实体、属性与联系是进行概念设计时要考虑的三个元素,也是一个好的数据库设计的核心。

从实际出发,经过仔细地设计,得到各表的设计如表3.1——3.3所示。

表3.1 帖子信息表article

id 编号Aotu_incremen

t

一一是否

pid 父亲编号INT 11 一一否Rootid 孩子编号INT 11 一一否Title 标题varchar 50 一一一Writer 作者varchar 20 一一一cont 内容varchar 250 一一一pdate 发贴日期日期型一一一一

id 会员编号Aotu_incremen

t

一一是一name 会员姓名varchar 32 一一一password 会员密码varchar 14 一一否sex 会员性别varchar 2 一一否email 会员邮箱varchar 20 一一一

t

name 会员姓名varchar 32 一一一

会员密码varchar 14 一一否

passwor

d

3.3 各单元模块设计

3.3.1用户注册登陆功能

此部分是实现用户的注册功能。通过填写注册资料,正确填写后,点击注册按钮后便可注册成为正式的会员。如图3.1所示:

图3.1新用户注册

用户资料填写正确就可以注册了。而且对其用正则表达式做了一些限制。用户名只能是3-12位单字字符,而且不允许注册重复的用户名。性别只能选择男或女其中一个。密码最多不能超过12位,两次密码必须输入一致,否则不可以注册。E-mail必须输入有效的邮箱地址,以便日后能使用到论文的各种功能。只要用户按照出现提示信息输入进去就可以了。用户注册成功后就可以使用会员所拥有的一切功能了。

3.3.2会员发贴与回复功能

此部分实现会员的发表新帖以及回帖等功能。

发表帖子会员只针对会员开放,如果想发表新的主题,必须登陆如果没有账号必须注册以后便可直接点击发表帖子按钮。进到发表帖子页面后,首先要写自己想发表的主题,然后填写作者和正文。如果没有登陆直接点击发表主题,则会直接跳到用户登陆页面。

发表主题如图3.2所示:

图3.2 发表新贴

回复主题界面如图 3.3所示:

图3.3 回复主题

发表成功回到显示主题页面再点击主题会看到主题贴的相关内容和回复内容。回复帖子只针对会员开放,游客不可以回复主题。回复内容比较全面,可有表情,也可以设置

字体大小颜色,段落格式等。如果没有登陆直接点击回复则直接跳转到登陆页面。

3.3.3管理员管理帖子与用户管理功能

此部分主要是管理员对论坛的帖子和会员进行综合管理,删除、编辑、查询、等等。普通会员是不可以进行此操作的。管理员登陆界面如图3.4所示:

图3.4 管理员登陆

首先用session判断管理员是否登陆,如果没有登陆直接在浏览器里面输入管理界面的地址则不能对其内容进行操作。这样保证了数据的安全性。管理员登陆以后可以对有些文章内容有地方不足时,可以对其进行编辑修改,当然对于不好的帖子或者就是灌水的帖子,严重的可以直接删除了。帖子都是按照发表时间和回复时间排列的,时间最新的帖子则排在最前面,时间越旧的就越靠后面。如果登陆成功则进入管理员管理页面,如图 3.5

所示:

图 3.5 后台管理

4 编码实现

4.1 功能总体说明

4.1.1 功能总体说明

(1)前台功能页面

登陆与注册:register.jsp、uselogin.jsp、reg_failure.jsp、log_failure.jsp

帖子展示:articleFlat.jsp 、articleDetailFlat.jsp

发表主题帖:post.jsp

回复:reply.jsp、replyDeal.jsp

搜索:articleSearch.jsp

(2)后台功能页面

主页面框架: fram.jsp、left.jsp、main.jsp、top.html

帖子管理:modify.jsp、delete.jsp、articleSearch.jsp、searchResult.jsp、articleFlat1.jsp

用户管理:userMrg.jsp、login.jsp、searchResultUser.jsp、deleteUser.jsp

4.1.2主要功能流程

图 4.1 主要功能流程图

4.2各个功能模块的实现

4.2.1数据库的连接

出于安全性的考虑,我们将与数据库的连接,单独写出来并进行编译,也就是数据库连接的javabean文件,编译出来的.class文件是无法被修改的只能通过源文件进行修改,我们在JSP页面中只用直接调用该方法即可,在本系统中我们将其命名为DBConMgr.java 关键代码如下:

表4.1 数据库的连接

import java.sql.*;

public class DBConMgr {

private String driverName="com.mysql.jdbc.Driver"; //驱动程序

名private String userName="root"; //数据库用户名

private String userPwd="123456"; //密码

private String url= "jdbc:mysql://localhost:3306/bbs"; //连接字符

private Connection conn=null; //数据库连接对象

public Statement sm=null; //数据库语句对象

public void ConnectDB(){

try {

Class.forName( driverName);

conn = DriverManager.getConnection(url, userName, userPwd);

sm=conn.createStatement();

System.out.println("------------------数据库连接成功!");

} catch(Exception e) {

e.printStackTrace();

System.out.println("------------------数据库连接失败!");

}

}

public void CloseDB(){

try {

if (sm != null) {

sm.close();

}

conn.close();

} catch (SQLException SqlE) {

SqlE.printStackTrace();

System.out.println("-------------------数据库关闭失败!");

}

}

}

4.2.2用户登陆与注册模块的实现

用户登陆模块是防止非法用户登陆的第一道防线,通过它可以保护后台数据库的安全性,当用户要进行发贴或回复时,首先要进入的就是身份验证界面,只有在密码正确的情况下才能进行以后的操作,如果输入的密码不正确,则不能进行发表新帖和回复。如果用户以浏览者的身份进入网站,则只能进行一般的帖子浏览和搜索,而不能发表新帖和回复,在点击发表新帖后,系统会判断该用户是否是登陆用户,如果不是则进入登陆页面,如果是第一次登陆,请先注册。

登陆的具体实现要通过一个全程变量,即Session变量来实现,用户登录的界面userlogin.jsp,从user表查得用户提交的帐户名和密码正确后,用一个全局变量,即Session变量保存这一消息该变量称为session.setAttribute("uLogined", "true");。具体的判断过程为:

表4.2用户登陆代码实现

<%

request.setCharacterEncoding("GBK");

String action = request.getParameter("action2");

String username;

String pwd;

if (action != null && action.trim().equals("ulogin")) {

username = request.getParameter("username");

pwd = request.getParameter("pwd");

try {

//创建一个用户表数据库读写类

UserMgr userdb=new UserMgr();

//通过用户名查找用户此方法在封装在UserMgr.java中

User user1=userdb.get(username);

if (user1 == null) {

// 如果记录集为空,表明没有相匹配的用户名,注册失败:

try {

//转发至注册错误页面

response.sendRedirect("log_failure.jsp");

}

catch (Throwable t) {

//写异常日志

getServletContext().log(t.getMessage());

}

} else if (user1.getPassword().equals(pwd)){

相关主题
文本预览
相关文档 最新文档