版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、河北师范大学附属民族学院河北师范大学附属民族学院 学生毕业论文(设计)题目 基于jsp技术的flybbs论坛系统 作者姓名 系 别 专 业 班 级 指导教师 完成日期 2010 年 5 月 30 日 河北师范大学附属民族学院教务处编制基于jsp技术的flybbs论坛系统*系* 班 * *号 指导教师:*摘要:当今,随着网络的迅速发展,制作bbs论坛的技术和方法也越来越多。本文主要讲述利用java web的jsp及相关技术来制作一个简单论坛。通过实际制作,实现了bbs论坛系统应有的一些基本功能,如:登陆功能,通过在登陆界面输入用户名和密码来实现会员的登录,用户只有登录成功了才能进行一系列的操作;
2、注册功能,用户首次登陆,注册时需要用户填写个人信息;除此之外,还有浏览帖子、发表帖子、回复贴子以及删除帖子等等功能。制作本论坛所用的前台软件是myeclipse,后台数据库是mysql,运行时所用的服务器是tomcat,综合运用了html、jsp以及javascript语言。全文先对用到的软件进行了简单的介绍,然后依次对系统的应用进行需求分析、总体设计、详细设计;最后简要介绍了系统的发布和测试。关键词 flybbs论坛 jsp技术 登录 注册 发帖 回帖 浏览 删帖目 录1、绪论1.1 bbs历史背景及制作目的1.2 bbs的可行性及局限性2、相关软件及技术的概述2.1 myeclipse7.
3、5、mysql数据库、tomcat服务器简介2.2 jsp技术介绍3、应用需求分析3.1 用户登录3.2 用户注册3.3 用户浏览贴子3.4 用户回复帖子及投票3.5 发表帖子及删除帖子回复、发起投票3.6 用户之间的留言4、系统总体设计4.1 页面的功能4.2 数据库设计4.3 系统用例5、系统详细设计5.1 建立数据库及数据表5.2 用户登录功能的设计及实现5.3 新用户注册功能的实现5.4 用户浏览帖子功能的实现5.5 用户发帖、回复帖子功能的实现5.6 用户删除回复本贴功能的实现5.7 用户之间的联络6、论坛的发布测试7、参考文献1、绪论1.1 bbs历史背景及制作目的当前形势下,bb
4、s论坛种类繁多,通过bbs可随时取得国际最新的软件及信息,也可以通过bbs来和别人讨论计算机软件、硬件、internet、多媒体、程序设计以及医学等等各种有趣的话题。 bbs的英文全称是bulletin board system,翻译为中文就是“电子公告板”。bbs最早是用来公布股市价格等类信息的,当时bbs连文件传输的功能都没有,而且只能在苹果计算机上运行。早期的bbs与一般街头和校园内的公告板性质相同,只不过是通过电脑来传播或获得消息而已。一直到个人计算机开始普及之后,有些人尝试将苹果计算机上的bbs转移到个人计算机上,bbs才开始渐渐普及开来。bbs最初是为了给计算机爱好者提供一个互相交
5、流的地方。70年代后期,计算机用户数目很少且用户之间相距很远。因此,bbs(当时全世界一共不到一百个站点)提供了一个简单方便的交流方式,用户通过 bbs可以交换软件和信息。到了今天,bbs的用户才扩展到各行各业,花样非常多。bbs论坛是一种比较好的交流平台,他能方便人们进行即时在线交流,发表各种信息,实现网络资源的共享。而且,也能促使人们敞开心扉去学习知识、追求进步,以至于能更好的利用网络资源。因此,bbs的普及已经是人们交流各方面知识的首选,而且越来越多的bbs论坛需要提供给用户。1.2 bbs的可行性及局限性随着计算机软件的迅速发展,bbs的界面效果越来越美观,功能、作用和范围也得到了迅速
6、扩大。与此同时,制作bbs论坛的方法和所用的软件种类也越来越多了。当前比较流行的,一个是基于jsp网页技术,一个是基于asp.net网页技术,还有一个是基于php网页技术。此次bbs论坛制作的界面效果比较粗糙,功能也不是很强大,但一些基本的功能都还有,比如,用户登陆,发表新的帖子,查看已存在的帖子,回复别人发表的帖子(也叫跟帖)以及管理员删除垃圾跟帖等等。但是像一些高级功能,比如,搜寻或查找帖子的功能,上传图片或文件的功能,个人空间的功能等。由于本人所学知识以及能力地限制,并没能将其实现。2、相关软件及技术的概述2.1 myeclipse7.5、mysql数据库、tomcat服务器简介myec
7、lipse7.5是现今国内企业流行的基于eclipse的商业开发工具 myeclipse的当前比较新版本。myeclipse 7.5集中了开源和商业软件的开发支持的大多数框架,方便易用,功能强大,获得了广大开发人员的喜爱。它支持开发调试基于spring, hibernate,struts, jsf, jpa, ejb, web service 等 java ee 技术的项目。mysql是一个小型关系型数据库管理系统,开发者为瑞典mysql ab公司。在2008年1月16号被sun公司收购。目前mysql被广泛地应用在internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是
8、开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了mysql作为网站数据库。tomcat 服务器是一个免费的开放源代码的web 应用服务器,它是apache 软件基金会(apache software foundation)的jakarta 项目中的一个核心项目,由apache、sun和其他一些公司及个人共同开发而成。由于有了sun 的参与和支持,最新的servlet 和jsp 规范总是能在tomcat 中得到体现,tomcat 支持最新的servlet 2.4 和jsp 2.0 规范。因为tomcat 技术先进、性能稳定,而且免费,因而深受java 爱好者的喜爱并得到了部分软件
9、开发商的认可,成为目前比较流行的web 应用服务器。tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试jsp 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好apache 服务器,可利用它响应对html 页面的访问请求。实际上tomcat 部分是apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与apache 独立的进程单独运行的。2.2 jsp技术介绍jsp(java server pages)是由sun microsystems公司倡导、许多公司参与一起建立的一种动态网页
10、技术标准。jsp技术有点类似asp技术,它是在传统的网页html文件(*.htm,*.html)中插入java程序段(scriptlet)和jsp标记(tag),从而形成jsp文件(*.jsp)。 用jsp开发的web应用是跨平台的,即能在linux下运行,也能在其他操作系统上运行。jsp技术使用java编程语言编写类xml的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。jsp将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于web的应用程序的开发变得迅速和容易。java servlet
11、是jsp技术的基础,jsp本身就是预先被编译成servlet,然后再运行的,而且大型的web应用程序的开发需要java servlet和jsp配合才能完成,servlet这个名称大概源于applet,现在国内的翻译方式很多,本文为了避免误会,本文直接采用servlet这个名称而不做任何翻译,读者如果愿意,可以称之为“小服务程序”。servlet其实和传统的cgi程序和isapi、nsapi等web程序开发工具的作用是相同的,在使用java servlet以后,用户不必再使用效率低下的cgi方式,也不必使用只能在某个固定web服务器平台运行的api方式来动态生成web页面。许多web服务器都支持
12、servlet,即使不直接支持servlet的web服务器也可以通过附加的应用服务器和模块来支持servlet。得益于java的跨平台的特性,servlet也是平台无关的,实际上,只要符合java servlet规范,servlet是完全平台无关且是web服务器无关的。由于java servlet内部是以线程方式提供服务,不必对于每个请求都启动一个进程,并且利用多线程机制可以同时为多个请求服务,因此java servlet效率非常高。但java servlet也不是没有缺点,和传统的cgi、isapi、nsapi方式相同,java servlet是利用输出html语句来实现动态网页的,如果用j
13、ava servlet来开发整个网站,动态部分和静态页面的整合过程简直就是一场噩梦。这就是为什么sun还要推出java server pages的原因。3、应用需求分析作为一个bbs论坛,它应该具有bbs所有的一些基本功能,包括:用户登陆功能,新用户注册功能,用户浏览帖子的功能以及用户发表、回复、修改和删除帖子,用户之间的交流功能等。接下来,我将详细阐述一下这些功能。3.1 用户登录进入登录页面后,对于第一次登陆的用户来说,首先需要注册,单击“新用户注册”按钮即可进入注册界面,注册完成后返回登录界面。然后,在对应的地方分别输入用户名和密码,点击“登录”按钮,系统即将用户名和密码发送到服务器,与
14、保存在服务器数据库中的信息进行核对。若核对正确,则进入帖子浏览的界面,若不正确,则重新返回登录界面。3.2 用户注册注册新用户前,用户需要先阅读相关规定并且只有在接受相关规定,才能继续注册。注册界面如图所示:3.3 用户浏览贴子 用户登陆后,即可浏览所有帖子,亦可察看某一特定帖子。 3.4 用户回复帖子及投票用户登陆后,并且可以查看相应帖子,并留言(该功能只能是登陆用户才能享有)。另外,用户还可以对他人发起的投票进行投票。3.5 发表帖子及删除帖子回复、发起投票 用户登录后,可在自己的版面下发表新帖,并且删除一些垃圾跟帖。用户还可以对自己感兴趣的问题及热点发起投票。3.6 用户之间的留言 用户
15、之间如果想要交流并且不被他人知道,则可以通过短信息留言及qq等方式进行交流。4、系统总体设计4.1 页面的功能论坛的首页、分类页面、登陆、注册、帖子详细页面回复帖子页面、发帖页面、个人信息修改页面、会员列表页面等。4.2 数据库设计主要包括论坛帖子实体(bbs)、论坛分类实体(classtype)、投票实体(vote)、在线用户实体(online)、好友实体(friend)、子论坛信息实体(board)、论坛公告表(bbsnews)等。登陆4.3 系统用例查看分类改资料看公告注册普通用户看帖子发帖回复帖子修改帖子系统设置管理员管理公告管理分类存放数据数据访问层控制器层视图页面 jsp页面 se
16、rvlet jdbc 数据库5、系统详细设计5.1 建立数据库及数据表 5.1.1 建立数据库的语句 create database if not exists bbs; 5.1.2 建立所用到的个数据表语句 /建立bbs数据表 create table bbs ( announceid int(11) not null auto_increment, parentid int(11) not null default '0', child int(11) not null default '0', boardid int(11) not null defaul
17、t '0', username varchar(50) not null default '', useremail varchar(255) not null default '', topic varchar(255) not null default '', title varchar(50) not null, body longtext not null, dateandtime varchar(30) not null default '0000-00-00 00:00:00', hits int(11
18、) not null default '0', ip varchar(20) not null default '', expression varchar(255) not null default '', istop int(11) not null default '0', islock int(11) not null, isgood int(11) not null default '0', isvote int(11) not null, heart varchar(30) not null, type
19、 varchar(30) not null, lastre varchar(30) default null, state int(1) default null, primary key (announceid), key boardbbs1 (boardid) engine=myisam auto_increment=130 default charset=gbk;/建立bbslink数据表create table bbslink ( id int(11) not null auto_increment, boardname varchar(50) not null default
20、9;', readme varchar(255) not null default '', url varchar(150) not null default '', key id (id) engine=myisam auto_increment=3 default charset=gbk;/建立bbsnews数据表create table bbsnews ( id int(11) not null auto_increment, boardid int(11) not null default '0', title varchar(5
21、0) not null default '', content mediumtext not null, username varchar(50) not null default '', addtime varchar(30) not null default '0000-00-00 00:00:00', key bbsnewsboardid (boardid), key id (id) engine=myisam auto_increment=4 default charset=gbk;/建立board数据表create table boar
22、d ( boardid int(11) not null default '0', boardtype varchar(50) not null default '', classtype int(11) not null default '0', readme varchar(255) not null default '', moderid int(4) default null, boardmaster varchar(50) default '', lockboard int(11) not null de
23、fault '0', forumlogo varchar(255) not null default '', indeximg varchar(255) not null default '', lastrootid int(11) default null, lasttitle varchar(255) default '', boarduser mediumtext, lastposttime varchar(255) default null, primary key (boardid) engine=myisam defa
24、ult charset=gbk;/建立bookmark数据表create table bookmark ( id int(11) not null auto_increment, username varchar(50) not null default '', url varchar(100) default null, topic varchar(100) default null, addtime varchar(19) default null, key bookmarkusername (username), key id (id) engine=myisam def
25、ault charset=gbk;/建立classtype数据表create table classtype ( id int(10) not null default '0', classtype varchar(50) not null default '') engine=myisam default charset=gbk;/建立config数据表create table config ( forumname varchar(20) not null default '', forumurl varchar(100) not null d
26、efault '', companyname varchar(40) not null default '', hosturl varchar(100) not null default '', systememail varchar(50) not null default '', logo varchar(100) not null default '', ipflag int(11) not null default '0', guestuser int(11) not null defaul
27、t '0', ads1 mediumtext not null, ads2 mediumtext not null, copyright varchar(255) not null default '', version varchar(255) not null default '', titleflag tinyint(3) unsigned not null default '0', uploadflag tinyint(3) unsigned not null default '0', wealthreg
28、int(11) not null default '0', wealthannounce int(11) not null default '0', wealthreannounce int(11) not null default '0', wealthdel int(11) not null default '0', wealthlogin int(11) not null default '0', epreg int(11) not null default '0', epannounce i
29、nt(11) not null default '0', epreannounce int(11) not null default '0', epdel int(11) not null default '0', eplogin int(11) not null default '0', cpreg int(11) not null default '0', cpannounce int(11) not null default '0', cpreannounce int(11) not null
30、 default '0', cpdel int(11) not null default '0', cplogin int(11) not null default '0', maxonline int(11) not null default '0', maxonlinedate varchar(50) not null default '') engine=myisam default charset=gbk;/建立friend数据表create table friend ( f_id int(11) not
31、null auto_increment, f_username varchar(50) default null, f_friend varchar(50) default null, f_addtime varchar(19) default null, key f_id (f_id) engine=myisam default charset=gbk;/建立log数据表create table log ( l_id int(11) not null auto_increment, l_username varchar(50) default null, l_content varchar(
32、50) default null, l_url varchar(255) default null, l_addtime varchar(19) default null, key l_id (l_id) engine=myisam default charset=gbk;/建立message数据表create table message ( id int(11) not null auto_increment, sender varchar(50) default null, incept varchar(50) default null, title varchar(100) defaul
33、t null, content mediumtext, flag int(11) default '0', sendtime varchar(19) default null, delr int(11) default '0', dels int(11) default '0', issend int(11) default '0', primary key (id), key id (id) engine=myisam auto_increment=7 default charset=gbk;/建立online数据表create
34、 table online ( id int(4) not null auto_increment, username varchar(50) not null default '', bbstype int(4) not null, ip varchar(50) not null default '', startime varchar(30) not null default '0000-00-00 00:00:00', browser varchar(100) not null default '', state int(1
35、) default null, primary key (id) engine=myisam auto_increment=71 default charset=gbk;/建立user数据表create table user ( userid int(11) not null auto_increment, username varchar(50) not null default '', nickname varchar(50) default null, useremail varchar(255) default null, article int(11) default
36、 '0', userpassword varchar(11) not null default '', sign mediumtext, sex varchar(10) default null, homepage varchar(255) default null, adddate varchar(30) default '0000-00-00 00:00:00', logins int(11) default '0', face varchar(255) default null, width int(11) default
37、'0', height int(11) default '0', qq varchar(50) default null, lastlogin varchar(30) default '0000-00-00 00:00:00', bbstype int(11) default '0', lockuser int(11) default '0', userwealth int(11) default '0', userep int(11) default '0', usercp int
38、(11) default '0', primary key (userid), key username (username) engine=myisam auto_increment=12 default charset=gbk;/建立vote数据表create table vote ( voteid int(11) not null auto_increment, announceid int(11) not null default '0', vote mediumtext not null, votenum int(11) not null, voteu
39、ser mediumtext not null, votetype int(30) not null, primary key (voteid), key voteid (voteid) engine=myisam auto_increment=153 default charset=gbk;5.2 用户登录功能的设计及实现login.jsp页面完成登陆功能,将用户输入的用户名和密码提交给user action 处理,如果内容与数据库中的数据正确匹配,则跳转到主题列表页面;如果内容不匹配,则给出错误信息。控制代码:else if ("login".equals(path)
40、/ 登录论坛message message = new message();user.setusername(request.getparameter("username");user.setuserpassword(request.getparameter("userpassword");list list = userbiz.searchbyid(2, user);messagebiz messagebiz = new messagebiz();message.setincept(user.getusername();list listmess =
41、messagebiz.searchbyid(2, message);if (list.size() > 0) user = (user) list.get(0);session.setattribute("user", user);/ 记录登录后的用户信息session.setattribute("username", user.getusername();/ 记录用户名/ session.setattribute("news", user.getlockuser();session.setattribute("new
42、s", listmess.size();session.setattribute("bbstype", user.getbbstype();online online = new online();online = (online) session.getattribute("online");online.setusername(user.getusername();online.setbbstype(user.getbbstype();string t_onlineid = session.getattribute("online
43、id").tostring();if (t_onlineid != null) int onlineid = cutils.strtoint(t_onlineid);online.setid(onlineid);onlinebiz.update(online);session.setattribute("online", online);string type = request.getparameter("type");if (!"admin".equals(type)tourl = "index.jsp&quo
44、t;elsetourl = "manager/admin_main.jsp" else request.setattribute("title", "登录失败 ");request.setattribute("info", "用户名密码不正确 !");request.setattribute("url", "login.jsp");5.3 新用户注册功能的实现addreg.jsp页面用于完成新用户的注册功能。在该页面中用户需要输入用户名、密码、确认密码,并
45、可以选择注册名的性别、头像,填写自己的qq号码以及邮箱、个性签名。完成用户注册的代码:public boolean add(user user) string sql = "insert into user(username,nickname,useremail,article,userpassword,sign,sex,homepage,adddate,logins,face,width,height,qq,lastlogin,bbstype,lockuser,userwealth,userep,usercp) values('"+ user.getusernam
46、e()+ "','"+ user.getnickname()+ "','"+ user.getuseremail()+ "','"+ user.getarticle()+ "','"+ user.getuserpassword()+ "','"+ user.getsign()+ "','"+ user.getsex()+ "','"+ user.
47、gethomepage()+ "','"+ user.getadddate()+ "','"+ user.getlogins()+ "','"+ user.getface()+ "','"+ user.getwidth()+ "','"+ user.getheight()+ "','"+ user.getqq()+ "','"+ user.get
48、lastlogin()+ "','"+ user.getbbstype()+ "','"+ user.getlockuser()+ "','"+ user.getuserwealth()+ "','"+ user.getuserep() + "','" + user.getusercp() + "')"boolean flag = false;try controldb.executeup
49、date(sql);flag = true; catch (exception e) e.printstacktrace();return flag;5.4 用户浏览帖子功能的实现main.jsp完成此功能。该页面主要是通过调用javabean从数据库中提取数据加以显示,使用户可以直观的看到当前论坛中有哪些信息。5.5 用户发帖、回复帖子功能的实现 通过rebbs.jsp页面实现回复帖子。首先要获取当前帖子的id号,然后在该贴下添加回复内容。该页面如下图:发帖:请求交由control处理,将获取帖子所有类型,存储于request范围然后转发发帖页面。5.6 用户删除回复本贴功能的实现 通过bb
50、sbiz.java javabean控制实现。该javabean的部分代码如下:/删除回复的代码public boolean m_delete_reply(int id) boolean flag = false;string sql = "delete from bbs where announceid=" + id;try controldb.executeupdate(sql);flag = true; catch (exception e) e.printstacktrace();return flag;5.7 用户之间的联络 usersms.jsp实现该功能。实现
51、页面的代码如下:<form action="mess?path=talkok" method=post name=messager> <table cellpadding=0 cellspacing=0 border=0 align=center> <input type="hidden" name="sender" value="$sender"> <tr> <td> <table cellpadding=3 cellspacing=1 borde
52、r=0 width=100%> <tr> <td bgcolor=#ccffff colspan=2 align=center><font size="2"><b>发送短消息</b>-请完整输入下列信息</font></td> </tr> <tr> <td bgcolor=#ccffff valign=middle width=70><font size="2"><b>收件人:</b></
53、font></td> <td bgcolor=#ccffff valign=middle> <input type="text" name="incept" value="$incept" readonly></td> </tr> <tr> <td bgcolor=#ccffff valign=top><font size="2"><b>标题:</b></font></td
54、> <td bgcolor=#ccffff valign=middle> <input type=text name="title" size=50 maxlength=80> <font size="2"> 请限定50字内</font></td> </tr> <tr> <td bgcolor=#ccffff valign=top><font size="2"><b>内容:</b>
55、<br></font></td> <td bgcolor=#ccffff valign=middle> <textarea cols=70 rows=8 name="content" title=""></textarea> </td> </tr> <tr> <td bgcolor=#ccffff valign=middle colspan=2 align=center> <input type=submit value=&quo
56、t;发送" name=submit> <input type=submit value="保存" name=submit> <input type="reset" name="clear" value="清除"> </td> </tr> </table> </td> </tr> </table></form>用于控制该功能的servlet代码如下:p
57、ublic void dopost(httpservletrequest request, httpservletresponse response)throws servletexception, ioexception response.setcontenttype("text/html;charset=gbk");printwriter out = response.getwriter();string path = request.getparameter("path");httpsession session = request.getsession();convertutil cutils = new convertutil();list listmessage = new arraylist();messagebiz messagebiz = new messagebi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水利水电工程管理与实务一级建造师考试试题及答案指导(2024年)
- 办公设备买卖:2024年详细协议协议
- 2024年专业消防工程协议样本
- 2024年客户服务协议模板2
- 城市综合体消防排烟系统工程承揽协议
- 2024年现场演唱会战略合作协议
- 2024年度个人信托资金贷款协议
- DB3502∕T 064.1-2021 建设工程电子投标保函平台技术规范 第1部分:总体设计
- 2024设备试用协议模板专业
- 2024工地专属食堂运营协议样本
- 【公开课课件】高中英语读后续写(整合)
- 协同工作考核评价指引
- 化工设备塔设备3
- 《高中化学课程标准》学习心得
- 专八阅读训练10篇(含答案)
- 设备对中技术PPT课件
- 办公室工作务虚会汇报材料
- 温县电子商务公共服务中心PPT课件
- 第2章推销自己PPT课件
- 招商银行在职证明
- 学前教育-小班幼儿规则意识养成的现状、问题及对策研究
评论
0/150
提交评论