ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:175.50KB ,
资源ID:3931366      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3931366.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(jspjavabbs论坛的设计与实现资料讲解.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

jspjavabbs论坛的设计与实现资料讲解.docx

1、jspjavabbs论坛的设计与实现资料讲解在大学生对DIY手工艺品价位调查中,发现有46% 的女生认为在十元以下的价位是可以接受;48% 的认为在10-15元;6% 的则认为50-100元能接受。如图1-2所示(一)创业机会分析人民广场地铁站有一家名为“漂亮女生”的饰品店,小店新开,10平方米不到的店堂里挤满了穿着时尚的女孩子。不几日,在北京东路、淮海东路也发现了“漂亮女生”的踪影,生意也十分火爆。现在上海卖饰品的小店不计其数,大家都在叫生意难做,而“漂亮女生”却用自己独特的经营方式和魅力吸引了大批的女生。服饰 学习用品 食品 休闲娱乐 小饰品4、宏观营销环境分析功能性手工艺品。不同的玉石具

2、有不同的功效,比如石榴石可以促进血液循环,改善风湿和关节炎;白水晶则可以增强记忆力;茶晶能够帮助镇定情绪,缓解失眠、头昏等症状。顾客可以根据自己的需要和喜好自行搭配,每一件都独一无二、与众不同。1、作者:蒋志华 市场调查与预测,中国统计出版社 2002年8月 11-2市场调查分析书面报告2003年,上海市总人口达到1464万人,上海是全国第一个出现人口负增长的地区。10元以下 1050元 50100元 100元以上公司还组织各国的“芝自制饰品店”定期进行作品交流,体现东方女性聪慧的作品曾在其他国家大受欢迎;同样,自各国作品也曾无数次启发过中国姑娘们的灵感,这里更是创作的源泉。目录1、背景及意义

3、 网络的兴起与发展,极大地改变了人们的思维和行为习惯。基于网络的应用也层出不穷,论坛就是最早兴起的应用之一。作为一种传递消息的方式,最早的BBS的作用是公布股市的即时消息,而随着时代的发展,现在的BBS的内容已达到无所不包的程度。小到生活趣事,大到专业知识,各种各样的主题论坛让人眼花缭乱。论坛网页的形式也由最初的静态页面发展到现在的动态页面,更好的实现了用户之间的交互。财大家园论坛就是通过动态Web开发技术和数据库技术实现的以财大学生与老师为主要服务对象的一个基于现实环境之上的一个网上论坛,力求创造出一个模拟的网上校园虚拟环境。此论坛是基于B/S模式的一种JSP网页论坛的设计与实现,力求做到界

4、面友好、简单和易于操作。论文从几个大的方面来对系统的开发做出了阐述。在系统分析一章从需求分析和可行性分析两方面来做具体阐述;系统整体设计则从系统目标、系统功能划分和系统开发环境三大方面说明,结合后面的系统详细设计与实现一章完成对系统从整体到细节的全方位的理解。开发BBS论坛系统的目的是为了提供一个大家交流的平台,供人们发表看法、探讨经验、讨论问题。因此,BBS论坛系统的最基本的功能是发表主题,其次是其它人员根据主题发表自己的看法,即回复主题。考虑到现实情况,并不是每一个访问的游客都具有发表主题的权利,所以必须用一个身份绑定用户,赋予其发表主题的权利,这就需要实现用户注册及登录的功能。每一个系统

5、都需要管理员这个特殊群体的存在,所以也需要实现管理员登陆的功能。管理员区别于一般用户的地方在于,管理员往往具有更高的权限,有权对用户信息和帖子内容作出某些“增删改查”的操作,所以,针对管理员,系统应该实现删除和修改帖子以及对用户的管理等功能,以实现管理员对社区的管理 。考虑到社区访问量会很大,用户发表的帖子的数量自然很多,在浩瀚的帖子海洋中,如何才能查看自己感兴趣的帖子成为了一个不得不考虑的问题。所以,系统还应该实现搜索帖子的功能,用模糊查询的方法,对社区的帖子进行筛检的工作。本系统针对用户还实现了一个特殊的功能,即邮件发送。如果某个用户对其他的用户感兴趣,那么可以通过将邮件发送到指定用户注册

6、时所填写的邮箱地址,这样的话,就能够实现即时通讯的功能。2 系统总体设计 1 系统目标基于BBS论坛在现实生活的实际应用,本系统的系统目标是提供一个以现实环境为基础的网上模拟交流平台,通过它,人们可以不必拘泥于空间和时间上的限制,方便交流,畅所欲言,同时也能够更加便利的看到周围人的想法,观点,最大化的丰富人们的视野和生活,让人随时都能身在其中,随时也能置身事外。2 系统功能划分2.1 前台功能结构系统的前台初始页面如下,登录地址为“http:/localhost:8080/BBS”:图2-1财大家园网首页当用户登录到论坛首页时,其默认的身份就是游客,只能查看、回复、搜索帖子,而不能执行发帖等其

7、它操作。如果用户为非注册用户,则其可以进行注册以获得一个登录身份。如果用户为已注册用户,则其可以直接进行登录,然后以注册用户的身份执行诸如发表新主题、查看新主题、回复主题、搜索主题等一系列操作。此时,用户已经具有了一种身份,此后用户可以以此种身份执行诸如发表新主题、查看主题、搜索主题、回复主题等操作。2.2 后台功能结构后台功能主要是针对管理员而设置的,用户以管理员的身份登陆后,就能执行后台管理的操作,具体到此BBS论坛,主要是指删除和修改主题以及对用户信息的管理。后台系统流程图如下: 图2.2 后台系统流程图2.3 系统开发环境1 开发环境在建立工程前,需要首先搭建开发环境。此BBS论坛系统

8、的开发需要用到以下几种工具,故开发前需要进行相应的下载和安装:开发平台:MyEclipse 9.0M2Web服务器:Tomcat 7.0.5数据库服务器:MySQL 5.1Java开发工具:JDK 1.6.0辅助工具:Dreamweaver CS42 系统平台体系结构的选择在系统开发领域内,目前存在两大主流系统平台的开发结构,一种是C/S结构,而另一种是B/S结构。C/S结构,即大家熟知的客户端/服务器结构,是一种应用较早,相对传统的开发模式。通过它,可以充分利用两端硬件环境的优势,将任务合理的分配到Client端和Server端,降低了系统的通讯开销。B/S结构,即浏览器/服务器结构,是随着

9、Internet的兴起,对C/S结构的一种变化或者改进。在这种结构下,用户不需要借助于客户端软件,通过WWW浏览器,即可实现系统的全部既定功能。在这种模式下,一部分事务逻辑在前段实现,但是主要事务逻辑在服务器端实现,大大简化了客户端电脑载荷,减轻了系统维护与升级的成本,从而降低了用户的整体成本。从开放程度来说,传统的C/S结构虽然采用的是开放模式,但这个开放性只是针对系统开发一级的,在特定的应用中,无论是客户端还是服务器端都还需要特定的软件支持。而B/S结构,是一次性到位的开发,应用此模式开发的系统,不同人员,在不同地点,以不同的接入方式(比如LAN、WAN等)访问并操作共同的数据库,能有效地

10、保护数据平台和管理访问权限,服务器的数据库也很安全。特别是在Java这样的跨平台语言出现之后,B/S架构管理软件起来更是显得方便,快捷和高效。可以说,B/S是乘着Internet兴起的风而杨风远航的,是适应时代的产物。但是,B/S也存在着自己的不足,比方说其在大量数据分析,实时控制应用方面就存在着需要改进的地方。综合考虑,本系统还是考虑使用当下流行的B/S结构作为系统的开发模式。3 JSP概述JSP是由Sun公司在Java语言的基础上开发出来的一种动态网页制作技术,其将标记插入到页面中,从而使网页中的静态部分和动态部分分离开来。JSP是类似ASP的一种技术,在传统的静态网页HTML文件插入Ja

11、va程序段和JSP标记,就形成了JSP文件。 JSP技术的强势在于:1、一次编写,到处运行。在更换系统时,代码不需要做任何修改。2、系统的多平台支持。基本上可以在所有平台上的任意环境下开发,在任意环境中进行系统部署,在任意环境中扩展。3、强大的可伸缩性。通过小小的jar文件运行servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,一台服务器到无数台服务器,JSP表现了强大的可伸缩性。4、多样化和功能强大的开发工具支持,常用的编辑工具有Dreamweaver和MyEclipse等。3.3.5 MySQLMySQL可以称得上是目前运行速度最快的SQL语

12、言数据库,除了具有许多其他数据库所不具备的功能和选择外,MySQL数据库是一种完全免费的产品,用户可以直接从网上下载数据库,用于个人和商业用途,而不必支付任何费用。3.3.6 JDBC技术数据库管理是每个应用系统开发过程中不得不考虑的问题,目前主流的数据库有Oracle、SqlServer、MySql等。不管使用何种技术,都离不开JDBC技术的支持。JDBC的全称是Java DataBases Connectivity standard,即Java数据库连接,是一种数据库通用接口采用的主流技术。其定义了用来访问数据库源的标准Java类库,通过它使用一种标准方法,就能够方便的访问数据库资源。所以

13、,JDBC又是一种规范,其目标是使应用程序开发人员通过它连接任何提供JDBC驱动程序的数据库系统,这样就使得程序员无需对某种数据库有过多的了解,大大加快了开发过程。有了JDBC,向各种数据库发送SQL语句就是一件再简单不过的事了。换言之,有了JDBC,就不必为访问数据库A专门再写一个程序,又为访问数据库B专门写一个程序。所以,JDBC为Java应用程序与各种不同数据库之间进行对话提供了一个标准的方法,这也是Java语言“一次编写,到处运行”的优势。4 数据库设计4.1 数据库分析数据库的设计,在应用系统的开发中起着举足轻重的作用。一个合理、有效的数据库设计不仅是做好系统的保证,也能降低程序的复

14、杂性,使程序的开发过程变得更加容易。本系统是一个中型的BBS论坛系统,考虑到用户信息量和用户需求等问题,决定采用MySQl作为项目用数据库。MySQl是一个中小关系型数据管理系统,最初由MySQL AB公司发布。MySQL由于体积小、速度快、总体拥有成本低等原因,成为许多中小型网站数据库的首选。MySQL可以称得上是目前运行速度最快的SQL语言数据库,此外,MySQL数据库是一种完全免费的产品,用户可以直接从网上下载数据库,用于个人和商业用途,而不必支付任何费用。4.2 数据库概念设计ER图是实体联系图,E-R模型是对现实世界的一种抽象。其组成部分主要包括实体、联系和属性。使用这三种成分,我们

15、可以很好的抽象出现实世界中的个体,并通过彼此之间的联系来抽象整个世界。E-R模型是设计数据库时经常使用到的方法。经过分析,本系统创建了五张数据库表,即帖子表(article)、版块表(edit)、用户等级表(grade)、用户表(user)和管理员表(admin)。下面划分出本系统所使用的数据库实体,它们分别为用户(User)和帖子(Article)以及管理员(admin)。以下是帖子、用户和管理员的实体图: 图4-1 帖子实体图4.3 数据库的逻辑设计1、帖子表(Article)下面是对表Article的具体设计表4-3 article字段名属性约束意义1idintprimary key帖子

16、id2pid int无父亲id3rootidint无根id4editNoInt无所属版块5titlevarchar(30)无标题6conttext无内容7pdatedatetime无发帖时间8writervarchar(30)foreign key作者9viewCountint无帖子查看量10replyCountint无帖子回复量11isleafint无判断帖子是否为叶子节点12isEssenceint无判断帖子是否为精华帖说明:*id是帖子的编号,为本表的主键。 *pid是父亲id的编号,表示被回复的帖子id号。 *rootid表示根贴的id号,表示最初发起主题的帖子id号。 *editNo

17、表示帖子所属的板块号,每个版块的帖子分版块区别显示。 *title表示帖子的主题。 *cont表示帖子的内容。 *pdate表示发帖的具体时间。 *writer表示发帖的作者,此外键对应user表中userName字段。 *viewCount表示帖子的查看量。 *replyCount表示帖子的回复量。 *isLeaf判断帖子是否为叶子节点,值为1时表示为非叶子节点;为0时表示为叶子节点。 *isEssence判断帖子是否为精华帖,值为1是表示是精华帖;反之,则不是。 4 系统详细设计与实现4.1 前台设计系统的前台,即是直接面向用户的所有页面。因为前台的功能模块较多,而各个模块的实现过程都是类

18、似的,所以对于系统前台的介绍,只是做有选择的系统重点设计介绍。1 前台页面设计与实现本系统的所有页面都采用了统一的简化页面框架,包括页头和内容显示区。前台首页的页面运行结果已在前文中出现过,此处不再累述。下面主要介绍前台首页面index.jsp的具体实现。由于论坛是以主题分版块展示的,下面以其中一个板块页面做详细介绍。部分主要代码如下:% List articles = new ArrayList(); Connection conn = DB.getConn(); /创建与数据库的连结 Statement stmt = DB.createStmt(conn); /通过连结创建Statemen

19、t对象 String sql = select * from article; ResultSet rs = DB.executeQuery(stmt, sql ); /执行sql语句,并返回结果集 while (rs.next() Article a = new Article(); a.initFromRs(rs); articles.add(a); /记录总查看量 int totalViewNum=0; /记录帖子总数 int totalArticleNum=0; /*查询出帖子的总查看量*/ for (Iterator it = articles.iterator(); it.hasN

20、ext();) Article a = it.next(); totalViewNum+=a.getViewCount(); /*查询出帖子的总回复量*/ String sql1=select count(id) from article where pid=0; ResultSet rs1 = DB.executeQuery(stmt, sql1); rs1.next(); totalArticleNum = rs1.getInt(1); /*查询出最后的发帖作者*/ String sql2=select * from article order by pdate desc; ResultS

21、et rs2 = DB.executeQuery(stmt, sql2); while (rs2.next() Article a = new Article(); a.initFromRs(rs2); articles.add(a); Iterator it1 = articles.iterator(); Article a1=it1.next(); String lastWriter=a1.getWriter(); DB.close(rs2); DB.close(rs1); DB.close(rs); DB.close(stmt); DB.close(conn); %以上的语句实现的有三个

22、功能:1、查询出帖子的总查看量;2、查询出帖子的总回复量;3、查询出最后的发帖作者。这些都是对整个板块的总体统计,是对板块信息的最直观的展现。2 用户登录、管理员登录在论坛首页,提供了三个登录、注册入口,包括:用户注册/登录、管理员登录;通过点击如下链接,进入到对应各个界面。普通用户注册 普通用户登录 管理员登录入口1)用户登录用户完成注册后,就可以进行用户登录的操作,用户登陆页面如下:图4-3 用户登录界面在用户登录时,如果用户名或密码输入有误,则会出现“invalid username or password”的错误信息提示,然后页面返回到登陆页面供用户修正输入继续登录。3 论坛版块的展示

23、版块页面运行效果图4-4 “最初的梦想“版块页面运行效果图从运行效果来看,此处运用了分页技术。分页技术实现的关键点依赖于一条重要的sql语句,具体如下:Select * from Table order by 参数1 limit startPage+”,” endPage;其中,Table是所要查询的表名称; startPage是起始页面; endPage是结束页面。执行的效果是查询出排序结果的制定起始行到指定结束行的所有页面。板块页面的展示是通过一个循环来实现的,在循环的基础上,为页面实现了一个优化:奇偶行以不同的显示效果展现。优化的方式主要向jsp页面导入class文件,在导入的时候,针对

24、行数的奇偶性采取不同的对应操作。主要代码如下:%int lineNum = 0; for(Iterator it = articles.iterator(); it.hasNext();) Article a = it.next(); String classStr = lineNum % 2 = 0 ? jive-even : jive-odd; /区分奇偶行,以不同效果区分显示%实现代码具体如下:代码段1:获取制定部分行的查询结果% final int PAGE_SIZE = 8; /每页显示的主题数目 int pageNo = 1; /记录当前页数 String strPageNo =

25、request.getParameter(pageNo); if (strPageNo != null & !strPageNo.trim().equals() try pageNo = Integer.parseInt(strPageNo); catch (NumberFormatException e) pageNo = 1; if (pageNo = 0) pageNo = 1; int totalPages = 0; /记录符合要求的总主题页数 List articles = new ArrayList(); Connection conn = DB.getConn(); Statem

26、ent stmtCount = DB.createStmt(conn); ResultSet rsCount = DB.executeQuery(stmtCount, select count(*) from article where pid=0); rsCount.next(); int totalRecords = rsCount.getInt(1); totalPages = (totalRecords + PAGE_SIZE - 1) / PAGE_SIZE; if (pageNo totalPages) pageNo = totalPages; Statement stmt = D

27、B.createStmt(conn); int startPos = (pageNo - 1) * PAGE_SIZE; String sql = select * from article where pid=0 order by pdate desc limit + startPos + , + PAGE_SIZE; ResultSet rs = DB.executeQuery(stmt, sql); while (rs.next() Article a = new Article(); a.initFromRs(rs); articles.add(a); 代码段2:将获取的结果根据行号的

28、奇偶性分页展示:%int lineNum = 0;for (Iterator it = articles.iterator(); it.hasNext();) Article a = it.next(); String classStr = lineNum % 2 = 0 ? jive-even : jive-odd; TR class=4 发表新主题在论坛版块展示页面中,注册用户可以执行发表新主题的操作,对游客而言,则不能实现此功能。这个功能是通过区分用户登录方式的不同而实现的,非注册用户点击“发表新主题”的连接后会出现一个错误提示及跳转页面,以提示用户目前处于“非登录用户”状态,无权发表新

29、主题。已注册用户成功登陆后,则可以进行发表新主题的操作,运行页面效果如下:图4-5 发表主题页面成功发表后,所发表主题会显示在论坛版块展示页面下(图4-5)。5 查看及回复主题点击主题链接,进入主题查看页面。图4-6 主题显示页面在此页面,用户点击“回复”按钮,即可进入到回复主题页面,运行效果如下。图4-7主题回复页面在此,需要说明的是:为了美化回复的效果,在此加入了Fckeditor网页编辑器。具体实现步骤为:首先从网上下载一个Fckeditor,将解压文件拷贝到工程“WebRoot”目录下,然后到压缩包解压文件“FCKeditor2.6.4 ”下的路径:“fckeditor_sampleshtmlsample02.html”下,打开静态页“sample02.html”,然后将其代码复制、粘贴到回复页面“reply.jsp”。修改即可。修改后的代码段如下:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1