版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、常州信息职业技术学院 毕业设计(论文)报告常州信息职业技术学院学生毕业设计(论文)报告全套设计加扣 3012250582系 别: 软件学院 专 业: 软件技术 班 级: 中软131 学 生 姓 名: 学 生 学 号: 设 计(论文)题目:基于WEB的游戏论坛的设计与实现 指 导 教 师: 设 计 地 点: 起 迄 日 期: 2015.06.192015.08.01 毕业设计(论文)任务书专业 软件技术 班级 中软131 姓名 一、课题名称: 基于WEB的游戏论坛的设计与实现 二、主要技术指标: 1、用户界面美观大方、系统可正常运行 2、论文格式应符合规范,主要包含:1)选题背景与意义; 2)软
2、件开发 与运行环境;3) 软件设计过程(主要包含总体方案与详细模块设计、数 据库设计、程序设计); 4)软件运行效果; 5)设计总结 3、论文中应有一定数量的流程图、程序代码、运行效果截图等内容 三、工作内容和要求: 1、系统总体设计、功能模块设计 要求:1) 本模块与课题由本人 独立完成; 2)整理设计结果文档 2、数据库设计 要求:1)本模块与课题由本人独立完成; 2)包含数据库系 统的表结构图、表间关系统描述 、各模块用到的视图和存储过程 3、用户界面设计 要求:1)直观地体现各模块的功能;2)界面友好 4、程序设计与功能调试 要求: 1)程序结构清晰,便于检查和调试;2)所 写程序应符
3、合功能设计的要求; 3)访问数据库部分全部编写相应的存储过程 5、编著毕业设计论文 要求:1)论文中应含各项工作内容; 2)论文的最后 部分应含设计总结; 3)满足要求的字数、严禁抄袭 四、主要参考文献:_ _ 1、Bruce Eckel. java编程思想M.第四版. 北京:机械工业出版社. 2007年. 2、李刚. 疯狂java讲义M. 北京:电子工业出版社.2012年. 3、李兴华. java开发实战经典M. 北京:清华大学出版社.2009年. 4、孙鑫. java web开发详解M. 北京:电子工业出版社.2012年. 5、布里泰恩. Tomcat权威指南M. 北京:中国电力出版社.2
4、010年. 学 生(签名) 年 月 日 指 导 教师(签名) 年 月 日 教研室主任(签名) 年 月 日系 主 任(签名) 年 月 日毕业设计(论文)开题报告设计(论文题目)基于WEB的游戏论坛的设计与实现一、 选题的背景和意义: 网站打造的可互动的环境可以称为一个论坛,而用户在论坛中的行为称为社交,一群人聚集在一个环境中交流。一直以来都有个感触,对于互联网产品而言,貌似几乎所有的产品都希望搭上论坛的概念,有了社交这层意义后不仅意味着有了UGC,而且产品也就成为了一个可以依靠用户自身创造内容而自行循环的系统。游戏论坛的目标用户群体自然是游戏玩家,我们可以列出游戏玩家的很多心理特性,例如攀比心强
5、、喜欢炫耀等,只可惜并不是用户的一个特性就适用于所有的产品的。理想愿景中,游戏厂商是希望借助论坛让网络玩家之间能够互推游戏,既加深所玩游戏的深度并且增加玩家接触新游戏的可能性。二、 课题研究的主要内容:本课程主要研究游戏论坛的设计与实现。该项目前台开发工具采用MyEclipse8.5,后台数据库采用MySQL5.0。前台主要功能是显示各论坛类别及版面、查看版面下所有根帖、查看自己发表的帖子、搜索帖子、查看根帖内容、用户注册、用户登录、发表帖子、回复帖子;后台主要功能是论坛类别管理、版面管理、用户管理、用户注册。本文主要研究该项目的总体设计、模块划分、模块详细设计及编程关键技术。三、主要研究(设
6、计)方法论述:本课题采用B/S结构进行开发,前台开发工具采用MyEclipse8.5,后台数据库采用MySQL5.0。本项目主要使用的是MVC设计模式进行设计开发,项目中访问数据库统一通过对应 Bean 的DAO 类来操作。 在这些DAO类中,定义了相关Bean的增删改查的方法,此外还专门有一个BaseDAO类,该类是实际执行SQL语句的类,在Bean类对应的DAO类中只是写了SQL语句,通过在DAO类中定义一个BaseDAO类的成员对象,来执行SQL语句。使用MVC和BaseDAO这种设计的主要优点是易于项目的后期维护与管理,将执行SQL语句的方法统一交给一个类来管理,而数据库的连接操作也是
7、只有BaseDAO类来实现。另外,在数据库设计方面,用户、回复、主题、版块各为一张表,在项目中,每个表对应一个Bean,每个Bean对应一个DAO;这样一来,项目的结构也很清晰。四、设计(论文)进度安排:时 间工 作 内 容2015.6.192015.6.23联系指导老师、确定选题2015.6.232015.6.24毕业设计任务书2015.6.242015.6.26完成开题报告2015.6.262015.6.27收集资料,修改开题报告2015.6.272015.7.06毕业设计论文撰写2015.6.262015.7.16毕业设计的部分编码2015.7.162015.7.24毕业设计报告初稿的编
8、写2015.7.242015.7.31毕业设计论文、全部编码以及项目测试五、指导教师意见: 指导教师签名: 年 月 日六、系部意见: 系主任签名: 年 月 日目 录摘 要6Abstract7第1章 引言11.1课程的性质11.2选题背景与依据1第2章 软件开发与运行环境介绍22.1 软件开发环境22.2 软件运行环境32.2.1前台客户端运行环境32.2.2后台服务器端运行环境3第3章 分析设计43.1可行性分析43.2需求分析53.3论坛内容板块53.4论坛管理策略63.5系统分析63.5.1 绘制用例图设计系统功能63.5.2绘制系统流程图73.5.3数据库分析与设计8第4章 论坛设计与实
9、现104.1 开发平台搭建104.2 程序结构104.3 系统的实现114.3.1 登陆、注册模块的设计与实现114.3.2 展示模块的设计与实现164.3,3 后台编辑版块功能的设计与实现194.3.4 搜索模块的设计与实现22第5章 总结与致谢25参考文献26摘 要论坛也就是人们常说的BBS(Bulletin Board System),也许有些人不了解,在最早的时候,BBS只是在苹果系统上用来公布股市价格信息的一个工具。到现在,BBS的功能已经有了很大的扩充与完善,每个行业都有自己所属的BBS。通过BBS,人们可以及时了解到一个行业的最新消息,也可以将自己知道的消息发到BBS上与别人共享
10、。本论坛主要是为各类游戏玩家设计。论坛有前台和后台两个大的部分,这两个部分又分为以下几个功能模块:前台主要功能是显示各论坛类别及版面、查看版面下所有根帖、发表回复帖子、搜索帖子等功能;后台主要功能是论坛类别管理、版块管理、用户管理。对于后台部分的用户管理,主要是对管理员进行操作。本系统采用MVC设计模式进行开发。项目中访问数据库统一通过每个 Bean 对应的DAO 类来操作。此外还专门有一个BaseDAO类,该类是实际执行SQL语句的类,在DAO类中定义一个BaseDAO类的成员对象,通过baseDAOL执行SQL语句。使用MVC和BaseDAO这种设计的主要优点是将执行SQL语句的方法统一交
11、给一个类来管理,易于项目的后期维护与管理。关键词:BBS、游戏论坛、MVC、DAO、设计模式AbstractThe forum is also known as BBS (Board System Bulletin), perhaps some people do not understand, at the earliest time, BBS is only used to publish a tool for the stock market price information on apple system. By now, the function of BBS has been g
12、reatly expanded and improved, each industry has its own BBS. By BBS, people can learn the latest news in an industry, you can also know the message sent to the BBS and others to share.This forum is designed for all kinds of game players. The forum has the onstage and the backstage two major parts, t
13、he two parts is divided into the following function modules: foreground main function is to display category and the layout of the forum, see the layout of all root posts, a reply to posts, search posts and so on; the main functions of the background is the Forum category management, forum managemen
14、t, user management. For the background of the user management, mainly for the administrator to operate.This system uses the MVC design pattern to carry on the development. Items in the database are unified by each DAO corresponding to the Bean class to operate. In addition, there is also a BaseDAO c
15、lass, which is the actual implementation of the SQL statement class, in the DAO class to define a class BaseDAO member objects, through the baseDAOL SQL statement. Using MVC and BaseDAO, the main advantage of this design is that the implementation of the SQL statement to a class of methods to manage
16、, easy to maintain and manage the project.Key words: BBS, Game Forum, MVC, DAO, design pattern常州信息职业技术学院 毕业设计(论文)报告第1章 引言1.1课程的性质本毕业设计是计算机软件开发类的课题,主要研究方向为基于B/S模式的基于WEB的游戏论坛的设计与实现一个为各类游戏玩家提供的交流性平台。1.2选题背景与依据论坛就是人们口中的BBS,在BBS刚出现的时候,它只是在苹果系统上用来公布股市价格信息的工具。到后来,有些人尝试着将BBS转移到个人计算机上,自此开始,BBS才被人熟知与使用。到现在,BB
17、S的功能已经有了很大的扩充与完善,每个行业都有自己所属的BBS,通过这个BBS,人们可以及时了解到这个行业的最新消息,也可以将自己知道的消息发到BBS上与别人共享。论坛又可以分为好多好多种,有教学型论坛、综合类论坛、专题类论坛、推广型论坛、交流性论坛等等。对于游戏论坛来说,无疑就是交流性论坛,游戏论坛的使用者自然也就是各种游戏玩家了,而且这些玩家大多数都是青少年。在游戏论坛中,有多种游戏的版块,每位游戏爱好者都可以在论坛中找到自己喜欢的游戏对应的版块,并且可以在该版块中发帖、回帖来与众多有相同爱好的朋友交流。先来了解一下网络游戏的整体市场,从2000年左右开始起步发展,到2007年开始,整体的
18、市场规模与数量得到了非常大的发展,增长率甚至达到了400%。包括2003年或者更早以前的棋牌类网络游戏,到之后的RPG(Role-playing game)等等。实际上这些游戏的出现,与游戏新类型的出现,都慢慢在扩大网络游戏的市场,由于这些游戏分类也更加繁多与精细,这就更加使得网络游戏细分市场。就以舞蹈类游戏来说,从以前的休闲类游戏到现在的劲舞团类游戏,网络游戏从一个大类逐渐变成了一个细分的市场。而且在中国,游戏给游戏厂商带来的利润也是非常可观的,对于各种游戏玩家来说,就需要一个论坛来交流自己玩游戏的体验、心得、困惑与难处。游戏厂商可以通过游戏论坛为自己的游戏做广告,来让玩家互推游戏,这样可以
19、加深玩家对游戏体验的深度,也可以让玩家接触新开发的游戏。BBS一般用于大型公司或一些中小型企业,是一个用来方便客户交流的平台,用户可以发表一个主题,让大家一起来研究、讨论,也可以提出一些问题,让大家一起解决,论坛具有较强的实时性、互动性。第2章 软件开发与运行环境介绍2.1 软件开发环境1. 开发环境在开发该游戏论坛的时候,使用的以下的环境进行开发: 操作系统:Windows7。 Web服务器:Tomcat 6.0.32。 Java开发包:JDK 1.6。 数据库:MySQL。 浏览器:IE8.0。 分辨率:最佳效果为1366768像素。本系统采用MVC架构模式开发,具体技术如下。显示层:使用
20、JSP技术开发控制层:使用Servlet技术开发模型层:使用JavaBean技术开发数据访问层:使用DAO模式开发2.系统平台结构的选择在当下的应用开发中,目前系统平台的体系结构主要有C/S(Client/Server)结构和B/S(Brower/Server)结构两种。C/S结构,即客户端和服务器端结构。在几年前,它是软件系统主要的体系结构,因为这种结构可以充分利用两端的硬件环境的优势,将任务合理的分配到Client端和Server端来处理,降低了系统的通讯开销 。B/S结构,即浏览器对服务器结构。现在,这种结构正成为主流的,受欢迎的结构,因为这种结构开发有很多好处,它可以非常有效的保护数据
21、平台和控制管理访问权限,这种结构下,服务器数据库也很安全;它是一次性到位的开发,可以实现:不同的人员,在不同的地点,以不同的接入方式时访问和操作共同的数据库。特别是在JAVA这个跨平台语言出现之后,B/S架构更是方便、快捷、高效。3.开发技术本毕业设计项目要求的开发技术为Java + MySQL,因此本项目主要技术采用JSP+Servlet进行开发,数据库使用MySQL,对于JSP与Servlet也是Java EE的一部分,是Java EE中三大框架的基础。除了主要技术之外,项目中还使用到了一些网页前端的技术:HTML、CSS、JS和一些JS的开源框架。 JSP + Servlet技术:JSP
22、技术与ASP技术特别相似,它是在传统的HTML文件中插入Java程序段和JSP标记形成JSP文件,后缀名为(*.jsp)。因为JSP技术也算是Java的一种扩展,所以用JSP开发出来的Web应用也可以跨平台,既能在Windows下运行,也能在其他操作系统上运行。JavaScript技术:JavaScript是一种脚本语言,目前已经被广泛用于Web应用开发和Web游戏开发,使用JS可以为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是嵌入在HTML中的。同Java一样,JavaScript脚本语言不局限于某个操作系统,仅需要浏览器的支持。因此一个Java
23、Script脚本,在编写完成后可以在任意装有支持JavaScript的浏览器的操作系统上运行,目前JavaScript几乎已经被所有的浏览器支持。2.2 软件运行环境2.2.1前台客户端运行环境由于该项目是基于B/S的项目,所以运行的客户端只需要一台装有一个可以正常上网的浏览器的系统即可,通过浏览器访问网址::8080/LunTan/即可访问项目,该项目的最优分辨率为1366*768。2.2.2后台服务器端运行环境后台管理系统和服务器端可以运行于Windows XP及以后的各种Windows操作系统版本之上。该操作系统需要搭建好Tomcat服务器,还需要安装有MyS
24、QL数据库。3常州信息职业技术学院 毕业设计(论文)报告第3章 分析设计3.1可行性分析在系统调查的基础上还需要做一个可行性分析,分析判断新系统的开发是否具备可能性和必要性,对新系统的开发,要从技术、经济、社会等方面进行分析和研究,经过分析,可以避免投资失误,进而保证新系统的成功开发。可行性研究的主要目的就是要用最小的代价,在最短的时间内确定问题是否能被解决。1技术可行性主要分析技术条件是否能达到顺利完成开发工作的要求,硬件、软件能否满足开发者的需要等。该游戏论坛管理系统采用了目前非常流行的JSP+Servlet语言和当前新兴的B/S(浏览器/服务器)模式进行开发。B/S体系结构具有许多传统C
25、/(客户机/服务器)体系结构没有的优点,而且又紧密的结合了国际互联网/企业内部互联网技术,所以B/S是技术发展的新起点,它把应用带入了一个崭新的发展时代。数据库服务器选用的是MySQL数据库,它能够处理较大量的数据,同时能保持数据的完整性并提供了一些高级管理功能。MySQL的安全性、灵活性和易用性为论坛系统的数据库编程提供了良好的条件。因此,系统的软件开发平台已成熟可行。硬件方面,现如今硬件更新的速度越来越快,可靠性也越来越高,而且价格还越来越低,大多数硬件平台都能满足。2.经济可行性主要对项目的经济效益(开发成本与后期的收益)进行评估,本系统是提供一个供游戏玩家交流与分享的平台。但实际上也只
26、是用于个人的毕业设计,因此只是模拟,并不存在资金的流动,故在经济上是可行的,如果后期在工作中做到了这个项目,还需要认真分析经济的可行性。3.社会可行性由于现在游戏分类更加繁多与精细,这就更加使得网络游戏细分市场。就以舞蹈类游戏来说,从以前的休闲类游戏到现在的劲舞团类游戏,网络游戏从一个大类逐渐变成了一个细分的市场。而且在中国,游戏给游戏厂商带来的利润也是非常可观的,对于各种游戏玩家来说,就需要一个论坛来交流自己玩游戏的体验、心得、困惑与难处。游戏厂商可以通过游戏论坛为自己的游戏做广告,来让玩家互推游戏,这样可以加深玩家对游戏体验的深度,也可以让玩家接触新开发的游戏。所以说游戏论坛对当今社会还是
27、相当重要的。3.2需求分析1.功能性需求开发游戏论坛系统的主要目的是为爱好游戏者提供一个供用户交流心得、分享经验、分享游戏攻略的平台和社区。因此,游戏论坛系统必须要有最基本的功能:发表主题,其次是其他人员根据各个主题发表自己的看法,也就是回复主题功能。此外,为了记录帖子的发表者和帖子的回复者信息,系统还需要有用户注册和登录这两个功能。只有经过成功注册,获得账号的用户,在登录后才能够发表和回复帖子,浏览者也就是游客,只能浏览主题信息,不可以回复与发表主题,如果想要发表主题,需要经过登陆验证。根据用户的需求及以上的功能分析,游戏论坛需要具备前台展现功能和后台管理功能 。(1)系统前台功能:显示各论
28、坛类别及版面、查看版面下所有根帖、查看自己发表的帖子、搜索帖子、查看根帖内容、用户注册、用户登录、发表帖子、回复帖子(2)系统后台功能:进入后台、论坛类别管理、版面管理、用户管理、用户注册。2非功能性需求(1)平台要求:项目开发基于Windows7操作系统,开发需要使用到MySQL数据库,Tomcat服务器,在使用该论坛时,因为基于B/S架构,计算机上必须安装有浏览器,此外不需要安装其他软件。(2)操作方式:全部操作都基于浏览器进行。3.3论坛内容板块内容的版块分为以下4个区域:(1)登陆注册区A已经有账号的用户可以通过点击安全登录按钮,进行登陆操作,没有账号的用户需要点击注册链接,进入另一个
29、界面进行注册。(2)帖子搜索区A. 通过该功能,为用户提供方便,当用户看过一些高质量或者对自己有用的帖子之后,如果想再次浏览该贴,但是在发帖区已经找不到该主题,此时就可以通过关键字,来搜索相关的帖子。(3)页面导航区A该区显示效果: 论坛首页 LOL英雄联盟 英雄联盟子版块,“”之后的文字可以点击,通过点击这些文字,可以直接跳转到指定的版块,最有一个提示文字为用户当前浏览的版块。(4)论坛游戏专区在这里列出了部分热门网游,网页游戏,单机游戏,点击游戏图标或者文字,可以进入对应游戏的交流区,比如LOL英雄联盟、武林外传、地下城与勇士、天涯明月刀等等,这些数据都是从数据库中取出,管理员可以对这些板
30、块进行相应的操作。3.4论坛管理策略游戏论坛中,有管理员身份的用户,可以进入后台,直接对游戏版块进行添加、删除、编辑等操作;可以管理用户,将用户设置为版主,取消某个用户的版主身份,除了后台相应的管理模块之外,管理员还可以直接对用户发的帖子进行删除与修改。身为版主的用户相比于普通用户来说,版主可以管理自己的版块,对自己版块中的主题与用户回复进行修改与删除操作,但是不可以修改非自己管辖范围的版块。对于版主的选择,应该选择那写有相应游戏与管理经验的人员,有充足的上网时间,可以对其他用户朋友提出一些游戏经验,可以经常发表一些高质量的主题。对于普通用户来说,普通用户可以发帖、回帖,可以查看自己发表的帖子
31、,可以对自己已经发表的帖子和回复做出修改。3.5系统分析3.5.1 绘制用例图设计系统功能论坛用户一共有三种权限,分别是普通用户、版主以及管理员。下面就来分析这三个角色所对应的用例图:图3-1普通用户和管理员用例图图3-2论坛版主用例图3.5.2绘制系统流程图戏论坛系统包括前台和后台两个部分,这里需要分别为其绘制流程图。流程图如图所示:图3-3系统后台流程图图3-4系统前台流程图3.5.3数据库分析与设计用户表主要存放了网站上注册的所有用户(管理员、普通用户)的信息。表3-1用户表列名数据类型长度允许空主键外键描述uIdint11NYN主键自增uNamevarchar10NNN非空uPassW
32、ordvarchar20NNN非空uSexvarchar1YNN非空,默认0uFacevarchar50YNN默认default.jpguRegTimedatetimeNNN注册时间uTypeint11YNN默认0,用户类型版块表中存放了论坛中所有的版块,和版块有关的数据信息。表3-2版块表列名数据类型长度允许空主键外键描述sIdint11NYN主键自增sNamevarchar10NNN非空sTopicCountint11NNN非空,默认0sMasterIdint11YNN非空,默认-1sParentIdint11NNN父版块IDsPicvarchar50NNN默认default.jpgsUi
33、dint11YNY版块版主ID发帖表中纪录了所有注册用户发过的主题帖,表中还包含了与某个主题相关的一些数据。表3-3主题(发帖)表列名数据类型长度允许空主键外键描述tIdint11NYN主键自增tSIdint11NNY非空tUIdint11NNY非空,默认0tTopicvarchar30NNN主题标题tContentstextNNN主题内容tReplyCountint11NNN主题回复数量tPublishTimevarchar20NNN主题发布时间tModifyTimevarchar20YNN主题修改时间回帖表与主题表类似,都有回帖主题与回帖内容等信息,此外还有回帖对应的主题ID与板块ID。表
34、3-4回帖表列名数据类型长度允许空主键外键描述rIdint11NYN主键自增rTIdint11NNY非空rSIdint11NNY非空rUIdint11NNY非空,默认-1rTopicvarchar20YNN回帖标题rContentstextNNN回帖主要内容rPublishTimevarchar20YNY回复发布时间rModifyTimeint20YNY回复修改时间第4章 论坛设计与实现4.1 开发平台搭建开发平台的搭建是系统实现的基础,系统开发平台如下:(1) 操作系统:服务器操作系统可选用在Windows XP系统或win7,本项目选用的是win7系统。(2) 服务器:选择Tomcat6.
35、0.32作为Web服务器。(3) 数据库系统:数据库选用的是MySql5。(4) 开发环境:本系统选择My Eclipse8.5作为开发工具。4.2 程序结构图4-1程序结构图LunTan为项目的名称,也是项目的根目录。src目录包含如下几个部分:操作数据库的DAO:com.dao包,用户、主题、回复、板块的JavaBean:com.entity,检验用户输入信息是否合法(如:板块的名称是否为2-20个字符)的工具类:com.match,为了方便某个页面的展示(如:需要在页面上显示导航栏,专门为导航栏设置了一个JavaBean,这样设计可以方便的操作导航栏),专门为页面设计的JavaBean类
36、:com.page,项目中的所有的Servlet:com.servlet,一些项目需要用到的工具类:com.util。WebRoot 下的WEB-INF、lib目录及web.xml依然为固定的目录和文件,style为界面美化的css、js的目录,image存放了项目中用到的所有的图片。4.3 系统的实现4.3.1 登陆、注册模块的设计与实现进入游戏论坛首页,在用户名和密码输入框中分别输入用户名和密码,点击“安全登录”图片按钮,系统将所输入的内容保存在session中,并在bbs.userinfo表中查询,判断用户输入的数据在数据库中是否存在并且匹配,如果结果true则登录成功。登陆成功之后,会
37、在主页中显示用户名、用户头像信息,如果是管理员,还会显示一个“进入后台”的标签,通过超链接,进入论坛后台管理。图4-2 登录页面如果用户访问论坛之前没有登陆,那么会在论坛首页上显示一个“安全登录”的图片按钮,该按钮表示用户还未登陆,用户可以直接点击该按钮进行登陆,在该按钮的旁边有一个注册的超链接,可以直接点击进入注册界面。当用户选择注册功能时,页面会跳转到用户注册界面,当用户完善自己的基本信息之后,并且填写了正确的验证码,那么网站会直接跳转到登陆界面,在这个界面中,用户名和密码的输入框已经自动填写上了用户刚刚注册的数据,直接点击登陆按钮,即可成功登陆,如果用户在登陆界面填写的信息不合法,会通过
38、 JS 和 Servlet 进行不合法信息的验证与提示。图4-3注册页面关于用户头像功能:由于注册界面需要用户上传一张自己的头像(如果不上传,会使用默认的头像),本项目只是使用JSP+Servlet进行开发,没有使用SSH框架,所以在上传图片这块,使用的是一个开源框架 SmartUpload,专门用来处理JSP中图片和文件上传的操作。当在reg.jsp中填写好注册的信息之后,会将这些信息交给ServletReg.java这个Servlet来处理,因为使用了SmartUpload框架,所以在接收parameter参数时,直接使用request.getParameter(“param”);无法接收
39、到表单传递的参数,此时需要使用到 SmartUpload提供的方法来处理传递到本页中的参数:smartUpload.getRequest().getParameter(“param”);,这样就可以正常接收到参数了。解决了参数的接收问题,还有一个最重要的问题就是处理用户上传的头像图片,首先,要先获取到用户上传的图片,并将图片保存到服务器端,这里会有几个问题:1.如何获取到用户上传的图片 2.如果用户上传的文件不是图片怎么处理 3.如果用户上传的图片名称与服务器端的某张图片名称重名了怎么处理。问题解决:1.因为使用SmartUpload可以一次上传多个文件,当调用SmartUpload中的方法初
40、始化好一个SmartUpload后,可以调用该类中的一个方法getFiles()来获取用户上传的所有文件,该方法的返回值是一个Files类,通过Files类中的方法:getFile(index),可以得到下标为index的文件,getFile()方法的返回值为java.io.File类,这样就获取到了用户上传的文件(图片)。2.判断用户上传的文件是否合法,根据面向对象的思想,因为上传文件的功能是SmartUpload这个框架提供的,所以在这个类中应该有相应的处理方法,经过上网搜索,知道了在SmartUpload类中有一个方法setAllowedFilesList(“String”);通过该方法
41、可以指定上传的文件格式(String 格式为:param1,param2,param3),在调用了该方法之后,如果用户上传的文件不符合设置的后缀,那么将会抛出一个SecurityException,通过捕获这个异常,在异常处理块中做出一系列的处理。3.为了防止用户上传的图片与服务器端的文件重名,肯定需要使用到时间戳为用户上传的文件重命名,为了更加保险,在本项目中还加上了IP地址,通过IP地址+时间戳重新生成一个字符串作为文件名,这样文件重名的几率就会非常小了。以下列出了一些重要代码:ServletReg.java中public void doPost(HttpServletRequest re
42、quest, HttpServletResponse response) throws ServletException, IOException /. 一些初始化方法/* 【获取用户的ip地址,实例化不重复文件名生成类的对象】*/IPTimeStamp its = new IPTimeStamp(request.getRemoteAddr();/*上传表单,需要使用SmartUpload*/SmartUpload su = new SmartUpload(); / 实例化 SmartUpload 对象su.initialize(this.config, request, response);
43、 / 【初始化上传操作】/*上传图片部分*/String allowed=jpg,bmp,png,gif; su.setAllowedFilesList(allowed); /【设置允许上传的扩展名】 su.setMaxFileSize(1024*1024*1); / 【设置允许上传的文件的最大Size (1M)】try su.upload(); / 将文件上传/su.save(image/section/); / 文件保存,在下边使用另一个方法保存 catch (SmartUploadException e) e.printStackTrace();return; catch (Securi
44、tyException e) / 【如果捕获到该异常,表示上传的文件扩展名不是允许的文件】out.print( + alert(上传文件格式不正确!);+ window.history.back(); + );return;/* 获取一个不重复文件名+文件后缀组成文件名。 */String ext = su.getFiles().getFile(0).getFileExt();String userFace = its.getIPTimeStampRand() + . + ext;if(ext=null | ext.trim().equals()userFace = default.jpg;e
45、lsetry su.getFiles().getFile(0).saveAs(image/head/ + userFace); / 保存文件 catch (SmartUploadException e) e.printStackTrace();/ . 其他代码/ 将用户信息插入数据库if (udao.checkReg(userName, passWord, sexType, userFace, new Date() /out.println(注册成功!);request.getSession().setAttribute(userName, userName);request.getSessi
46、on().setAttribute(passWord, passWord);response.sendRedirect(/LunTan/login.jsp); else out.println(服务器出错,注册失败!);关于验证码功能:为了防止论坛出现软件注册等现象,需要在注册的时候添加验证码功能,如果用户输入了正确的验证码,才可以进行下一步操作。验证码功能的实现使用的是java的Swing,通过在Servlet使用使用Swing画出一个验证码矩形框,当需要使用验证码图片时,只需要在JSP中写一个 标签,标签的src为该Servlet,这样,就可以在网页上显现出来一个验证码了。验证码部分代码:
47、/ 获取用户输入String yanzhengma = su.getRequest().getParameter(yanzhengma);/ 获取Servlet中生成的验证码的正确答案String temp = (String)request.getSession().getAttribute(yanzhengma);String yzm = ;for(int i=0; i+yzm);System.out.println(ServletReg:yanzhengma - +yanzhengma);/ 判断用户输入的验证码if(yzm!=yanzhengma) & (!yzm.equalsIgno
48、reCase(yanzhengma)out.print( + alert(验证码输入错误!); + window.history.back(); + );return;关于自己编写的验证码这块还有一个问题就是验证码图片的缓存问题,因为所有的浏览器为了提高页面的访问速度,都有一个缓存的功能,也就是说,当访问某个网站的时候,浏览器会将该网站中的一些信息(如:图片)保存到本地,当下次访问该网页的时候,如果本地已经缓存了这些文件,那么就会直接使用本地的文件,而不会从服务器端下载;此时验证码图片这块就会有一个问题,当用户第一次访问到验证码界面时,因为本地并没有存储过这张图片,所以会从服务器端下载一张,当
49、第二次访问的时候,因为在用户本地已经有了这张图片,所以会直接使用用户本地的图片,为了让验证码可以正常的更新与验证,需要取消图片的缓存,所以需要在Servlet端生成图片验证码时执行设置:response.setDateHeader(Expires, -1) ;response.setHeader(Pragma, no-cache) ;response.setHeader(Cache-Control, no-cache) ;4.3.2 展示模块的设计与实现在首页的最上方为论坛的图标图片,紧接着下方为一个功能栏,在功能栏中有登录按钮和注册链接,还有一个搜索框,通过搜索框可以模糊查找用户发表的帖子,
50、下方一栏为网站导航栏,当用户层层进入论坛某个主题帖时,如果想返回上一层版块,可以直接点击导航栏中的超链接进行跳转。再向下就是主要显示区域了,在这个区域,显示了数据库中存放了所有的版块,通过点击版块的图标或者名称可以进入对应的版块。图4-4 论坛主界面论坛主页中列出的是数据库中找出的所有父版块,当点击某个版块之后,会跳转到一个界面中,跳转后的界面会显示点击的父版块下的所有子版块。图4-5 论坛子版块显示界面以下为关键代码:/* * 递归,根据版块id获得导航条* return List 返回一个集合 */public List getNavigationMenuById(Integer sId) String sql = select sParentId,sName from sectionInfo where sId = ?;try
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年亲子关系指南育儿测试题
- 2026年农村土地承包经营纠纷调解仲裁题库
- 2026贵州六盘水水城区区管国有企业社会招聘合同制工作人员17人备考题库附答案详解(培优b卷)
- 2026北京积水潭医院贵州医院高层次人才引进58人备考题库含答案详解(b卷)
- 2026广西河池市巴马同贺物业投资开发有限公司招聘4人备考题库附答案详解(预热题)
- 2026山东青岛理工大学理学院诚聘海内外英才备考题库含答案详解(培优b卷)
- 2026年度湖北省药品监督管理局所属事业单位公开招聘3名劳务派遣制工作人员备考题库及答案详解(全优)
- 2026年3月广东广州市天河区枫叶幼儿园编外聘用制专任教师招聘1人备考题库及1套完整答案详解
- 2026北京昌平区教委所属事业单位第一次招聘教师97人备考题库含答案详解(能力提升)
- 2026广西工程咨询集团有限公司招聘11人备考题库及一套完整答案详解
- 2026贵州黔东南州榕江县林工商开发有限公司招聘3人笔试参考试题及答案解析
- 2026广西桂林市从“五方面人员”中选拔乡镇领导班子成员139人考试备考题库及答案解析
- 开封市高级中学2026届高三下学期学情调研二英语试卷(不含音频答案不全)原卷
- 2026年职业卫生培训考试试题及答案
- 2025-2030中国别墅产业投资战略规划及前景方向分析研究报告
- 2026“才聚齐鲁成就未来”山东铁投集团春季社会招聘23人易考易错模拟试题(共500题)试卷后附参考答案
- 概率中的数列特征-马尔科夫链课件-2026届高三数学二轮专题复习
- GB/T 3098.1-2010紧固件机械性能螺栓、螺钉和螺柱
- GB/T 15305.1-2005涂附磨具砂页
- 腕管综合征的护理课件
- KET词汇表(英文中文完整版)
评论
0/150
提交评论