基于jsp+servlt论坛系统论文.doc_第1页
基于jsp+servlt论坛系统论文.doc_第2页
基于jsp+servlt论坛系统论文.doc_第3页
基于jsp+servlt论坛系统论文.doc_第4页
基于jsp+servlt论坛系统论文.doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

需要代码的可以给我发邮箱 779068485项目名称:BBS系统的设计与实现 学生姓名: 班 级: 指导教师: 2013年6月5日目 录摘要11.设计目的22.系统概要设计32.1系统功能模块图32.2系统功能模块流程图32.3系统数据库设计32.3.1数据库总体设计32.3.2数据库概念结构设计42.3.3数据库逻辑结构设计73.详细设计93.1系统公共类设计93.2各功能模块详细设计93.2.1登陆模块93.2.2管理员对讨论区的管理103.2.3管理员对帖子的管理113.2.4用户浏览讨论区123.2.5用户创建帖子133.2.6用户回复帖子144系统测试154.1 管理员登陆测试154.2 管理员对讨论区的操作测试164.2.1 删除讨论区操作测试164.2.2 修改讨论区操作测试164.2.3 创建讨论区操作测试174.3 管理员对帖子的操作测试184.3.1 修改帖子操作测试184.3.2创建帖子操作测试204.3.3删除帖子操作测试214.3.4浏览回复帖子操作测试214.4 用户登录234.5 用户创建帖子244.6用户回帖255总结27致谢28参考文献29附录30摘要 在信息发达的社会,交流是一个很重要的话题,针对这个我们结合基于动态的服务网页(jsp)和后台数据库access开发一个小型的论坛系统,论坛可以很好的用于学生和社会人士的交流。该论坛使用了jsp+servlet的技术,采用了css来处理论坛界面的友好,并且结合了AJAX技术,运用这些技术来实现了这个小型论坛的设计。论坛可以处理注册和登陆功能,可以通过注册新用户来使用本论坛,通过发帖可以发表自己的想法以及问题,并且登陆系统后可以通过回复帖子来表达自己对别人帖子的意见或者回答。关键词:jsp;论坛;access;AJAX;AbstractDeveloped in the information society, communication is a very important topic for this we combine dynamic service-based web (jsp) and back-end database access and the development of a small forum system, can be a good forum for the exchange of students and the community . The forum using jsp servlet technology to deal with a css forum friendly interface, and a combination of AJAX technology, the use of these technologies to achieve this small forum design. Bbs can handle registration and login functions, you can register a new user to use this forum by posting can express their ideas and problems, and landing system can reply message to express their opinions or answer someone elses posts.Keywords:jsp;BBS;access;AJAX;31.设计目的本课程设计是学习Web数据库应用与开发技术的一个综合实践环节,是我们掌握Java Web开发技术的重要途径。通过本课程设计要使学生达到以下目标:(1)掌握和巩固Java Web程序设计的基础知识;(2)熟悉Java Web应用开发的技能和常用工具;(3)掌握JDBC数据库应用编程的理论与技术(4)理解应用软件系统体系结构的构建方法(5)提高分析、设计软件系统以及编写文档的能力。2.系统概要设计2.1系统功能模块图图2-1系统功能模块图2.2系统功能模块流程图图2-2系统模块流程图2.3系统数据库设计2.3.1数据库总体设计 本数据库的名称是bbs,数据库中有4个表,分别是ArgueInfo、reply_detail、topic_detail、user_detail。分别存储讨论区信息、帖子回复的信息、发帖信息数据、用户注册的信息。2.3.2数据库概念结构设计 得到上面的数据项和数据结构以后,可以设计出满足用户需求的各种实体,以及实体与实体之间的关系,下图以图2-3,2-4,2-5,2-6分别介绍了本系统中总体以及各个实体间的属性E-R图:图2-3总体E-R图图2-4用户表和帖子表的E-R图图2-5用户表和回帖表的E-R图图2-6帖子表和回帖表的E-R图2.3.3数据库逻辑结构设计 现将数据库的概念模型转化为ACCESS数据库系统所支持的数据模型,也就是数据库的逻辑结构。在上面的实体以及实体之间关系的基础上,形成数据库中的表格以及各个表格之间的关系。根据本系统的实际情况,本系统的数据库表设计如下:1) 用户的基本资料信息表,主要包括用户名,密码,email等字段。表2-1 用户信息表(user_detail)字段名称字段说明数据类型User_name用户名(关键字)文本Password用户密码文本email用户邮箱文本User_level用户等级文本QqQQ文本user_image用户图像文本2) 用户发帖表,主要包括帖子id,帖名等以下字段。表2-2 用户发帖表(topic_detail)字段名称字段说明字段类型Topic_id帖子ID(主键)自动编号Argue_id所属讨论区ID数字Topic_name帖子主题文本Topic_comment帖子内容文本Topic_user发帖人文本Topic_time发帖时间日期/时间Topic_reply_number回帖数数字3) 用户回帖表,主要包括回帖id,板块id,帖名等以下字段。表2-3 用户回帖表(reply_detail)字段名称字段说明字段类型Reply_id回帖的id(关键字)自动编号Topic_id主帖的ID数字reply_user回帖人文本Reply_time回帖时间日期/时间Reply_comment回帖内容文本4) 讨论区信息表,主要包括讨论区id等以下字段。表2-4 讨论区信息表(user_ArgueInfo)字段名称字段说明字段类型ArgueID讨论区id(关键字)自动编号Moderatename创建者姓名文本aerueTitle讨论区名文本ArgueLevel讨论区级别文本ArgueTime创建时间日期/时间3.详细设计3.1系统公共类设计公共类的设计主要是根据数据库中所建立的表来设计的,将每个表的字段名称封装成一个对象实体,在要调用其中某些属性的时候可以直接调用该对象的一些方法。用户信息类所封装的属性:private String email;/用户邮箱private String user_name;/用户姓名private String password;/用户密码private String qq;/用户QQprivate String user_level;/用户级别private String user_image;/用户头像帖子信息类封装属性设计:private int topic_id;/帖子IDprivate int argue_id;/讨论区IDprivate String topic_name;/帖子姓名private String topic_user;/帖子创建者private String topic_time;/帖子创建时间private int topic_reply_number;/帖子回复数private String topic_comment;/帖子评论回帖信息类封装属性设计:private int reply_id;/回帖IDprivate int topic_id;/帖子IDprivate String reply_user;/回帖人private String reply_time;/回帖时间private String reply_comment;/回帖内容讨论区信息类封装设计:private int argueId;/讨论区IDprivate String argueLevel;/讨论区置顶private String moderateName;/讨论区创建者private String argueTitle;/讨论区名private String argueTime;/讨论区创建时间3.2各功能模块详细设计3.2.1登陆模块在登陆模块中,从jsp界面输入相应信息后,用户单击提交按钮,jsp页面就会将相应的信息传递到servlet处理页面进行处理,servlet处理页面首先需要访问数据库,根据该用户的登录名查找相应的数据表,并获取到用户的信息,然后根据jsp获取的信息来核对数据库中的用户信息,登陆成功后,servlet页面将自动的跳转到jsp页面,并显示登陆的用户信息。String name=request.getParameter(name);/获取输入的用户名String password=request.getParameter(pass);/获取输入的密码String pass=null;String user_image;tryuser u=new user();userDao dao=new userDao();/连接数据库并使用数据库中的userdao类u=dao.getUserByName(name);/在数据库中根据姓名查找pass=u.getPassword();/得到数据库中的密码user_image=u.getUser_image();if(pass.equals(password)/查看输入的密码是否与数据库中的密码匹配out.println(登录成功);HttpSession session=request.getSession();session.setAttribute(user_name,name);/ 获取session中保存的用户登陆的用户名session.setAttribute(user_image,user_image); / 获取session中保存的用户登陆的头像response.sendRedirect(indexx.jsp);/跳转到论坛首页elseresponse.sendRedirect(login.jsp);/登陆失败,跳转到登陆界面catch(Exception e)e.printStackTrace();3.2.2管理员对讨论区的管理管理员管理讨论区的核心代码如下:Jsp页面部分核心代码:a href=index1.jsp?argue_id=  a href=delete_argue?argue_id=删除 a href=change_argue.jsp?argue_id=&argue_level=修改   Servlet处理核心代码:int argue_id=Integer.parseInt(request.getParameter(argue_id);/获取讨论区IDArgueDao ad=new ArgueDao();boolean b=ad.delet_argue(argue_id);/连接数据库删除该讨论区if(b)response.sendRedirect(indexx.jsp);elseout.println( alert(删除失败););response.sendRedirect(indexx.jsp);功能实现说明:当登陆的是管理员时,管理员浏览及查看讨论区功能的实现,是通过对页面的动态初始化获取的,页面会显示出所有讨论区的信息,包括讨论区创建者,讨论区创建时间,讨论区主题,管理员可以点击浏览讨论区,管理员可以通过点击超链接来对讨论区进行删除修改管理,将相应的信息交给相应的后台servlet,servlet会对管理员提交过来的回复进行相应的处理,当servlet处理完成后就直接跳转到上一页,并且重新动态初始化。3.2.3管理员对帖子的管理管理员管理帖子的核心代码如下:Jsp页面部分核心代码:主题作者回复发表时间 管理   Servlet处理核心代码:int topic_id=Integer.parseInt(request.getParameter(topic_id);/得到帖子IDint argue_id=Integer.parseInt(request.getParameter(argue_id);/得到讨论区IDtopicDao td=new topicDao();boolean b=td.delet_Topic(topic_id);/删除帖子if(b)response.sendRedirect(index1.jsp?argue_id=+argue_id);elseout.println( alert(删除失败); );response.sendRedirect(index1.jsp?argue_id=+argue_id);功能实现说明:当登陆的是管理员时,管理员浏览及查看讨论区中的帖子功能的实现,是通过对页面的动态初始化获取的,页面会显示出该讨论区的所有帖子的信息,包括帖子创建者,帖子创建时间,帖子主题,帖子回复数,管理员可以点击浏览帖子,管理员可以通过点击超链接来对帖子进行删除修改管理,将相应的信息交给相应的后台servlet,servlet会对管理员提交过来的回复进行相应的处理,当servlet处理完成后就直接跳转到上一页,并且重新动态初始化。3.2.4用户浏览讨论区功能实现核心代码:Jsp核心代码:%List argueList=(List)request.getAttribute(showArgue); if(argueList=null) % /接受用户等级信息else if(argueList!=null) for(int i=0;i a href=index1.jsp?argue_id=  功能实现说明:当在浏览讨论区时是通过对页面的动态初始化获取的,页面会显示出所有讨论区的信息,包括讨论区创建者,讨论区创建时间,讨论区主题。3.2.5用户创建帖子用户在发帖功能方面的实现。功能实现核心代码:jsp页面核心代码:a href=create_topic.jsp?argue_id=发帖Servlet处理核心代码:SimpleDateFormat df = new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);/设置日期格式String reply_time=df.format(new Date();/ new Date()为获取当前系统时间String user_name=(String)request.getSession().getAttribute(user_name);if(user_name=null)out.println( alert(请先登录);window.location.href=login.jsp );int argue_id=Integer.parseInt(request.getParameter(argue_id);/讨论区IDString topic_name=request.getParameter(topictitle);/发帖子人String topic_comment=request.getParameter(topiccontent);/帖子内容topic top=new topic();topicDao td=new topicDao();top.setTopic_comment(topic_comment);top.setTopic_name(topic_name);top.setArgue_id(argue_id);top.setTopic_user(user_name);top.setTopic_time(reply_time);/初始化帖子的所有信息int i=0;top.setTopic_reply_number(i);boolean b=td.insertUser(top);/连接数据库并插入信息if(b)response.sendRedirect(index1.jsp?argue_id=+argue_id);elseout.println( alert(发帖失败););response.sendRedirect(index1.jsp?argue_id=+argue_id);功能实现说明:用户对发帖功能实现,在填写相应的数据时,系统会给与一定的提示,通过点击提交按钮来进行发帖,将相应的信息交给相应的后台servlet,servlet会对用户提交过来的回复进行相应的处理,当servlet处理完成后就直接跳转到上一页,并且重新动态初始化。3.2.6用户回复帖子用户在登录后,浏览某个帖子后,可以对其进行回复操作。用户对帖子回复的核心代码:int argue_id=Integer.parseInt(request.getParameter(argue_id);String reply=request.getParameter(reply);String user_name=(String)request.getSession().getAttribute(user_name);int topic_id=Integer.parseInt(request.getParameter(topic_id);/得到所有的输入信息if(user_name=null)response.sendRedirect(login.jsp);elseString reply_name=user_name;String reply_comment=reply;SimpleDateFormat df = new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);/设置日期格式String reply_time=df.format(new Date();/ new Date()为获取当前系统时间reply re=new reply();re.setReply_comment(reply_comment);re.setReply_time(reply_time);re.setReply_user(reply_name);re.setTopic_id(topic_id);/初始化回复帖子的所有信息replyDao rd=new replyDao();boolean b=rd.insertUser(re);/连接数据库,将信息插入if(b)response.sendRedirect(index.jsp?argue_id=+argue_id+&topic_id=+topic_id);elseresponse.sendRedirect(index.jsp?argue_id=+argue_id+&topic_id=+topic_id);功能实现说明:当在回复帖子时是通过对页面的动态初始化获取的,页面会显示出所有帖子的信息,包括发帖者,帖子回复时间,发帖者头像,发帖者的评论,当用户将回复的内容提交时,将相应的信息交给相应的后台servlet,servlet会对用户提交过来的回复进行相应的处理,当servlet处理完成后就直接跳转到上一页,并且重新动态初始化。4系统测试4.1 管理员登陆测试管理员登陆可以点击登录页面进行登录,也可以点击主页,然后在点击上面的登陆链接,测试截图如下:图 4-1 论坛首页图 4-2 管理员登陆点击登录按钮之后,若用户名和密码全部正确则跳转到论坛首页,测试图如下:图 4-3 管理员成功登陆4.2 管理员对讨论区的操作测试管理员在成功登录后可以对讨论区进行删除、修改以及新建的操作,当管理员进去任意一个讨论区后,可以对改讨论区的所有帖子进行删除、修改以及新建的操作。4.2.1 删除讨论区操作测试在进入某个讨论后,当点击删除之后,该讨论区以及讨论区的所有帖子和回帖就会被删除,测试截图如下:图 4-4删除之后的截图4.2.2 修改讨论区操作测试在进入某个讨论后,当点击修改操作时,会出现讨论区的修改项,测试的截图如下:图 4-5修改讨论区信息测试修改完成之后点击提交按钮,系统自动跳转到论坛主页面,并显示更新后的信息,测试截图如下:图 4-6成功修改4.2.3 创建讨论区操作测试在成功进入管理员的界面是,会出现创建讨论区的链接,当点击创建讨论区操作时,测试的截图如下:图 4-7创建讨论区信息测试创建完成之后点击提交按钮,系统自动跳转到论坛主页面,并显示更新后的信息,测试截图如下:图 4-8成功创建4.3 管理员对帖子的操作测试4.3.1 修改帖子操作测试在点击某个讨论区后,进入这个讨论区所属的所有帖子,测试截图如下:图 4-9浏览讨论区的所有贴子当单击对帖子的修改操作时,会出现相应的修改项,测试截图如下:图 4-10修改贴子在修改完毕后,点击提交后,界面会自动跳转到上一个界面,并更新所有帖子信息,测试截图如下:图 4-11修改成功4.3.2创建帖子操作测试当点击创建帖子时,会提示填写信息,测试截图如下:图 4-12创建贴子单击提交按钮后,会将更新后的信息重新显示,并回到上一页,测试截图如下:图 4-13创建成功4.3.3删除帖子操作测试当单击删除帖子操作时,所讲帖子的所有信息删除,并更新数据库,测试截图如下:图 4-14删除成功4.3.4浏览回复帖子操作测试当点击任意一个帖子后之后,则会显示该贴的内容,以及回复信息,测试截图如下:图 4-15浏览帖子信息测试用户也可以在下面的回复信息框中输入回复信息,测试如下:图 4-16帖子回复测试点击回复之后的,测试截图如下:图 4-17回复成功截图当然管理员也可以对用户帖子信息的回复进行删除,测试截图如下:图 4-18删除回复测试4.4 用户登录当用户登录时,相较于管理员来说,很多操作将不回显示,测试截图如下:图 4-19用户登录测试当用户成功登录后,界面将跳转到论坛主界面,测试截图如下:图 4-20用户成功登录测试4.5 用户创建帖子当用户进入某个讨论区后,可以进行创建帖子的操作,测试截图如下:图 4-21用户创建帖子测试当点击提交按钮时,系统更新数据库的信息,并显示,测试截图如下:图 4-22用户成功创建帖子4.6用户回帖当用户进入某个帖子后,可以浏览帖子的所有回复以及回复时间,测试截图如下:图 4-23用户浏览帖子当用户回复帖子并单击提交后,会更新数据库并显示,测试如下:图 4-24 用户回帖5总结在计算机网络飞速发展的今天,BBS已经成为人们网上交流的重要平台,因此对BBS论坛的研究是十分必要的。设计和开发了一个最基本的基于

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论