已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要在现代社会,人与人之间的沟通方式有很多种,例如发email,qq聊天等等。但是这些沟通方式都需要在知道对方联系方式的情况下才能进行。如果需要和所有网民进行交流,这时就需要使用另外一种工具,那就是论坛。通过论坛,每个人都可以浏览自己感兴趣的主题,还可以发表自己的主题,也可以回复别人发表了的主题。企业论坛系统就是这样一套系统。 系统利用myeclipse6.5软件和mysql数据库做了一个简单的企业论坛网站,具体可分为前台和后台的管理,实现了对版块信息浏览、用户注册及登录、版块回复及新版块发布和版块管理的统一管理。论文从软件工的角度,阐述了整个开发过程,包括系统的可行性分析、系统使用语言及开发工具的介绍、需求分析、数据库的需求分析以及设计、系统的总体设计和系统完成以后的测试。关键词:企业论坛系统; myeclipse 6.5; mysqlabstractin modern society, communication between people in a variety of ways, such as email, qq chat and so on. but these modes of communication are needed to know each other in contact situations can be carried out. if needed, and all users communicate, then need to use another tool, that is forum. through the forum, everyone can navigate their topic of interest, can also express their theme, also can reply to other published theme. enterprise forum system is such a system.the system uses the software of myeclipse6.5and mysql database to do a simple corporate website, the concrete can be divided into front and back-office management, realize the section information browsing, the user registration and login, view and new releases and reply block section management management.papers from the software engineering perspective, expounded the whole development process, including the system feasibility analysis, system using languages and development tools are introduced, the demand analysis, database demand analysis and the design, the overall design of the system and the system after the completion of testing.keywords:enterprise forum system; myeclipse 6.5; mysql目录1 绪论11.1 研究课题的背景和可行性分析11.1.1 研究课题的背景11.1.2 技术可行性分析11.2 系统实现技术简介11.2.1 java的特点11.2.2 web组件介绍21.2.3 myeclipse 6.5版本简介71.2.4 本程序中使用的开发工具及开发技术82 企业论坛系统分析92.1 企业论坛系统需求分析92.2 企业论坛系统系统分析103 企业论坛系统数据库设计123.1 e-r模型的建立123.2 数据库表的设计134 系统设计164.1 系统总体框架设计164.2 系统具体功能设计164.3 系统详细设计174.4 运行界面225 系统的调试运行与测试295.1 调试运行295.2 测试295.2.1 黑盒测试295.2.2 白盒测试30结束语31致 谢32参考文献33附录 部分源代码34第 iii 页 共iii 页安徽工业大学工商学院 毕业设计(论文)说明书1 绪论1.1 研究课题的背景和可行性分析1.1.1 研究课题的背景在当代社会,人与人之间的沟通方式有许多种,比如说发email,qq聊天等。但是这些沟通方式都需要在知道对方联系方式的情况下才能进行。那么如果需要在未知对方联系方式的前提下进行交流,例如对某些时事的看法,或者对一些书本的看法交流等等,这时就需要使用另外一种工具,论坛就是这样的一种工具。通过论坛,每个人都可以浏览自己感兴趣的主题,还可以发表自己的主题,也可以回复别人发表了的主题。1.1.2 技术可行性分析对于一个论坛系统来说,需要提供前台展现和后台管理两个子系统。其中后台管理系统用来供管理员使用,能够对论坛的版块、子版块信息进行管理。前台展现系统可供所有网友使用,只要网友进入了论坛系统,就能够浏览其他网友已经发表的主题。用户也可以发表自己感兴趣的主题,不过前提是要登录系统,所以该系统还需要提供注册和登录功能,不过默认所有前台注册的用户为普通用户。用户在登录系统后,还可以回复别人发表的主题,从而实现网友之间的互动。所以可以使用jsp做页面显示,用servlet做控制层,协调页面链接,javabean做实体模型1.2 系统实现技术简介1.2.1 java的特点这是我对java特点的一些理解及其归纳: (1)java 的简单性:和c+相比,语法简单了,取消了指针的语法;内存分配和回收不需要我们来过渡关注,c+可以多继承,但java只能是单继承,相对于类来说。(注:接口可以多继承) (2)java面向对象:java算是纯面向对象。 在java编程思想这本书说过,“everything is object!” 这样便于人类的构思和设计,更符合人们的思考问题方式 (3)分布式:主要还是用在ejb上 (4)安全性:java的语法限定了源程序的安全性,首先编译器会进行源代码的第一步检查 (5)跨平台:java能够跨越不同的操作系统平台,平台无关性 怎么跨平台呢? 主要是在不同的操作系统中,jvm规范都是一样的,被jvm加载成各个操作系统所支持的,屏蔽了底层操作系统的差异 (6)高性能:开闭原则-对扩展开放,对修改关闭 java是即时编译的 (7)多线程: java开发的流程: (1)、首先编辑 .java源程序 (2)、编译成 .class字节码文件byte code(一种二进制文件) (3)、最后被java虚拟机(jvm)加载解释并执行。1.2.2 web组件介绍(1)servlet简介servlet是一种服务器端的java应用程序,具有独立于平台和协议的特性,可以生成动态的web页面。 它担当客户请求(web浏览器或其他http客户程序)与服务器响应(http服务器上的数据库或应用程序)的中间层。 servlet是位于web 服务器内部的服务器端的java应用程序,与传统的从命令行启动的java应用程序不同,servlet由web服务器进行加载,该web服务器必须包含支持servlet的java虚拟机。(2)servlet生命周期介绍装载servlet。这项操作一般是动态执行的。然而,server通常会提供一个管理的选项,用于在server启动时强制装载和初始化特定的servlet。 server创建一个servlet的实例 server调用servlet的init()方法 一个客户端的请求到达server server创建一个请求对象 server创建一个响应对象 server激活servlet的service()方法,传递请求和响应对象作为参数 service()方法获得关于请求对象的信息,处理请求,访问其他资源,获得需要的信息 service()方法使用响应对象的方法,将响应传回server,最终到达客户端。service()方法可能激活其它方法以处理请求,如doget()或dopost()或程序员自己开发的新的方法。 对于更多的客户端请求,server创建新的请求和响应对象,仍然激活此servlet的service()方法,将这两个对象作为参数传递给它。如此重复以上的循环,但无需再次调用init()方法。一般servlet只初始化一次(只有一个对象),当server不再需要servlet时(一般当server关闭时),server调用servlet的destroy()方法(3)jsp简介jsp(java server pages)是由sun microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。jsp技术有点类似asp技术,它是在传统的网页html文件(*.htm,*.html)中插入java程序段(scriptlet)和jsp标记(tag),从而形成jsp文件(*.jsp)。 用jsp开发的web应用是跨平台的,既能在linux下运行,也能在其他操作系统上运行(4)jsp的九大内置对象jsp共有以下9种基本内置组件(可与asp的6种内部组件相对应) request对象 客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是httpservletrequest类的实例。 api方法说明 object getattribute(string name) 返回指定属性的属性值 enumeration getattributenames() 返回所有可用属性名的枚举 string getcharacterencoding() 返回字符编码方式 int getcontentlength() 返回请求体的长度(以字节数) string getcontenttype() 得到请求体的mime类型 servletinputstream getinputstream() 得到请求体中一行的二进制流 string getparameter(string name) 返回name指定参数的参数值 enumeration getparameternames() 返回可用参数名的枚举 string getparametervalues(string name) 返回包含参数name的所有值的数组 string getprotocol() 返回请求用的协议类型及版本号 string getscheme() 返回请求用的计划名,如:http.https及ftp等 string getservername() 返回接受请求的服务器主机名 int getserverport() 返回服务器接受此请求所用的端口号 bufferedreader getreader() 返回解码过了的请求体 string getremoteaddr() 返回发送此请求的客户端ip地址 string getremotehost() 返回发送此请求的客户端主机名 void setattribute(string key,object obj) 设置属性的属性值 string getrealpath(string path) 返回一虚拟路径的真实路径 response对象 response对象包含了响应客户请求的有关信息,但在jsp中很少直接用到它。它是httpservletresponse类的实例。 api方法说明string getcharacterencoding() 返回响应用的是何种字符编码 servletoutputstream getoutputstream() 返回响应的一个二进制输出流 printwriter getwriter() 返回可以向客户端输出字符的一个对象 void setcontentlength(int len) 设置响应头长度 void setcontenttype(string type) 设置响应的mime类型 sendredirect(java.lang.string location) 重新定向客户端的请求 session对象 session对象指的是客户端与服务器的一次会话,从客户端连到服务器的一个webapplication开始,直到客户端与服务器断开连接为止。它是httpsession类的实例. api方法说明long getcreationtime() 返回session创建时间 public string getid() 返回session创建时jsp引擎为它设的惟一id号 long getlastaccessedtime() 返回此session里客户端最近一次请求时间 int getmaxinactiveinterval() 返回两次请求间隔多长时间此session被取消(ms) string getvaluenames() 返回一个包含此session中所有可用属性的数组 void invalidate() 取消session,使session不可用 boolean isnew() 返回服务器创建的一个session,客户端是否已经加入 void removevalue(string name) 删除session中指定的属性 void setmaxinactiveinterval() 设置两次请求间隔多长时间此session被取消(ms) out对象 out对象是jspwriter类的实例,是向客户端输出内容常用的对象 api方法说明void clear() 清除缓冲区的内容 void clearbuffer() 清除缓冲区的当前内容 void flush() 清空流 int getbuffersize() 返回缓冲区以字节数的大小,如不设缓冲区则为0 int getremaining() 返回缓冲区还剩余多少可用 boolean isautoflush() 返回缓冲区满时,是自动清空还是抛出异常 void close() 关闭输出流 page对象 page对象就是指向当前jsp页面本身,有点象类中的this指针,它是java.lang.object类的实例 api方法说明class getclass 返回此object的类 int hashcode() 返回此object的hash码 boolean equals(object obj) 判断此object是否与指定的object对象相等 void copy(object obj) 把此object拷贝到指定的object对象中 object clone() 克隆此object对象 string tostring() 把此object对象转换成string类的对象 void notify() 唤醒一个等待的线程 void notifyall() 唤醒所有等待的线程 void wait(int timeout) 使一个线程处于等待直到timeout结束或被唤醒 void wait() 使一个线程处于等待直到被唤醒 void entermonitor() 对object加锁 void exitmonitor() 对object开锁 application对象 application对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了application对象的生命。它是servletcontext类的实例。 api方法说明object getattribute(string name) 返回给定名的属性值 enumeration getattributenames() 返回所有可用属性名的枚举 void setattribute(string name,object obj) 设定属性的属性值 void removeattribute(string name) 删除一属性及其属性值 string getserverinfo() 返回jsp(servlet)引擎名及版本号 string getrealpath(string path) 返回一虚拟路径的真实路径 servletcontext getcontext(string uripath) 返回指定webapplication的application对象 int getmajorversion() 返回服务器支持的servlet api的最大版本号 int getminorversion() 返回服务器支持的servlet api的最大版本号 string getmimetype(string file) 返回指定文件的mime类型 url getresource(string path) 返回指定资源(文件及目录)的url路径 inputstream getresourceasstream(string path) 返回指定资源的输入流 requestdispatcher getrequestdispatcher(string uripath) 返回指定资源的requestdispatcher对象 servlet getservlet(string name) 返回指定名的servlet enumeration getservlets() 返回所有servlet的枚举 16 enumeration getservletnames() 返回所有servlet名的枚举 void log(string msg) 把指定消息写入servlet的日志文件 void log(exception exception,string msg) 把指定异常的栈轨迹及错误消息写入servlet的日志文件 void log(string msg,throwable throwable) 把栈轨迹及给出的throwable异常的说明信息 写入servlet的日志文件 exception对象 exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个jsp页面要应用此对象,就必须把iserrorpage设为true,否则无法编译。他实际上是java.lang.throwable的对象 api方法说明string getmessage() 返回描述异常的消息 string tostring() 返回关于异常的简短描述消息 void printstacktrace() 显示异常及其栈轨迹 throwable fillinstacktrace() 重写异常的执行栈轨迹 pagecontext对象 pagecontext对象提供了对jsp页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的session,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本类名也叫pagecontext。 api方法说明jspwriter getout() 返回当前客户端响应被使用的jspwriter流(out) httpsession getsession() 返回当前页中的httpsession对象(session) object getpage() 返回当前页的object对象(page) servletrequest getrequest() 返回当前页的servletrequest对象(request) servletresponse getresponse() 返回当前页的servletresponse对象(response) exception getexception() 返回当前页的exception对象(exception) servletconfig getservletconfig() 返回当前页的servletconfig对象(config) servletcontext getservletcontext() 返回当前页的servletcontext对象(application) void setattribute(string name,object attribute) 设置属性及属性值 void setattribute(string name,object obj,int scope) 在指定范围内设置属性及属性值 public object getattribute(string name) 取属性的值 object getattribute(string name,int scope) 在指定范围内取属性的值 public object findattribute(string name) 寻找一属性,返回起属性值或null void removeattribute(string name) 删除某属性 void removeattribute(string name,int scope) 在指定范围删除某属性 int getattributescope(string name) 返回某属性的作用范围 enumeration getattributenamesinscope(int scope) 返回指定范围内可用的属性名枚举 void release() 释放pagecontext所占用的资源 void forward(string relativeurlpath) 使当前页面重导到另一页面 void include(string relativeurlpath) 在当前位置包含另一文件 config对象 config对象是在一个servlet初始化时,jsp引擎向它传递信息用的,此信息包括servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个servletcontext对象) api方法说明servletcontext getservletcontext() 返回含有服务器相关信息的servletcontext对象 string getinitparameter(string name) 返回初始化参数的值 enumeration getinitparameternames() 返回servlet初始化所需所有参数的枚举1.2.3 myeclipse 6.5版本简介(1) 平台和安装支持 兼容eclipse 3.3/europa 1.0 支持java 5 & java 6 可运行在windows (xp,vista)、linux、 mac操作系统 (2) 改进了java ee 5 和 spring功能部件 提高ejb3工程项目的灵活度,从数据库模式直接产生bean 支持java持久化结构开发 对spring 2.0升级,增强配置管理功能 升级hibernate spring-jpa高度集成 (3) 支持ajax开发和测试 支持美国apple公司所有的ajax特征能在mac操作系统上运行 改进了ajax web 浏览器 改进了ajax工具 增强了javascript调试 (4) 支持rad web 开发 (5) 具备matisse4myeclipse可视化swing设计器 (6) 快速java ee部署和测试 项目自动部署和启动服务:根据指定的调试和运行模式,自动配置项目和启动服务器;在配置前,自动停止运行的服务器;在现有的应用程序配置中可以重新配置 myeclipse tomcat 6 服务器就地集成,启动只要一秒钟 myeclipse derby 服务器:自动进行jdbc连接;可配置的启动选项 (7) myeclipse学习中心(提供帮助和学习资料) 包含java ee项目源代码 一键安装myeclipse java ee示例项目1.2.4 本程序中使用的开发工具及开发技术本系统的开发工具具体如下。(1)系统开发平台:myeclipse 6.5。(2)数据库管理系统软件:sql server 2005。(3)运行平台:windows 2000/windows xp/windows 2003/windows vista。(4)java开发包:jdk 5.0以上。(5)web服务器:tomcat 6.0。本系统采用mvc架构模式开发,具体技术如下。(1)显示层:使用jsp技术开发(2)控制层:使用servlet技术开发(3)模型层:使用javabean技术开发(4)数据访问层:使用dao模式开发2 企业论坛系统分析2.1 企业论坛系统需求分析企业论坛系统分为前台和后台两个部分,其中后台供管理员管理论坛之用,包括版块设置一个子模块,该模块用来管理论坛的版块和子版块信息,包括新增版块、编辑版块、删除版块以及移动版块等功能子模块。后台版块移动版块删除版块编辑版块新增版块移除图2.1后台系统分析图系统前台用来供所有网友交流之用,包括版块列表、主题列表、显示主题详细内容、发表主题、发表回复、主题管理、用户注册以及用户登录等子模块。具体的功能模块如下。版块列表模块:该模块用来显示论坛的所有根版块以及其下所有子版块,还能够显示子版块下主题的数目以及最后发表记录。主题列表模块:该模块用来显示指定板块下的所有主题信息,还能够显示主题的发表者信息以及回复记录数。显示主题详细内容模块:该模块用来显示主题的详细信息以及该主题下的所有回复信息。前台回复主贴用户注册用户登录板块信息浏览发布新主题图2.2前台系统分析图2.2 企业论坛系统系统分析为方便论坛管理,论坛总共有三种权限:分别是管理员、版主和普通用户。其中管理员权限最大,版主次之,普通用户最小,下面分别对其进行具体说明 图2.3普通用户权限分析三种权限中,普通用户是权限最小的用户,除了浏览论坛外仅可以发表话题、回复和修改自己发表的回帖内容,名字等图2.4版主用户权限分析版主可以看做是用户特殊的一种,他不仅包括普通用户的权限还是每个板块的管理者,除了浏览网页发表和回复信息外,还可以对自己发表的主题及别的用户对其的回复进行管理,例如,对一些非法的主题或回复进行删除或修改图2.5管理员用户权限分析管理员权限是所有用户中最大的,除了可以浏览论坛的所有内容、回复主题、发表新的主题、对所有的帖子及其回帖进行删除和修改,还可以进入后台进行版块及子版块的管理,例如把某子版块移动到别的父版块下,新增加父版块或在某父版块下新增子版块,删除某板块,修改某板块的名称或版主名3 企业论坛系统数据库设计3.1 e-r模型的建立在需求分析基础上,进行总结分析,就可以得出企业论坛系统的基本e-r模型:其四种图形标记分别为:矩形框:表示实体集,矩形框内写明实体名。椭圆框:表示实体的属性,椭圆框内写明属性名。菱形框:表示实体集之间的联系,菱形框内写明联系明。连线:实体与属性之间、联系与属性之间用直线连接;联系与其相关的实体集之间也以直线相连,同时在连线旁边标上联系的类型(1:1 1:n m:n)用户表版块信息表主题信息表回复信息表回复包含发表包含1nn11n111nn1nn1图3.1 基本e-r图上图是企业论坛系统的基本e-r图,没有将属性写出,每个实体都有自己的属性,现在举例将实体“用户”的属性列出如下:图3.2 用户信息实体其他的实体属性与此类似。将所有的实体属性添加以后,可以得到最后完整的e-r图:图3.3 e-r模型总图3.2 数据库表的设计根据分析可得该系统需要四个表。以下是企业论坛系统数据库中的各个表及视图的设计。表3.1 版块信息表(对应bbs数据库中的sectioninfo表)字段名数据类型是否主键描述sidint(整形)是版块编号snamevarchar(文本)否版块名称stopiccountint(整形)否帖子数目smasterideaint(整形)否版主编号sparentidint(整形)否父版块编号该表记录的是版块的基本信息,用版块编号来区别版块的,所以版块编号是惟一的,即是不可重复的,可以通过版块编号类查找版块名称、父版块编号、版主的编号,帖子数目表3.2 主题信息表(对应bbs数据库中的topicinfo表)字段名数据类型是否主键描述tidint(整形)是帖子编号tsidint(整形)否(外键)所属版块编号tuidint(整形)否(外键)发帖用户编号ttopicvarchar(文本)否帖子标题tcontentsvarchar(文本)否帖子内容treplycountint(整形)否回复数目treplycountint(整形)否点击数目tpublictimedate(日期)否发帖时间tmodifytimedate(日期)否修改时间该表记录的是主贴信息,用帖子编号作为主键,来区分各个主题信息,版块编号与用户编号作为其外键,能用外键联动查到版主名称及父版块相关信息,通过主键能查找某个主题信息的包括帖子标题、内容、点击数目、回帖数目等相关信息表3.3 回复信息表(对应bbs数据库中的replyinfo表)字段名数据类型是否主键描述ridint(整形)是跟帖编号rtidint(整形)否回复主贴信息rsidint(整形)否(外键)跟帖所在版块编号ruidint(整形)否(外键)跟帖人编号rtopicvarchar(文本)否跟帖主题rcontentsvarchar(文本)否跟帖rpublictimedate(日期)否跟帖时间rmodifytimedate(日期)否修改时间该表记录的是主贴信息,用跟帖编号作为主键,来区分各个主题信息,版块编号与跟帖用户编号作为其外键,能用外键联动查到用户名称及父版块相关信息,通过主键能查找某个回复信息的包括回复的内容、回复的时间等相关信息表3.4 用户信息表(对应bbs数据库中的userinfo表)字段名数据类型是否主键描述uidint(整形)是用户编号unamevarchar(文本)否用户名upasswordvarchar(文本)否用户密码usexint(整形)否用户性别ufacevarchar(文本)否用户头像路径uregtimedate(日期)否用户注册时间utypeint(整形)否用户类型该表记录的是用户信息,以用户编号作为主键,要保证其唯一性,可以通过主键查找到该用户的用户名,密码,用户性别、用户注册时间,用户类型,及用户头像的保存路径4 系统设计4.1 系统总体框架设计总体设计阶段的基本目的是用比较抽象概括的方式确定系统如何完成预定的任务,也就是说,应该确定系统的物理配置方案,并且进而确定组成系统的每个程序的结构。在对论坛系统进行了需求分析后,设计了系统的一个总体框架(图4-1),如下所示:企业论坛系统用户管理板块管理用户注册版块新增版块修改板块移除板块移动图4.1 总体框架4.2 系统具体功能设计(1)注册注册的用户默认只能是会员,不能注册为管理员,用户名不能为空,长度在3-10个字符之间,密码不可为空,字符在3-20个之间,在注册时密码与重复密码框内必须保持一致。(2)发帖发帖必须保证用户已登录,不然直接跳到登录界面,论坛名称不可为空且长度为4-20,内容在1000字以内且不可为空(3)回帖回帖必须保证用户已登录,不然直接跳到登录界面,回复名称不可为空且长度为4-20,内容在1000字以内且不可为空(4)后台管理进出后台管理界面,强制要求再次登录,管理员可以对现有的父版块及子版块进行删除、修改和移动等操作,也可以新增父版块或子版块(5)板块的新增版块的新增可以在现有的一级版块目录下创建子版块,也可以创建新的主版块,但在创建的时候就要求指明版主(6)板块的删除版块删除会弹出一个警示框,以免发生误操作,板块的删除会连带把旗下所有的子版块及话题全部删除(7)版块修改板块的修改可以修改版块名称,及版主名(8)版块移动版块的移动分为移动成为子版块和版块两种情况,移动成为子版块要求在现有的主版块中选择父版块,进行移动。版块移动就是新建一个新的主版块,因为板块移动分类较复杂,默认其以下的所有包括子版块或者回帖均删除4.3 系统详细设计详细设计阶段的根本目标是确定应该怎么具体地实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序系统的运行环境和调试。详细设计的任务是设计出程序的“蓝图”,在编码阶段就可以根据这个蓝图写出实际的程序代码。如果按前后台分,可以如下所示:前台设计在不登陆的状态下,所有访客均可以随意查看各版块及其子版块的信息,但是如果想进一步对版块进行回复或者发表新的话题,就必须登录,如果该访客不是论坛的会员则需要进行注册。注册成功后,页面会直接回到登陆页面,登陆成功后直接进入论坛首页。登录进入后,可以对感兴趣的帖子进行回复,或者发布新的话题,也可以对自己曾经回复的帖子或发布的帖子进行修改,如果,该访客是论坛中某版块的版主,不但可以修改主贴的内容,还可以对该帖的回复进行管理,例如删除等操作。具体流程见下图:图4.2企业论坛前台框架设计后台设计:系统要求进入后台管理必须是管理员且必须在登录后方可进入,管理员可以对版块及子版块包括管理,包括板块的新增,版块名修改,板块的删除,板块的移动等,具体流程见下:图4.3 企业论坛后台框架设计现将本系统中的主要的功能模块的程序流程图绘制如下:(1) 用户注册在该系统中是默认前台注册的是普通用户,在login.jsp中,在完成页面信息的填入后,点击注册时,会把页面信息分析为一个userinfo对象,先进行查看各个必输场是否完成,在查看是否符合规则,例如,字符长度及字符集只能包含字母数字等,全部符合要求后,会通过sql语句 insert into userinfo values (id,uname,upassword,usex,uface,);进行数据库插入,完成注册后会默认跳到登录界面,如果上述步骤中任一步出错,都无法顺利完成注册,会弹出响应的在注册界面弹出错误信息提示,以便用户修改注册信息。开始用户名输入框是否不为空用户名长度是否在310个密码输入框是否不为空密码重复输入框是否和密码输入框一致密码长度是否为320个注册成功注册失败否是是是是是图4.4 用户注册流程图 (2)回帖回帖必须保证用户已登录,不然直接跳到登录界面,在回复信息的页面,同样需要有一个form,对信息进行收集,在页面信息完成后,点击提交后,先进行信息规则比对,例如:回复名称不可为空且长度为4-20,内容在1000字以内且不可为空等,这些都完成后,会通过,insert into replyinfo values(sid,uid,tid,title,content)对数据库进行插入,相反,如果上述任一步出错,都会造成提交不成功,如果是因为规则的错误,则会在页面上弹出错误信息提示。是否否是是填写回帖信息标题是否为空标题长度是否在4-10内容是否为空内容是否在1000字以内否是否回复失败回复成功图4.5回帖流程图(3)发帖发帖的规则和回帖相似,这里就不赘言了。(4)版块新增只有管理员通过后台登陆才可以进行版块管理,自然板块的新增也不例外,在页面同样会有form对信息进行收集,所填信息包括名称、所属类别、版主,若选择所属类别为子版块时,会联动出现现有版块的下拉列表,通过insert into topicinfo values (tname ,uname,spaertentid)进行数据的插入,同样上述任一步出现错误都会提示新增失败,而所有错误提示都会为“服务器忙”。图4.6版块新增流程图(5)版块编辑只有管理员通过后台登陆才可以进行版块管理,自然板块的编辑也不例外,在页面同样会有form对信息进行收集,点击编辑后。form中会联动出现相应的主版块或子版块的信息,包括:名称及版主,点击提交后会进行数据修改,通过sql语句:update topicinfo set xxx =xxxx 进行修改,同样上述任一步出现错误都会提示新增失败,而所有错误提示都会为“服务器忙”。开始名称是否填写所填版主是否存在修改成功修改失败是是否是否是图4.7版块编辑流程图(6)版块删除只有管理员通过后台登陆才可以进行版块管理,自然板块删除也不例外,相较于其他,版块删除的页面要简单的多,只要点击删除按钮,就会弹出一个确认窗口,要求确认是否删除,点是,就会执行sql语句,delete topicinfo where tid=xxx ,其中tid是页面跳转带来的值,如果点否,自然是放弃删除该板块。 开始是否删除删除成功删除失败是否图4.8版块删除流程图4.4 运行界面在完成系统的详细设计后就可以进行代码和界面的设计了,系统源代码及注释请参看附录一。以下是系统设计完成后运行的主要界面及相关说明:主界面: 显示主版块和子版块及其版主和主题个数,点击板块名称,会联动显示出该板块下相关的主题,如果是父版块会显示它的子版块,点击左上方的登录和注册会跳转带响应的登录或注册界面。图4.8 系统主页面注册界面: 默认注册是会员,顺利注册后字直接页面跳转到登陆界面,看下图可知,填写的信息包括用户名,密码,性别和选择的头像路径。图4.9 用户注册页面登陆界面: 以用户名和密码登录,如果是已存在的会员,填写正确的用户名和密码后点击登录,页面会直接跳转到论坛首页,如果访客是未注册的,那么点击左上方的注册,就能跳转到注册页面。图4.10 用户登录界面回帖界面: 看下图就可以看到,回帖必须在用户已登录的状态下,该页面填写的内容有回帖标题及回帖内容,表他要求是310个字符,内容11000字符,正确填写后点击提交会回到所回帖的版块信息列表页,点击重置按钮,会刷新该页面,即把标题框和内容框全部清空,点击坐上方的退出按钮,就会回到论坛的主页面。图4.11 用户回帖界面发帖界面: 看下图就可以看到,发帖必须在用户已登录的状态下,该页面填写的内容有发帖标题
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 股东分红房产购置合同模板
- 生态农业二手房买卖合同样本
- 艺术展览室PVC地板施工合同
- 兼职人员短期聘用合同模板
- 创新型羊圈施工合同范文
- 塑料制品设备租赁合同范本
- 【初中道法】增强安全意识教学课件-2024-2025学年统编版道德与法治七年级上册
- 初中交通安全教育主题班会
- 2024年图书馆用水水箱采购合同
- 感恩的演讲稿2024
- 地形图测绘报告
- 《数学广角-集合》说课稿
- 2024无障碍环境建设法知识竞赛题库及答案
- 2024-2025学年部编版语文八年级上册 期中综合测试卷(四)
- 2024至2030年中国别墅行业投资前景分析预测及未来趋势发展预测报告
- 初中七年级上册综合实践活动 低碳生活从我做起 教学设计
- 2024中石油校园招聘高频考题难、易错点模拟试题(共500题)附带答案详解
- 医师定期考核(简易程序)练习及答案
- 2024-2030年中国会计师事务所行业深度分析及发展前景与发展战略研究报告
- 2024年国有企业新质生产力调研报告
- 2024年安全员A证考试试题库附答案
评论
0/150
提交评论