




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学科分类号 0701 本科生毕业论文(设计)题目(中文): 基于JSP的BBS论坛管理系统 (英文): BBS Forum Management System Based on Jsp 学生姓名: 黄 涛 学号: 0409404006 系别: 数学与应用数学系 专业: 信息与计算科学 指导教师: 孙 发 军 起止日期: 2007.12-2008.5 2008年5月2日怀化学院本科毕业论文(设计)诚信声明作者郑重声明:所呈交的本科毕业论文(设计),是在指导老师的指导下,独立进行研究所取得的成果,成果不存在知识产权争议。除文中已经注明引用的内容外,论文不含任何其他个人或集体已经发表或撰写过的成果。对论文的研究做出重要贡献的个人和集体均已在文中以明确的方式标明。本声明的法律结果由作者承担。本科毕业论文(设计)作者签名:年 月 日目录摘 要1关键词1Abstract1Keywords1前 言21 系统技术及运行环境31.1 JSP技术简介31.2 javabean技术简介41.3 JDBC技术简介41.4 TOMCAT技术简介51.5运行环境52 需求分析62.1 编写目的62.2 任务目标62.2.1基本性能62.2.2开发目标72.2.3 应用目标72.3选择编程语言72.3.1 JSP与ASP的比较72.3.2 JSP的特点与优点83系统设计103.1系统设计思想103.1.1 网上论坛系统说明103.1.2 网上论坛系统总体分析103.2 数据库设计思想113.3 各单元模块设计123.3.1用户注册登陆功能123.3.2会员发贴与回复功能133.3.3管理员管理帖子与用户管理功能154 编码实现164.1 功能总体说明164.1.1 功能总体说明164.1.2主要功能流程174.2各个功能模块的实现174.2.1数据库的连接174.2.2用户登陆与注册模块的实现184.2.3分页显示的功能实现234.2.4 发表与回复功能模块实现244.2.5后台管理模块的实现275 系统测试30总 结31参考文献33致 谢3332基于JSP的BBS论坛管理系统摘 要 为了方便信息的交流,在结合动态服务网页(JSP)和MYSQL 技术之下开发了这个快截、界面友好的网上交流系统。论坛使用动态服务网页(JSP)技术建设论坛的骨干框架,使用MYSQL制作系统的数据库,实现了一个功能相对齐全的论坛系统,网友可以自由地提出问题以及帮助他人解决问题,或者交流经验。 该论坛功能较齐全,在这里可以自由地发表自己的观点和对论坛的主题发表意见,我们还可以对网友的问题及时地解决,获取对自己有用的知识。该论坛还有一些特殊的功能,强大的搜索功能等。前 言目前的社会是一个信息飞速发展的社会,为了顺应这个时代的潮流,互联网就随之出现了,在信息的交流和传递中,互联网占据着一个非常重要的位置。我们的日常生活已经和互联网息息相关了,离开互联网的生活,就像与世隔绝一样。人们通过互联网查看新闻,获得最新的消息,通过互联网进行交流、传递信息。随着互联网应用的增多,论坛系统也就产生了,成为大家进行信息交流的一个重要的渠道,论坛系统有很大的优势:信息传递及时、信息交流方便、利于互动等。论坛也就是现今的社会是一个信息飞速发达的社会,在信息的交流和传递当中,互联网占据着一个非常重要的位置。人们可以通过互联网查看最新的消息,也可以通过互联网进行信息的交流。而论坛就是大家进行信息交流的其中一个渠道。它具有信息传递及时,信息交流方便,利于互动的优点!论坛的概念:论坛(BBS)是Bulletin-Board-System的缩写,即电子公告栏。它是一种在Internet网上开放的信息服务系统,通过论坛用户在论坛中可以发布信息,进行讨论,聊天,共享文件等等。BBS多用于大型公司或中小型企业,开放给客户交流的平台。对于初识网络的新人来讲,BBS - 就是用于在网络上交流的地方,可以发表一个主题,让大家一起来探讨,也可以提出一个问题,大家一起来解决,可以上传资源供大家分享等。在论坛里,人们之间的交流打破了空间,时间的限制。在与别人进行交往时,无须考虑自身的年龄,学历,知识,社会地位,财富,外貌,健康状况,也无从知道交谈的对方的真实社会身份。这样,参与讨论的人可以处于一个平等的位置与其他人进行任何问题的探讨。论坛往往是由一些有志于此道的爱好者建立,对所有人都免费开放。而且,由于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的组建模型,有点类似于microsof的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 anywhereJSP技术继承了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.13.3所示。表3.1 帖子信息表article字段字段名类型宽度小数位索引可否为空id编号Aotu_increment一一是否pid父亲编号INT11一一否Rootid孩子编号INT11一一否Title标题varchar50一一一Writer作者varchar20一一一cont内容varchar250一一一pdate发贴日期日期型一一一一表3.2 用户信息表user字段字段名类型宽度小数位索引可否为空id会员编号Aotu_increment一一是一name 会员姓名varchar32一一一password会员密码varchar14一一否sex会员性别varchar2一一否email会员邮箱varchar20一一一表3.3管理员信息表adminuse字段字段名类型宽度小数位索引可否为空id会员编号Aotu_increment一一是一name 会员姓名varchar32一一一password会员密码varchar14一一否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.jsp4.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用户登陆代码实现 boolean ulog = false; /判断用户是否登陆String u = (String)session.getAttribute(uLogined);if (u != null & u.trim().equals(true) ulog = true;若ulog为false,表明没有经过登陆与否的验证,则只能已游客的生份浏览和搜索帖子如果想留言和发表帖子,只有登录或注册用户才可以。若ulog为true则表名用户已经登陆,而且可以用session得到用户名(String)session.getAttribute(name),显示在主页上。如果用户还不是会员则提示用户进行注册,用户提交信息之后,系统开始判断用户的注册信息是否有效,首先是用户名是否为空,用户输入的两次密码是否一致,然后依次往后判断用户所填写的各项信息是否符合要求,直到所有信息均正确无误,系统将该用户注册信息写入会员表即user表,并提示用户注册成功。就可以进行其它有效的操作了。系统对用户的注册信息的验证实现如下:首先是用正则表达式对表单的控制表4.3 正则表达式对表单的控制 function Check() reName =/w3,12$/; rePwd =/w6,12$/; reEmail=/w+w+.w+$/;if(!reName.test(document.register.username.value)window.alert(用户名只能是3-12单字字符!);window.register.username.focus();return false;if(!rePwd.test(document.register.pwd.value)window.alert(密码只能是6-12位单字字符!);window.register.pwd.focus();return false;if(document.register.pwd.value!=document.register.confpwd.value)window.alert(请验证密码!);window.register.confpwd.focus();return false;if(!reEmail.test(document.register.email.value)window.alert(E_mail格式不对!);window.register.email.focus();return false;document.register.submit();/填写的内容都符合那么就会提交表4.4 用户注册代码实现4.2.3分页显示的功能实现这里是分页功能的实现,这里把每页几条记录设为一个常量便于修改。表4.5 分页显示代码实现%final int PAGE_SIZE = 4; / 每页几条记录int pageNo = 1;String strPageNo = request.getParameter(pageNo);/当前页if (strPageNo != null & !strPageNo.trim().equals() try pageNo = Integer.parseInt(strPageNo); catch (NumberFormatException e) pageNo = 1; /异常处理如果当前为空pageNo = 1if (pageNo = 0)/如果小于0 pageNo = 1pageNo = 1;int totalPages = 0;/总页数List articles = new ArrayList();/定义一个数组链表Connection conn = DB.getConn();Statement stmtCount = DB.createStmt(conn);ResultSet rsCount = DB.executeQuery(stmtCount,select count(*) fro
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业节水改造工程方案(3篇)
- 配网工程启动方案(3篇)
- 民生工程-工作方案(3篇)
- 2025年教师招聘之《幼儿教师招聘》能力检测试卷含答案详解ab卷
- 车站街道安全培训课件
- 医疗行业大数据隐私保护在2025年医疗数据匿名化处理中的应用报告
- 医疗领域新质生产力实践事例
- 快速干道工程招标方案(3篇)
- 净化工程选材方案(3篇)
- 酒店共享工程方案模板(3篇)
- 陕西水资源论证报告表
- 大学生暑期社会实践登记表
- 单选题51-100试题含答案
- 最新苏教牛津译林版英语五年级上册Unit 4《Hobbies》Grammar time 公开课课件
- 危险品管理台帐
- 现场技术服务报告模版
- 一年级上《人与自然》
- 高等有机化学PPT精品课程课件全册课件汇总
- 教学课件·固体物理基础(第2版)
- 完整课件-西方经济学下册(第二版)
- 青岛版四年级科学新教材上册实验
评论
0/150
提交评论