软件工程毕业设计面向对象的系统分析与设计Word下载.docx
《软件工程毕业设计面向对象的系统分析与设计Word下载.docx》由会员分享,可在线阅读,更多相关《软件工程毕业设计面向对象的系统分析与设计Word下载.docx(32页珍藏版)》请在冰豆网上搜索。
JSP的特点是面向对象、跨平台、和SERVLET一样稳定、可以使用SERVLET提供的API,同时克服了SERVLET的缺点。
在使用JSP时一般和JAVABEANS结合使用,从而将界面表现和业务逻辑分离。
1.2JAVABEAN技术简介
JAVABEAN是基于JAVA的组建模型,有点类似于MICROSOFT的COM组建。
在JAVA平台中,可以无限扩充JAVA程序的功能,通过JAVABEAN的组合可以生产新的应用程序。
对于程序员来说,最好的一点就是JAVABEAN可以实现代码的重复利用,另外对于程序的易维护性等也有很重大的意义。
JAVABEAN通过JAVA虚拟机(JAVAVIRTUALMACHINE)执行,运行JAVABEAN最小的需求是JDK1.1或者以上的版本。
JAVABEAN传统的应用在于可视化的领域,如AWT下的应用。
自从JSP诞生后,JAVABEAN更多的应用在了非可视化领域,在服务器端应用方面表现出越来越强的生命力。
1.3JDBC技术简介
JDBC是一组API,定义用来访问数据库源的标准JAVA类库,使用这种类库可以使用一种标准的方法、方便地访问数据库资源。
JDBC的目标是使应用程序开发人员使用JDBC可以连接任何提供JDBC驱动程序的数据库系统,这样就使得程序员无须对特定的数据库的特点有过多了解,从而大大简化了和加快了开发过程。
JDBCAPI为访问不同的数据库提供了一种统一途径,像ODBC一样,JDBC为开发者屏蔽了一些细节问题。
另外,JDBC对数据库的访问也具有平台无关性。
1.4TOMCAT技术简介
在已JAVA技术为的WEB开发领域中,TAMCAT是许多JAVA程序员相当喜爱的开放源代码产品,附属在APACHESOFTWAREFOUNDATION所主导的JAKART项目内。
由于TAMCT是SERVLET与JSP技术的参考实现(REFERNCEIMPLEMENTATION),所以它不但可以当作独立的WEB服务器,也可以结合其它的WEB服务器,只担任SERVLET容器或JSP容器的角色。
1.5运行环境
为了保证BBS论坛管理系统运行的高效性和可靠性,服务器应具有较高的软硬件配置,客户端的要求不是很高。
此应用程序可广泛运行于国际互联网即Internet,也可适用于内部的局域网。
其运行要求如下:
软件环境:
客户端:
Windows95/98/2000/XP,InternetExplorer(IE)等。
服务器端:
WindowsNT/Windows2000,Tomcat5.0,JDK1.5及其以上版本,IE等;
数据库:
采用MYSQL,运行于服务器端。
硬件环境:
服务器CPU:
PIII500以上,内存:
512M以上。
客户机CPU:
P200MMX以上,内存:
32M以上。
2需求分析
2.1编写目的
当今网络技术逐渐渗入社会生活各个层面,以前网站上的论坛管理系统要用户登陆以后才能进行访问及互动。
而随着网络互联技术的进步,现在网站投票需打开网页就可进行论坛留言。
论坛对象是很多的,各个层次都可进行论坛访问,大到国家领导,小到一个普通干部,访问和留言从到指定用户进行表格到现在通过网络直接点击相应就可进行。
网上论坛管理系统可解决游客访问和留言,致使现在几乎各个网站都有各种类型网站论坛管理系统,用户可选择自己的看法。
所以我提出了本课题的研究。
2.2任务目标
2.2.1基本性能
系统包括主要的功能:
新用户注册,会员登录,管理员删除用户,管理员删除帖子和修改帖子,查询主题,和查询用户这些功能,游客浏览留言,会员新增主题,会员留言回复,查询主题这些功能,可以满足一般的用户需要。
2.2.2开发目标
这个系统预期的目的是为了做成交互式的网页,方便客户端和浏览器端之间的交流。
通过论坛,人们能够相互交流沟通,把疑惑在论坛里公布,大家献计献策,共同学习,共同进步。
2.2.3应用目标
网上论坛系统是一个会员登录留言系统。
网上游客能够浏览论坛上的帖子,并且能够注册成为用户。
论坛注册会员能够发表帖子,让大家积极参与讨论。
论坛管理员能够便于管理论坛,包括浏览游客留言,审核留言,对于不健康或是不利于社会稳定的留言能进行删除操作。
2.3选择编程语言
2.3.1JSP与ASP的比较
总的来讲JavaServerPage(JSP)技术和Microsoft公司提供的ActiveServerPages(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.2JSP的特点与优点
综合而言,JSP技术具有下面的特点:
1)writeoncerunanywhere
JSP技术继承了JAVA先天性的先进概念“writeoncerunanywhere”这种概念正越来越深影响着互连网行业的交互式、WEB设计的理念。
JSPPages可以非常容易的开平台跨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_increment
一
是
否
pid
父亲编号
INT
11
Rootid
孩子编号
Title
标题
varchar
50
Writer
作者
20
cont
内容
250
pdate
发贴日期
日期型
表3.2用户信息表user
会员编号
name
会员姓名
32
password
会员密码
14
sex
会员性别
2
email
会员邮箱
表3.3管理员信息表adminuse
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数据库的连接
importjava.sql.*;
publicclassDBConMgr{
privateStringdriverName="
com.mysql.jdbc.Driver"
;
//驱动程序名privateStringuserName="
root"
//数据库用户名
privateStringuserPwd="
123456"
//密码
privateStringurl="
jdbc:
mysql:
//localhost:
3306/bbs"
//连接字符串
privateConnectionconn=null;
//数据库连接对象
publicStatementsm=null;
//数据库语句对象
publicvoidConnectDB(){
try{
Class.forName(driverName);
conn=DriverManager.getConnection(url,userName,userPwd);
sm=conn.createStatement();
System.out.println("
------------------数据库连接成功!
"
);
}catch(Exceptione){
e.printStackTrace();
System.out.println("
------------------数据库连接失败!
}
}
publicvoidCloseDB(){
if(sm!
=null){
sm.close();
}
conn.close();
}catch(SQLExceptionSqlE){
SqlE.printStackTrace();
System.out.println("
-------------------数据库关闭失败!
}
4.2.2用户登陆与注册模块的实现
用户登陆模块是防止非法用户登陆的第一道防线,通过它可以保护后台数据库的安全性,当用户要进行发贴或回复时,首先要进入的就是身份验证界面,只有在密码正确的情况下才能进行以后的操作,如果输入的密码不正确,则不能进行发表新帖和回复。
如果用户以浏览者的身份进入网站,则只能进行一般的帖子浏览和搜索,而不能发表新帖和回复,在点击发表新帖后,系统会判断该用户是否是登陆用户,如果不是则进入登陆页面,如果是第一次登陆,请先注册。
登陆的具体实现要通过一个全程变量,即Session变量来实现,用户登录的界面userlogin.jsp,从user表查得用户提交的帐户名和密码正确后,用一个全局变量,即Session变量保存这一消息该变量称为session.setAttribute("
uLogined"
"
true"
。
具体的判断过程为:
表4.2用户登陆代码实现
<
%
request.setCharacterEncoding("
GBK"
Stringaction=request.getParameter("
action2"
Stringusername;
Stringpwd;
if(action!
=null&
&
action.trim().equals("
ulogin"
)){
username=request.getParameter("
username"
pwd=request.getParameter("
pwd"
//创建一个用户表数据库读写类
UserMgruserdb=newUserMgr();
//通过用户名查找用户此方法在封装在UserMgr.java中
Useruser1=userdb.get(username);
if(user1==null){
//如果记录集为空,表明没有相匹配的用户名,注册失败:
try{
//转发至注册错误页面
response.sendRedirect("
log_failure.jsp"
}
catch(Throwablet){
//写异常日志