基于JSP技术的BBS论坛设计与实现
- 格式:doc
- 大小:102.00 KB
- 文档页数:17
摘要微型计算机的普及加速了计算机网络的广泛应用和飞速发展。
BBS全称为Bulletin Board System(电子公告板)或者Bulletin Board Service(公告板服务)。
是Internet上的一种电子信息服务系统。
它提供一块公共电子白板,每个用户都可以在上面书写,可发布信息或提出看法。
它是一种交互性强,内容丰富而即使的Internet电子信息服务系统。
用户在BBS站点上可以获得各种信息服务,发布信息,进行讨论,聊天等等。
BBS (Bulletin Board System)系统以计算机系统、通信技术、数据库、网络技术等信息技术为支撑,在信息服务领域有着日益重要的应用。
本文利用JSP+CSS,HTML+CSS,MYSQL,JA V ABEAN,JDBC技术实现了一种基于B/S模式的论坛系统,阐述了BBS的相关理论和开发方法,并根据本项目的实际情况构造了论坛的基本架构。
该论坛系统主要完成了基于JSP技术的信息交流论坛的设计和实现,主要实现了客户端和服务器端的动态交互。
该系统包含五个模块:注册登录模块,浏览帖子模块,发帖回帖模块,论坛管理模块,用户管理模块。
论文详细的描述了模块的结构、功能以及具体的设计过程。
该论坛经测试表明其性能稳定,可广泛应用于各种网络上,作为信息交流和人员沟通的园地。
关键词:JSP, MYSQL, JA V ABEAN,论坛系统。
Designing and Implementation of Forum Basedon JSP TechniqueAbstractThe microcomputer popularization has accelerated the computer network widespread application and the rapid development. BBS(Bulletin Board System)system takes information technology like computer system, communication, database, network technology and so on as the strut ,it becomes more and more important in the information service domain.This article has realized one kind of pattern forum elaborated based on the B/S by using JSP+CSS, HTML+CSS, MYSQL, JA V ABEAN, JDBC technology and instructed the BBS related theory and developing methods and unifies this project the actual situation to produce the forum structure overhead construction. The forum(BBS) is mainly completed the design and realizations of information exchanges forum based on the JSP technique. And it main carry out a dynamic state between the customer and the sever. There are five molds piece: register and login the mold piece, scan the article in the mold piece, article releases and restores the mold piece, announce management mold piece, user management mold piece. The thesis has described module structure、function detailed and has designed process concretely. This forum after teacher and schoolmates test indicated its performance is stable, but widely applies to each kind if network the field which links up as the information exchange and the personnel.Key words: JSP,SQL,JA V ABEAN,BBS目录毕业设计(论文)任务书 ......................................... 错误!未定义书签。
JSP程序设计-课程设计基于JSP技术开发的BBS论坛系统院系:专业班级:组长:2010年 12 月 15 日摘要当今,随着网络的迅速发展,制作BBS论坛的技术和方法也越来越多。
本文主要讲述利用Java Web的相关技术来制作一个简单论坛。
通过实际制作,实现了BBS论坛系统应有的一些基本功能,如:登陆功能,通过在登陆界面输入用户名和密码来实现会员的登录,用户只有登录成功了才能进行一系列的操作;注册功能,用户首次登陆,需要先注册,注册时需要用户填写个人信息;找回密码功能,当用户忘记密码时可以通过此功能找回密码,找回密码时需要用户记得注册时填写的个人信息。
除此之外,还有浏览帖子、发表帖子、回复贴子以及删除帖子等等功能。
制作本论坛所用的前台软件是MyEclipse,后台数据库是MySQL,运行时所用的服务器是Tomcat,综合运用了HTML、JSP以及JavaScript语言。
关键词:BBS 论坛; JSP 技术; 登陆;注册; 找回密码;浏览贴子; 发表帖子; 回复贴子; 删除帖子目录一、概论 0(一)、BBS历史背景 0(二)、BBS制作目的 0(四)、BBS制作的局限性 (1)二、相关软件、技术介绍及开发环境的选择 (1)(一)、开发环境介绍 (1)(二)、JDK(Java Development Kit) (1)(三)、MyEclipse6.5软件的简单介绍 (2)(四)、MySQL数据库介绍 (2)(五)、JSP(Java Server Pages)网页设计技术介绍 (2)(六)、Tomcat5.5服务器介绍 (2)三、应用需求分析 (2)(一)、用户登录和注册功能 (3)(二)、用户找回密码功能 (3)(三)、用户帖子的浏览 (4)(五)、用户回复他人帖子 (5)(六)、管理员对帖子的查看/发表/删除功能 (5)四、系统总体设计 (6)(一)、系统结构设计 (6)(二)、数据库设计 (7)五、系统详细设计 (9)(一)、建立数据库及数据库表 (9)(二)、用户登录功能的实现 (10)(三)、用户发表新帖子页面的制作 (12)一、概论当前形势下,BBS论坛种类繁多,通过BBS可随时取得国际最新的软件及信息,也可以通过BBS来和别人讨论计算机软件、硬件、Internet、多媒体、程序设计以及医学等等各种有趣的话题,更可以利用BBS来刊登一些“征友”、“廉价转让”及“公司产品”等启事。
湖北大学本科毕业论文(设计)题目基于JSP的网上论坛的设计与实现姓名姚远学号 2011221104220036 专业年级2011级软件工程指导教师陈南平职称讲师2015年5月5日目录绪论 (1)1系统分析 (2)1.1 需求分析 (2)1.2 可行性分析 (2)1.2.1 技术可行性 (3)1.2.2 经济可行性 (3)1.2.3 社会可行性 (3)2 总体设计 (4)2.1 系统目标 (4)2.1.1 MVC架构 (4)2.2 系统功能结构 (5)2.2.1 前台功能结构 (6)2.2.2 后台功能结构 (7)2.2.3 系统流程 (7)2.3 相关技术介绍 (8)2.3.1 开发环境 (8)2.3.2 系统平台体系的选择 (8)2.3.3 JSP技术 (9)2.3.4 MySQL (9)2.3.5 JDBC技术 (9)2.3.6 servelet (10)3 数据库设计 (11)3.1 数据库概述 (11)3.2 数据库设计分析 (11)3.3 数据库物理设计 (12)4 模块/功能设计 (16)4.1 注册模块 (16)4.1.1 需求描述 (16)4.1.2 逻辑设计 (16)4.1.3 相关代码 (17)4.2 登录模块 (18)4.2.1 需求描述 (18)4.2.2 逻辑设计 (18)4.2.3 相关代码 (21)4.3 发帖模块 (23)4.3.1 需求描述 (23)4.3.2 逻辑设计 (23)4.3.3 相关代码 (26)4.4 读帖评论模块 (29)4.4.1 需求描述 (29)4.4.2 逻辑设计 (29)4.4.3 相关代码 (32)4.5 搜索模块 (34)4.5.1 需求描述 (34)4.5.2 逻辑设计 (35)4.5.3 相关代码 (36)4.6 后台管理模块 (37)4.6.1 需求描述 (37)4.6.2 逻辑设计 (37)5 总结 (39)参考文献 (41)基于JSP的网上论坛的设计与实现摘要随着Internet技术的飞速发展,计算机技术已渗透到人们生活的各行各业。
《JSP基础教程》课程设计BBS论坛系统目录1.功能需求 (3)2.框架规划 (3)2.1划分模块 (3)1)用户注册模块 (3)2)用户登录模块 (3)3)信息显示模块 (4)4)信息操作模块 (4)5)用户管理模块 (4)6)数据库模块 (4)2.2模块之间的关系 (4)2.3制定页面流程 (5)3.数据库设计 (6)3.1设计数据表的结构 (6)4.各单位模块设计 (7)4.1用户注册登陆功能 (7)4.2 用户发贴与回复功能 (7)4.3 管理员管理帖子与用户管理功能 (9)5.个人心得 (10)BBS论坛系统的设计与实现1.功能需求本系统根据论坛系统的需要,以实现交流信息的一个平台。
在这个BBS论坛系统中友三类用户,普通用户、版主和管理员。
普通用户具有的功能如下:✓用户注册✓分页查看所有主题文章列表✓发表主题文章✓回复文章✓查看主题文章和回复文章的详细内容✓对自己发表或回复的文章进行修改或者删除版主具有的功能如下:✓具有普通用户的所有功能✓对本讨论区的所有文章可以修改或删除管理员具有的功能如下:✓具有普通用户的所有功能✓对所有版面的所有文章可以修改和删除✓用户管理功能,包括修改用户的个人信息或删除用户2.框架规划2.1划分模块这个BBS论坛系统设计由6个基本模块所组成:1)用户注册模块这个模块完成新用户的注册功能,并能对新用户的注册信息进行差错检验。
包含的文件有:新用户注册表单页面:register.jsp验证注册信息并将注册信息存入数据库的页面:chkregister.jsp2)用户登录模块这个模块提供用户的登录界面,并验证用户名和密码,以确认用户身份。
包含的文件有:用户登录页面(论坛的主页面):index.html验证登录信息的页面:chklogin.jsp3)信息显示模块这个模块显示论坛的所有讨论区、各讨论区中所有主题文章、主题文章和回复文章的详细内容。
包含的文件有:显示所有讨论区列表的页面:listboard.jsp各讨论区中所有主题文章的分显示页面:listarticle.jsp显示主题文章和回复文章详细内容的页面:logout.jsp4)信息操作模块这个模块提供发表主题文章、回复文章、修改文章以及修改删除文章的功能,并且对不同身份的用户给予不同的操作权限。
题目:BBS专题论坛系统目录前言 (1)第1章专题论坛系统开发背景及意义 (2)1.1系统开发背景 (2)1.2系统开发意义 (3)第2章专题论坛系统需求分析 (4)2.1现状分析 (4)2.2可行性分析 (4)2.2.1经济可行性 (4)2.2.2技术可行性 (4)2.3设计目标 (5)2.4功能要求 (5)2.5平台选择 (5)2.6系统开发工具 (6)2.6.1开发语言—JSP(Java Server Page) (6)2.6.2数据库—MySQL5.0 (6)第3章专题论坛系统设计 (8)3.1数据库设计 (8)3.1.1数据库需求分析 (8)3.1.2数据库概念结构设计 (10)3.1.3数据库逻辑结构设计 (11)3.2系统结构设计 (15)3.2.1页面模块化设计 (15)3.2.2 MVC模式设计(Jsp+Servlet+JavaBean) (16)第4章专题论坛系统实现 (18)4.1系统各部分的实现方法 (18)4.1.1创建与数据库的连接 (18)4.1.2访问数据库的JavaBean (19)4.1.3用户及管理员登录模块页面 (20)4.1.4系统首页模块页面 (22)4.1.5会员注册模块的实现页面 (24)第5章系统测试与评价分析 (28)5.1测试环境简介 (28)5.2系统各模块的测试 (28)5.2.1管理界面测试 (28)5.2.2其它管理模块测试 (28)5.3系统的评价分析 (28)5.4系统的不足与展望 (29)结束语 (30)致谢 (31)参考文献 (32)前言自我国正式进入互联网时代以来,短短的几年时光互联网在我国得到了飞速的发展。
目前它已经成为全球性信息传输的重要途径之一,并被喻为信息高速公路。
这不仅表现在互联网的基础设施方面,也表现在互联网的用户人数、互联网在各行各业的广泛应用等各个方面。
现实生活中的交流存在时间和空间上的局限性,交流人群范围狭小以及间断的交流不能保证信息的准确性和可取性。
BBS论坛系统的设计与实现摘要BBS的英文名称是Bulletin Board System,翻译为中文就是“电子公告板”。
BBS 在上世纪九十年代进入中国,并迅速普及。
本设计的目的是用JSP和SQL Server 2000开发一个简易的BBS系统,并实现账户安全保护。
此外,BBS系统有操作简单、界面友好的特点,并具有广泛的应用前景。
BBS系统开发主要讲述了系统设计的基本功能和方法。
接着以BBS系统为例,逐一介绍开发的步骤:系统分析、系统设计、系统实现。
在系统分析中先后用数据流程图、系统的功能结构图分析了BBS系统所需的各种数据。
在BBS系统的设计中,详细的展现了系统的各个功能模块,所需的数据库表及表字段,菜单的设计等,并通过运用MD5函数,实现用户账户的安全保护。
在BBS系统的实现中,取得了系统预期的成果,基本使各个模块的功能得以实现,并给出了模块实现的核心代码和主要的界面设计。
关键词:BBS系统,JSP,SQL Server 2000,Account security目录第1章绪论......................................................... .. 错误!未定义书签。
1.1 研究背景.......................................... 错误!未定义书签。
1.2 研究现状.......................................... 错误!未定义书签。
1.3 研究内容和目标.................................... 错误!未定义书签。
1.4 本文的结构安排.................................... 错误!未定义书签。
第2章开发工具与关键技术介绍..................... 错误!未定义书签。
2.1 CSS技术.......................................... 错误!未定义书签。
本科生毕业论文(设计)基于JSP的财大家园BBS论坛的设计与实现姓名学号专业指导教师2011年05月20日摘要随着网络应用的兴起,人们交流的方式也发生了翻天覆地的变化。
网络聊天、网络视频和邮箱系统等网络应用的出现正在改变着人们彼此之间沟通、交流的方式.此外,为了满足人们在某一特定主题下的知识获取和信息发布,出现了在线网络论坛。
各种各样的主题论坛几乎囊括了人们生活的每个角落。
人们根据自己的专业特长和兴趣爱好在论坛上提出自己的问题,即提出主题。
而后其他人根据主题内容可以发表自己的意见和看法,即回复主题.一千个人有一千个哈姆雷特,论坛集大家之所长,所感,为每一个用户提供了丰富的知识矿藏。
论坛是一个让人足不出户即可了解外界世界,了解他人所想的工具。
在人们生活节奏逐步加快的今天,必有其存在的现实意义。
正是基于这样的认识,开发了此BBS论坛系统.除了提供基本的看帖、发帖、回帖、搜帖的功能,针对管理员用户系统还提供了用户管理和帖子管理的操作。
目的是基于现实,为用户提供一个模拟的网上交流环境。
方便大家的沟通交流,丰富人们的娱乐文化生活。
在论文的篇章上,本论文从系统分析、系统整体设计、数据库设计、系统详细设计与实现几个方面对系统的开发过程作了详细的介绍,旨在全面地呈现系统由最初设计到最终定型的各个阶段,便于大家对系统有一个更好的把握和认识。
系统的具体实现细节则在论文的系统详细设计与实现一章给出了具体的阐述,各个功能版块的展示也包含在其中,能够直观地看到系统运行后的演示效果.其间夹杂着部分主要代码的辅助说明,便于从底层查看系统的最终实现。
关键词:JSP;网上论坛;模拟社区;在线交流AbstractWith the development of the Internet,the way of people’s communication has undergoned enormous changes。
Web chat,Online Video and Mailbox System are changing the way of people's mutual communication。
JSP课程设计报告BBS论坛设计一、BBS论坛BBS的英文全称是Bulletin Board System,译为“电子公告板”。
BBS最早是用来公布股市价格等类信息的,一直到互联网与个人计算机普及后广泛流行于网络。
目前,通过BBS 系统开发出各种论坛、网上社区、交友中心等信息平台。
二、BBS系统角色本系统实现BBS论坛的浏览、发贴、注册等功能。
系统的角色分为:1、普通用户(游客)浏览信息(主贴及加回帖)、用户注册2、注册用户用户登录、发表主贴、对相关的主贴发表回帖、个人信息维护3、版主对所属版块信息的维护,对不合适的主贴及回帖维护4、系统管理员对版块进行管理,对用户进行管理三、设计基本思路(修改相应的名称与本人项目对应,也可自己设计类似的图)四、BBS详细设计分析(给出各页面的运行效果截图、相关的Servlet代码,Servlet关键加注释)1:背景加的是浮动框架代码:<html><head><title>未标题-2</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0"marginheight="0"><!-- Save for Web Slices (未标题-2) --><table id="__01" width="1247" height="567" border="0" cellpadding="0"cellspacing="0"><tr><td colspan="3"><img src="images/jing_01.jpg" width="1247" height="50" alt=""></td> </tr><tr><td width="90"><img src="images/jing_02.jpg" width="63" height="465" alt=""></td> <td width="1091"><iframe name="left" width="100%" height="80%" scrolling="yes" src="login.jsp"frameborder="0"></iframe> </td><td width="66"><img src="images/jing_04.jpg" width="63" height="465"alt=""></td></tr><tr><td colspan="3"><img src="images/jing_05.jpg" width="1247" height="52" alt=""></td> </tr></table><!-- End Save for Web Slices --></body></html>1、系统主页面BBS.jsp运行截图:()相关代码:导入标签:<%@taglib uri="/jsp/jstl/core"prefix="c"%><body><p><br><img src="images/logo.jpg"width="290"height="70"><%String uname=(String)session.getAttribute("uname");%><%if(uname==null){ %><div>你尚未登录 || <a href="login.jsp">登录</a> || 注册</div><%} else{ %><div>当前用户:<%=uname %></div><p><% } %><p><a href="GetTopicServlet?currentpage=1&boardid=${boardid}}">首页</a></p><table width="928"height="83"border="1"align="left" cellpadding="0"cellspacing="0"><%ArrayList<Board> bdata=BoardDao.getAllBoard();for(int i=0;i<bdata.size();i++){Board tem=bdata.get(i);%><tr><th width="134"bgcolor="#00BC9A"scope="col"><divalign="center"><img src="images/icon3.gif"width="18" height="16"></div></th><th width="632"bgcolor="#00BC9A"scope="col"><div align="center"><ahref="GetTopicServlet?boardid=<%=tem.getBid() %>"><%=tem.getBname () %></a></div></th><th width="105"bgcolor="#00BC9A"scope="col"><div align="center">主贴数:<%=tem.getTopicnum() %></div></th><th width="47"bgcolor="#00BC9A"scope="col"><div align="center"></div></th></tr><tr><td bgcolor="#00BC9A"><div align="center"></div></td><td><div align="center">版主:<%ArrayList<User> udata=tem.getBuserdata();for(int j=0;j<udata.size();j++)out.print(udata.get(j).getUname()+" ");%></div></td><td><div align="center"></div></td><td><div align="center"></div></td></tr><% } %></table></p></html>GetTopicServlet://1 获取版块的idString boardid=request.getParameter("boardid");System.out.print("bid="+boardid);String curnum=request.getParameter("currentpage");if(curnum==null)curnum="1";//2 调用相关的类查询相关的信息GetPage mypage=new GetPage();DBConnect mydb=new DBConnect();String sql="select * from topic where boardid="+boardid;mypage.setDb(mydb);mypage.setKeyFielsName("topicid");mypage.setP_curpage(Integer.parseInt(curnum));mypage.setPageSize(3);mypage.setSql(sql);ArrayList<Topic> tdata=new ArrayList<Topic>();ResultSet re=null;try {re=mypage.getPage();while(re.next()){Topic tem=new Topic();tem.setTopicid(re.getString(1));tem.setTitle(re.getString(2));tem.setTdata(re.getString(4));tem.setReplynum(ReplayDao.getReplayByTopicId(tem.getTopicid()) +"");String userid=re.getString(5);tem.setTopicuser(UserDao.getUserInfoByUserId(userid));tdata.add(tem);}}catch (Exception e) {e.printStackTrace();}//判断是否为版主HttpSession session=request.getSession();String u=(String)session.getAttribute("uid");System.out.print("u="+u+"aa");boolean flag=false;if(u!=null){//u不为空说明登陆用户,判断是否为版主flag=MasterDao.checkMaster(u, boardid);}//3 将查询结果送到信息显示request.setAttribute("flag", flag);System.out.print("dd="+tdata.size());request.setAttribute("ttdata", tdata);request.setAttribute("boardid", boardid);request.setAttribute("curpage", mypage.getP_curpage());request.setAttribute("totalpage", mypage.getTotalPage());request.getRequestDispatcher("topiclist.jsp").forward(request, response);………2、主题帖显示及发帖页面topiclist.jsp相关代码:导入标签:<%@taglib uri="/jsp/jstl/core"prefix="c"%> <body><img src="images/logo.jpg"width="290"height="70"><%String uname=(String)session.getAttribute("uname");%><%if(uname==null){ %><div>你尚未登录 || <a href="login.jsp">登录</a> || 注册</div><%} else{ %><div>当前用户:<%=uname %></div><p><% } %><p>首页</p><table width="1018"height="133"border="1"cellpadding="0" cellspacing="0"><tr><th width="92"bgcolor="#00BC9A"scope="col"><div align="center">*</div></th><th width="521"bgcolor="#00BC9A"scope="col"><div align="center">主帖标题</div></th><th width="124"bgcolor="#00BC9A"scope="col"><div align="center">发帖人</div></th><th width="67"bgcolor="#00BC9A"scope="col"><div align="center">回帖数</div></th><th width="202"bgcolor="#00BC9A"scope="col"><divalign="center">发帖时间</div></th></tr><c:forEach items="${requestScope.ttdata}" var="tem"><tr><td align="center"><c:if test="${flag=='true'}"><ahref="delTopicservlet?topicid=${tem.topicid}&&boardid=${param.boa rdid }">删除</a></c:if><c:if test="${flag!='true'}"><img src="images/headimage4.JPG"width="17"height="17"></c:if></td><td><a href="NeiRong?topicid=${tem.topicid}">${tem.title }</a></td> <td align="center">${tem.topicuser.uname}</td><td align="center">${tem.replynum }</td><td align="center">${tem.tdata }</td></tr></c:forEach></table><p align="center">共${totalpage }页当前第${curpage }页<a href="GetTopicServlet?currentpage=1&boardid=${boardid}">首页</a><ahref="GetTopicServlet?currentpage=${requestScope.curpage-1}&board id=${boardid}">上一页</a><ahref="GetTopicServlet?currentpage=${requestScope.curpage+1}&board id=${boardid}">下一页</a><ahref="GetTopicServlet?currentpage=${totalpage}&boardid=${boardid} ">尾页</a></p></body></html>delTopicservlet:String topicid=request.getParameter("topicid");String boardid=request.getParameter("boardid");System.out.print(topicid+boardid);int n=TopicDao.delTopicByTopicId(topicid);if(n>0){request.getRequestDispatcher("GetTopicServlet?boardid="+boardid).forward(request, response);}else{System.out.print("删除失败");}3、回帖查看及发回帖页面replylist.jsp相关代码:导入标签:<%@taglib uri="/jsp/jstl/core"prefix="c"%></head><script language="javascript">function check(){var a=document.form1.flag.value;if(a==""){alert("要发贴,请先登录");return false;}var b=document.form1.contentinfo.value;if(content==""){alert("请输入主帖的标题");return false;}return true;}</script><body><table width="1039"height="167"border="1"cellpadding="0" cellspacing="0"><tr><th width="257"bgcolor="#00bc9a"scope="col"><div align="center">发帖人:${topicInfo.topicuser} </div></th> <th width="501"bgcolor="#00BC9A"scope="col">主帖标题:${topicinfo.title }</th><th width="148"bgcolor="#00BC9A"scope="col">发帖时间:${topicinfo.tdata }</th><th width="123"bgcolor="#00BC9A"scope="col"> </th></tr><tr><td height="48"><p align="center"class="STYLE1 STYLE1"><img src="images/16.gif"width="14"height="14"></p><p align="center"class="STYLE1 STYLE1">${topicinfo.topicuser.uname }</p></td><td colspan="3"align="left"valign="top"><p class="STYLE1 STYLE1">内容:</p><p class="STYLE1 STYLE1">${topicinfo.tcontent }</p></td></tr><c:forEach items="${rdata}" var="tem"varStatus="i"><tr><td height="28"bgcolor="#00BC9A"class="a"><div align="center" class="STYLE1">回帖人</div></td><td bgcolor="#00BC9A"class="a">回帖时间:${tem.creatdate }</td> <td bgcolor="#00BC9A"class="a">楼层:<c:if test="${i.count==1 }">沙发</c:if><c:if test="${i.count!=1 }">${i.count }</c:if></td><td bgcolor="#00BC9A"class="a"><a href="delReplyservlet?replyid=${tem.replyid}&&topicid=${tem.topic id}">删除</a></td></tr><tr><td height="48"><div align="center"class="STYLE1"><p><img src="images/6.gif"width="14"height="14"></p><p>${tem.replyuser.uname}</p></div></td><td colspan="3"align="left"valign="top"><span class="STYLE1"> <c:if test="${tem.rstatus==0}">该帖子已被删除</c:if><c:if test="${tem.rstatus==1}"> ${tem.contentinfo} </c:if></span></td></tr></c:forEach></table><form name="form1"method="post"action="addreplyservlet"><table width="315"height="125"border="1"align="center" cellpadding="0"cellspacing="0"><tr><th colspan="2"bgcolor="#00BC9A"scope="col">跟帖(提示:请登录)</th></tr><tr><td bgcolor="#00BC9A">内容</td><td><label><textarea name="contentinfo"cols="30"rows="8"></textarea><input type="hidden"name="flag" value="${erinfo}"><input type="hidden"name="topicid" value="${param.topicid}"></label></td></tr><tr><td height="23"colspan="2"align="center" bgcolor="#00BC9A"><label><input type="submit"name="Submit"value="提交"><input type="reset"name="Submit2"value="重置"></label></td></tr></table></form></body>addreplyservlet:request.setCharacterEncoding("gb2312");String content=request.getParameter("contentinfo");String topicid=request.getParameter("topicid");System.out.print(content+"||"+topicid+"||");HttpSession session=request.getSession();String userid=(String)session.getAttribute("uid");int n=ReplayDao.addReply(content, topicid, userid);//3转向if(n>0){//合法用户response.sendRedirect("NeiRong?topicid="+topicid);}else{//非法用户response.sendRedirect("添加失败!");}回帖:<%@taglib uri="/jsp/jstl/core"prefix="c"%></head><script language="javascript">function check(){var a=document.form1.flag.value;if(a==""){alert("要发贴,请先登录");return false;}var b=document.form1.contentinfo.value;if(content==""){alert("请输入主帖的标题");return false;}return true;}</script><body><table width="1039"height="167"border="1"cellpadding="0" cellspacing="0"><tr><th width="257"bgcolor="#00bc9a"scope="col"><div align="center">发帖人:${topicInfo.topicuser} </div></th> <th width="501"bgcolor="#00BC9A"scope="col">主帖标题:${topicinfo.title }</th><th width="148"bgcolor="#00BC9A"scope="col">发帖时间:${topicinfo.tdata }</th><th width="123"bgcolor="#00BC9A"scope="col"> </th></tr><tr><td height="48"><p align="center"class="STYLE1 STYLE1"><imgsrc="images/16.gif"width="14"height="14"></p><p align="center"class="STYLE1 STYLE1">${topicinfo.topicuser.uname }</p></td><td colspan="3"align="left"valign="top"><p class="STYLE1 STYLE1">内容:</p><p class="STYLE1 STYLE1">${topicinfo.tcontent }</p></td></tr><c:forEach items="${rdata}" var="tem"varStatus="i"><tr><td height="28"bgcolor="#00BC9A"class="a"><div align="center" class="STYLE1">回帖人</div></td><td bgcolor="#00BC9A"class="a">回帖时间:${tem.creatdate }</td> <td bgcolor="#00BC9A"class="a">楼层:<c:if test="${i.count==1 }">沙发</c:if><c:if test="${i.count!=1 }">${i.count }</c:if></td><td bgcolor="#00BC9A"class="a"><a href="delReplyservlet?replyid=${tem.replyid}&&topicid=${tem.topic id}">删除</a></td></tr><tr><td height="48"><div align="center"class="STYLE1"><p><img src="images/6.gif"width="14"height="14"></p><p>${tem.replyuser.uname}</p></div></td><td colspan="3"align="left"valign="top"><span class="STYLE1"> <c:if test="${tem.rstatus==0}">该帖子已被删除</c:if><c:if test="${tem.rstatus==1}"> ${tem.contentinfo} </c:if></span></td></tr></c:forEach></table><form name="form1"method="post"action="addreplyservlet"><table width="315"height="125"border="1"align="center" cellpadding="0"cellspacing="0"><tr><th colspan="2"bgcolor="#00BC9A"scope="col">跟帖(提示:请登录)</th></tr><tr><td bgcolor="#00BC9A">内容</td><td><label><textarea name="contentinfo"cols="30"rows="8"></textarea><input type="hidden"name="flag"value="${erinfo}"><input type="hidden"name="topicid" value="${param.topicid}"></label></td></tr><tr><td height="23"colspan="2"align="center" bgcolor="#00BC9A"><label><input type="submit"name="Submit"value="提交"><input type="reset"name="Submit2"value="重置"></label></td></tr></table></form></body>addreplyservletrequest.setCharacterEncoding("gb2312");String content=request.getParameter("contentinfo");String topicid=request.getParameter("topicid");System.out.print(content+"||"+topicid+"||");HttpSession session=request.getSession();String userid=(String)session.getAttribute("uid");int n=ReplayDao.addReply(content, topicid, userid);//3转向if(n>0){//合法用户response.sendRedirect("NeiRong?topicid="+topicid);}else{//非法用户response.sendRedirect("添加失败!");}4、用户登录5、<body><div align="center"><img src="images/logo.jpg"width="290" height="70"><br><%String uname=(String)session.getAttribute("uname");%><%if(uname==null){ %></div><div><div align="center">你尚未登录 || <a href="login.jsp">登录</a>|| 注册</div></div><div align="center"><%} else{ %></div><div><div align="center">当前用户:<%=uname %></div></div><p align="center"><% } %><form name="form1"method="post"action="logincheck"><table width="334"height="143"border="1"align="center"><tr><td width="108"bgcolor="#00bc9a"><div align="center">用户名</div></td><td width="210"><div align="center"><label><input type="text"name="username"></label></div></td></tr><tr><td bgcolor="#00BC9A"><div align="center">密码</div></td><td><div align="center"><label><input type="password"name="userpass"></label></div></td></tr><tr><td colspan="2"bgcolor="#00BC9A"><div align="center"><label><input type="submit"name="Submit"value="提交"></label><label><input type="reset"name="Submit2"value="重置"></label></div><div align="center"></div></td></tr></table></form></body></html>Logincheck://1获取request.setCharacterEncoding("gb2312");String uname=request.getParameter("username");String upass=request.getParameter("userpass");//2判断String userid=UserDao.checkUser(uname, upass);System.out.print("check="+userid+uname+upass);//3转向if(userid!=null){//合法用户HttpSession session=request.getSession();session.setAttribute("uid", userid);session.setAttribute("uname", uname);response.sendRedirect("BBS.jsp");}else{//非法用户response.sendRedirect("login.jsp");}6、7、用户注册<%@taglib uri="/jsp/jstl/core"prefix="c"%><body><p align="center"><img src="images/logo.jpg"width="290" height="70"></p><p><br></p><form name="form1"method="post"action="adduser"><table width="338"height="209"border="1"align="center" cellpadding="1"cellspacing="1"><tr><td width="92"align="center"bgcolor="#00bc9a">用户名</td><td width="291"align="center"><label for="textfield"></label><input type="text"name="username"id="textfield"></td></tr><tr><td align="center"bgcolor="#00BC9A">密码</td><td align="center"><label for="textfield2"></label><input type="password"name="password"id="textfield2"></td></tr><tr><td align="center"bgcolor="#00BC9A">确认密码</td><td align="center"><label for="textfield3"></label><input type="password"name="password"id="textfield3"></td> </tr><tr><td align="center"bgcolor="#00BC9A">性别</td><td align="center"><p><label><input name="sex"type="radio"value="男"checked>男</label><label><input type="radio"name="sex"value="女">女</label></td></tr><tr><td height="85"align="center"bgcolor="#00BC9A">头像</td><td><img src="images/headimage2.jpg"width="70"height="70" name="hcit"><script language="javascript">function aaa(){document.hcit.src=document.form1.select.value;}</script><label for="select"></label><select name="select"id="select"onChange="aaa()"><option value="1.gif">头像1</option><option value="images/headimage2.jpg">头像2</option><option value="images/headimage3.JPG">头像3</option><option value="images/headimage4.JPG">头像4</option><option value="images/headimage5.JPG">头像5</option> </select></td></tr><tr><td colspan="2"align="center"bgcolor="#00BC9A"><input type="submit"name="button"id="button"value="确认"><input type="reset"name="button2"id="button2"value="取消"></td></tr></table></form><p> </p><p><br></p></body><body>"</body></html>adduser(servlet)://1获取request.setCharacterEncoding("gb2312");String username=request.getParameter("username");String userpass=request.getParameter("password");String sex=request.getParameter("sex");String image=request.getParameter("select");System.out.print(username+userpass+sex+image);HttpSession session=request.getSession();String userid=(String)session.getAttribute("uid");int n=UserDao.addUser(username, userpass, sex, image);//3转向if(n>0){//合法用户response.sendRedirect("login.jsp?mes=2");}else{//非法用户response.sendRedirect("regist.jsp");}。
1 引言随着网络技术的发展与普及, 各种论坛系统( BBS) 应运而生, BBS ( Bulletin Board System) 是一种电子息服务系统, 它向用户提供了一块公共网络区域, 其中每个用户都可以在上面发布相关信息或提出自己的看法, 早期的BBS 由教育机构或研究机构管理, 现在大多数网站都已经建立了自己的BBS 系统,供人们通过该系统来结交更多的朋友, 表达更多的想法,其实BBS最早起源于20世纪80年代初,最初只是用于发布公告信息和讨论问题的在线交流平台,后来随技术的发展与网络的普及功能越来越强大。
由于得到了广大网友的欢迎,越来越多的商业网站开始重视论坛,把论坛作为与用户交流的平台和在线技术支持与服务的平台。
目前国内的BBS 已经十分普遍, 大致可以分为以下几类: 校园BBS、商业BBS、专业BBS、情感BBS以及个人BBS。
而此次基于 技术建立的BBS 系统的开发平台与工具选择、数据库设计以及系统所需的关键技术, 对于其它BBS 的建立有很好的参考价值。
随着互联网的大范围高速普及,论坛在人们的网络生活中正变得越来越重要。
目前,通过BBS系统可随时取得各种最新的信息;也可以通过BBS系统来和别人讨论计算机软件、程序设计、个人爱好、汽车、音乐等等各种有趣的话题,和大多数论坛系统一样,本论坛实现了注册、登录、密码找回、修改密码、发表主题、回复主题等功能,旨在为人们提供更为安全便捷的信息交流平台。
线上线下,大家聊天聊车聊生活。
本网站使用JSP + SQL Server 2000在Tomcat5.0系统开发的,所谓的BBS论坛系统最基本的功能首先是发表主题,其次是大家可以根据主题发表自己对帖子内容的看法和建议。
此外,为了保留发表者和回复者的信息内容,系统提供了用户注册和登录的功能。
该系统只有注册的用户登录后才能够发表和回复主题,游客只能浏览相关主题帖子及相关信息,根据BBS论坛功能及客户需求,BBS论坛需要具备以下功能:显示各论坛类别及版面、查看版面下所有根帖、查看精华帖子、查看自己发表的帖子、搜索帖子、查看根帖内容、用户注册、用户登录、发表帖子、回复帖子、进入后台、论坛类别管理、版面管理、用户管理和用户注册等其它。
目录摘要 (I)引言 (1)1.绪论 (2)1.1项目来源 (2)1.2项目目标与期望 (2)1.3项目设计原则 (2)2.可行性分析 (4)2.1技术可行性 (4)2.2系统结构可行性分析 (6)2.3开发环境介绍 (7)3.需求分析 (8)3.1系统功能需求 (8)3.2 系统的运行需求 (9)4.概要设计 (31)4.1系统功能模块图 (31)4.2系统功能的设计 (32)结束语 (34)致谢 (32)参考文献 (32)基于JSP技术的BBS论坛设计与实现摘要网络化的今天,BBS论坛系统的功能得到了很的大扩充。
BBS的用户已经扩展到各行各业,除原先的计算机爱好者们外,商用BBS操作者、环境组织、宗教组织及其它利益团体也加入了这个行列。
通过BBS系统来和别人讨论计算机软件、硬件、Internet、多媒体、程序设计以及医学等等各种有趣的话题。
给计算机爱好者提供一个互相交流的地方。
整个论坛采用Struts框架设计完成。
结合JSP、Java、JavaScript、J2EE等基础知识完成BBS论坛。
本系统将用户划分为游客、用户、管理员3类,他们的权限不同,能够使用的功能也不同。
对于系统来说,需要实现的功能总体来说分为以下两大模块。
前台模块提供给所有用户使用。
不论是论坛的注册用户,还是普通的浏览者都可以进入其中。
区别在于随着用户的等级不同,所允许使用的功能也有所不同。
后台模块提供给管理人员(包括管理员和版主)使用,以对用户、论坛及文章进行管理维护。
普通用户如果试图使用这一模块将被系统拒绝我主要负责BBS论坛后台页面的管理员登录和用户管理功能模块。
关键词:JSP技术,BBS论坛,设计与实现引言BBS是Bulletin Board System(电子公告栏)的缩写,网络上通常称之为论坛。
它通过以文字为主的界面,为广大网友提供一个彼此交流的空间。
BBS与Email都是早期Internet最普遍的应用之一,至今仍然广泛使用。
目前,通过BBS系统可随时取得国际最新的软件及信息,也可以通过BBS系统来和别人讨论计算机软件、硬件、Internet、多媒体、程序设计以及医学等等各种有趣的话题,更可以利用BBS系统来刊登一些“征友”、“廉价转让”及“公司产品”等启事。
网络化的今天,BBS论坛系统的功能得到了很的大扩充。
BBS的用户已经扩展到各行各业,除原先的计算机爱好者们外,商用BBS操作者、环境组织、宗教组织及其它利益团体也加入了这个行列。
通过BBS系统来和别人讨论计算机软件、硬件、Internet、多媒体、程序设计以及医学等等各种有趣的话题。
给计算机爱好者提供一个互相交流的地方。
本系统主要完成Web服务器端的用户管理、帖子管理、数据库管理、浏览和查找功能等设计、实现与完善以及整个实验网站的组织建立和测试工作。
本文中数据库服务器端采用了MYSQL数据库并以先进的JDBC技术进行数据库存取等操作,使Web与数据库紧密联系起来。
为了让网友可以自由发表观点和提出问题以及帮助他人解决问题,或者交流经验。
特开发了BBS论坛系统。
1.绪论1.1项目来源网络化的今天,BBS论坛系统的功能得到了很的大扩充。
BBS的用户已经扩展到各行各业,除原先的计算机爱好者们外,商用BBS操作者、环境组织、宗教组织及其它利益团体也加入了这个行列。
通过BBS系统来和别人讨论计算机软件、硬件、Internet、多媒体、程序设计以及医学等等各种有趣的话题。
给计算机爱好者提供一个互相交流的地方。
结合JSP、Struts、Java、JavaScript、J2EE 等基础知识完成BBS论坛。
1.2项目目标与期望1.2.1促进广大用户交流在计算机网络飞速发展的今天,BBS已经成为人们网上交流的重要平台,在BBS里,人们之间的交流打破了空间、时间的限制。
BBS大大加深了广大用户之间的交流。
因此对BBS论坛的研究是十分必要的。
1.2.2体现集体观点用户可以阅读他人关于某个主题的看法,也可以将自己的想法毫无保留地贴到公告栏中。
这样,通过BBS论坛,广大用户的思想观点即会体现出来。
可充分反应最广大人民群众的集体意见。
总结上述几点,网站建设目标可总结如下:(1)促进加深用户之间的交流,为用户打造一个畅想欲言的天地。
(2)使用户可以充分交流经验、知识、看法。
1.3项目设计原则1.3.1实用性原则充分考虑到在BBS论坛中可能遇到的种种问题,尽量全面的做好需求分析,以减少日后更新软件的次数。
1.3.2经济性原则提供广泛的涵盖用户多种需求的功能,数据处理方式灵活以满足需求,节省网站建设成本,并确保其较好的拓展性和开放性;同时网站具有基于WEB界面的管理后台,能够自主的对网站中大部分内容作更新、修改操作,节省了企业网站的运营成本,提高了信息更新、传播效率。
1.3.3 扩充性原则网站的整体规划及框架设计是具可扩充性的,前台页面的设计能保证网站在增加栏目后不会破坏网站的整体结构。
后台数据库的设计具有高度的扩充性,能够根据需要对栏目、类别的增、删、修改。
2.可行性分析2.1技术可行性2.1.1 动态网站技术介绍Internet起源于20世纪60年代的美国,它在近几年迅速风靡全球,其根本原因不仅在于她拥有卓越的国际通信功能,更在于它拥有巨大的信息资源。
所谓的Internet是指由分布在全世界成千上万的计算机网络遵循一定的通讯协议,并相互联系在一起而形成的国际互连网络,也就是说,Internet是建立和使用这些网络的人群、群体、公司以及各种网络资源的集合体。
随着网络技术的不断发展,单纯的静态页面已经不能满足发展的需要,因为静态页面是用单纯的HTML语言组成的,它没有交互性。
因此,为了满足实际的需要,许多网页文件扩展名不再只是“htm”,“html”,出现了以“php”,“asp”,“jsp”,“shtml”等为后缀的网页文件,这些都是采用动态网页技术制作出来的。
2.1.2 程序语言的选择JSP(JavaServer Pages)是由Sun公司倡导,许多别的公司参与一起创建的一种新动态网页技术标准,类似其他技术标准。
在传统的网页HTML文件(*.htm,*.html)中加入Java程序片断(Scriptlet)和JSP标签,构成了JSP 网页(*.jsp)Servlet/JSP Container收到客户端发出的请求时,首先执行其中的程序片断,软后将执行结果以HTML格式响应给客户端,其中程序片断可以是:操作数据库,重新定向网页以及发送E-Mail等等,这些都是建立动态网站所需要的功能。
所有程序操作都在服务器端运行,网络上传送给客户端的仅是得到的结果,与客户端的浏览器无关,因此,JSP称为Server-side Language。
所以被许多人认为是未来最有发展前途的动态网站技术之一。
语言优势如下:(1)将内容的生成和显示进行分离使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。
使用JSP标识或者小脚本来生成页面上的动态内容。
生成的内容的逻辑被封装在标识和JavaBeans组件中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面而不影响内容的生成。
(2)一次编写,到处运行作为Java平台的一部分,JSP拥有Java编程语言“一次编写,到处运行”的特点,随着越来越多的供应商将JSP支持添加到他们的产品中,您可以使用自己所选择的服务器和工具,但并不影响当前的应用。
(3)JSP的平台适应性更广这是JSP比ASP的优越之处,几乎所有的平台都支持Java,它们可以在任何平台下通行无阻。
虽然NT的OS占据了很大的市场的份额,但在服务器方面UNIX的优势仍然很大.从一个平台移植到另一个平台,JSP和JavaBeans甚至不用重新编译,因为Java字节码都是标注的字节码与平台无关。
(4)健壮的存储管理和安全性由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译为Java Servlet,JSP页面就具有Java技术的所有优点,包括健壮的存储管理和安全性。
(5)数据库连接技术数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。
对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。
本系统采用SRTUTS连接池连接MYSQL数据库。
在struts-config.xml配置文件中,定义data-source元素设置了具体的数据源,可以使用这个数据源来连接数据库。
使用数据源来连接数据库有很多优点,比如事务处理,连接效率,管理方便,J2EE核心技术JNDI实现等2.1.3 STRUTS框架应用Struts是Apache软件组织提供的一项开放源码项目,它为Java Web应用提供了模型-视图-控制器(Model-View- Controller,简称MVC)框架,尤其适用于开发大型可扩展的Web应用。
MVC模式,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层。
Struts为Web 应用提供了一个通用的框架,使得开发人员可以把精力集中在如何解决实际业务问题上。
此外, Struts 框架提供了许多供扩展和定制的地方,应用程序可以方便的扩展框架,来更好的适应用户的实际需求。
2.2系统结构可行性分析本系统采用B/S模式进行开发2.2.1 B/S模式简介B/S(Browser/Server)结构即浏览器和服务器结构。
它是随着Internet 技术的兴起,对C/S结构的一种变化或者改进的结构。
在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。
这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。
以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。
它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。
特别是在Java这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。
2.2.2 B/S模式的优点(1)维护和升级方式简单目前,软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着更为方便的特性。
对一个稍微大一点单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。