学习型论坛毕业设计任务书_第1页
学习型论坛毕业设计任务书_第2页
学习型论坛毕业设计任务书_第3页
学习型论坛毕业设计任务书_第4页
学习型论坛毕业设计任务书_第5页
免费预览已结束,剩余28页可下载查看

付费下载

下载本文档

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

文档简介

1、湖南农业大学全日制普通本科生毕业设计在线学习网站(论坛)的设计与开发以学习Java语言为例DESIGNANDDEVELOPMENTOFONLINELEARNINGWEBSITE(BBS)TOLEARNTHEJAVALANGUAGE,FOREXAMPLE学生姓名:曾攀锋学号:201240922228年级专业及班级:2012级教育技术学(2)班指导老师及职称:张翼然讲师学院:教育学院湖南长沙提交日期:2016年05月湖南农业大学全日制普通本科生毕业设计诚信声明本人郑重声明:所呈交的本科毕业设计是本人在指导老师的指导下,进行研究工作所取得的成果,成果不存在知识产权争议。除文中已经注明引用的内容外,本

2、论文不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体在文中均作了明确的说明并表示了谢意。本人完全意识到本声明的法律结果由本人承担。毕业设计作者签名:摘要-1-关键词-1-1 前言-2-2 绪论-2-2.1.1 课题研究的背景-2-2.1.2 课题研究的意义-2-2.2国内外研究现状、水平和发展趋势-3-2.2.1 国内外研究现状-3-2.2.2 未来BBS发展趋势-3-3 Java语言-4-3.1 发展背景-4-3.2 Bizfoundaction集成开发工具-4-3.3 spring框架-4-3.4 JDBC-4-3.5 事件驱动模型-5-4 mySQL

3、数据库-5-4.1 基本信息-5-5开发背景-6-5.1 需求分析-6-5.2 系统设计-6-6总结与展望-23-7参考文献-24-致谢-24-在线学习网站(论坛)的设计与开发以学习Java语言为例学生:曾攀锋指导老师:张翼然(湖南农业大学教育学院,长沙410128)摘要:在线学习系统(论坛)是BBS下面的一个分支,其本质差不多,所以下面我就简称学习论坛系统为BBS如今,互联网在飞速发展,从互联网快速获取、发布和传递信息渐渐地成为了人们的习惯。而随着计算机网络的快速发展与普及,BBS论坛也随着得到了快速的发展。本系统主要是采用java+jsp+spring+ajax等开发技术进行开发。Java

4、语言具有集成、封装、多态等优良的性能,使用springmvc最大的好处就是,页面结构与程序分离,有着良好的适用性、可移植性和超强的可扩展性。所以本系统主要使用java语言作为开发,采用Web工程的开发模式和使用mySQ嗽据库的两层架构模式,实现在线学习论坛网站的开发与设计。从而对信息的管理更加及时、高效和工作效率的提高。本网站利用BizFoundation集成开发工具实现了一个简单的在线学习BBS系统,并且详细讨论了该系统的实现过程、结构和源代码。关键词:在线学习;网页设计;学习平台;Designanddevelopmentofonlinelearningwebsite(BBS)Tolearn

5、theJavalanguage,forexampleAbstract:Today,theInternetintherapiddevelopmentoffast,publishandtransmitinformationfromtheInternetgraduallybecomethehabitofpeople.Withtherapiddevelopmentofcomputernetworkandpopularization,BBSBBSalsoasgotrapiddevelopment.ThissystemmainlyUSESJava+JSP+spring+ajaxdevelopmenttec

6、hnologyfordevelopment,etc.TheJavalanguagehasexcellentpropertiessuchasintegration,encapsulation,polymorphism,isthemainbenefitofusingthespringMVC,pagestructureandseparationprocess,hasagoodapplicability,portabilityandstrongextensibility.SothissystemmainlyUSESJavaasadevelopmentlanguage,USEStheWebenginee

7、ringdevelopmentmodeandtwolayerarchitecturemodeusingthemySQLdatabase,realizetheonlinelearningBBSWebsitedevelopmentanddesign.Thusthemanagementofinformationmoretimely,efficient,andimproveworkefficiency.ThissiteUSESBizFoundationintegrateddevelopmenttoolimplementsasimpleBBSonlinelearningsystem,andtheimpl

8、ementationprocessofthesystemarediscussedindetail,thestructureandsourcecode.KeywordsOnlinelearning;Webpagedesign;Learningplatform;1前言如今,便随着互联网的飞速发展,它已经涉及到人们生活的各个方面。网络在线学习系统,可以不同地域的人们轻松的相互讨论各种问题,还可以实现不在同一地区的人们在这个虚拟的环境中进行思想的传递与交流。这样的话,地球就变成了一个真正地球村。现在一些大型的门户网站为了给自己网站增加人气,都开发出了自己的网络在线论坛,同时也加快了信息在互联网的传递速

9、度。甚至,一些企业公司为了方便企业内员工进行生活、技术等问题的相互协助与交流,专门开发了自己的论坛。网络在线系统的设计主要是模仿现在最流行的BBS的设计模式,模拟它的分析、开发模式,网站实际需求出发点,创建概念模型,同时设计出合理的数据库表。本系统的服务器是阿里都在用的tomcat,开发语言选用现在主流的开发语言之一java+javascript,开发工具是BizFoundation集成开发环境,后台数据库选用mySQL该系统以WE的平台,前台只允许注册并且登陆了的用户在论坛上进行发帖,发布者和管理员可以对帖子作操作。实现在线学习系统,需要运用jsp技术、java技术、ajax技术、mysql

10、数据库等等,并且对该系统作详细的设计与分析。在后台服务器上,选用java语言和tomcat服务器等技术来开发本网站。2绪论2.1 课题研究背景与意义2.1.1 课题研究的背景在二十一世纪,因为因特网的存在,地球早已变成了一个“地球村”。英特网已经融入了我们的生活,无论是吃饭、出行、阅读、学习、玩游戏、购物、买车票、看新闻、学日志等都会第一时间想到英特网,向它寻求帮助。当然,别忘了搜索引擎技术,它能最快速度的找到我们想要的资源。总之,英特网已经成为了我们生活的“朋友”,一个超大的知识库,无私的提供着帮助。本篇论文,围绕着在线学习网站的设计与开发。2.1.2 课题研究的意义在线学习系统是学习者相互

11、交流的系统,它不像传统的学习方式,受限于面对面学习,不受任何限制,随时随地都可以学习。本系统,主要面对的用户是在线大学生和初入职场的程序员。对于初学者和初入职场的人来说,遇到困难是在所难免的,并不可能每个小问题都会向身边的人或者老师请教。所以最方便就是网上学习。有些问题可能有许多人遇到,但只要“大牛”在网站上留下解决问题的办法,就可以帮助若干个学员学习。这样一来可以帮助那些遇到问题的人解决问题,还可以让“大牛们”提高他的水平面和存在感。本系统的宗旨是为广大网民提供一个交流平台,能够在此畅所欲言,发表自己的观点、看法、学习问题和优质的源代码,同时结交朋友为生活添色加彩。2.2 国内外研究现状、水

12、平和发展趋势2.2.1 国内外研究现状BBS在开发的最早期,是用来公布股票等信息的,而且必须要在苹果机上运行。1978年,在美国芝加哥开发出一套基于8080芯片的CBBS/Chicago(ComputerizedBulletinBoardSystem/Chicago),第一个BBS系统从此诞生。之后苹果机问世,基于苹果机开发了大众信息系统和BulletinBoardSystem两种BBS系统。1981年,当旧M个人计算机诞生时,并没有开发出自己的BBS系统。直到1982年,BussLane用Basic语言为旧M个人计算机编写了第一个BBS系统。之后经过不断的维护与开发,终于在1983年,Cap

13、italPCUserGroup组织的会员改写出了个人计算机的BBS系统。在Thomas修改和整理后,终于完成了个人电脑的第一版BBS系统一RBBS-PC这个系统最大的特点就是,源代码开放,便于日后的修改和维护,此后其他设计人员在设计BBS系统时,都以此作为框架。因此,RBBS-PCI得了BBS“鼻祖”的美誉。现如今国内最流行的开发模式MV映式,M是模型,V是视图,C是控制器。MVCF发模式是优秀的设计思想,层与层之间各自管理自己的任务,使代码解耦。然而java语言会使MVC奠式的优点更加突出,不管是windows系统、UNIX系统、Linux系统、mac系统,只要装了各平台的JDK,者B可以在

14、tomcat服务器上正常运行,这就是java跨平台的优越性。据163网易数码报道,java拿下了2015年年度编程语言冠军,这就得益于web网站的流行和BBS类网站对java的影响。2.2.2 未来BBS发展趋势web2.0时代已经来临,web2.0与传统的互联网最主要的区别就是用户与用户、零售业与企业之间的关系更加密切了,web2.0时代带来了巨大的商业价值。在web2.0时代,社区用户会急剧增多,远远大于web1.0的速度。360董事长曾说过:“未来将是社区时代,谁拥有了用户,就主导了流量”,可想而知,一个用户企业流量对他有多么重要。随着web2.0普及,BBS论坛系统将朝下面两个方向发展

15、:(1)朝着即时群聊方面发展:实现即时群聊可以运用ajax技术,在ajax技术之前,更新页面某个东西必须刷新整个页面。而使用ajax技术,从服务器获取数据,就能实现局部刷新。把这项技术运用到BBS论坛系统中,用户更容易看到别人刚刚发的帖子,并参与讨论。(2)朝着图片展示方面发展:现在朋友圈非常火,随便发个生活照片,下面就十几条评论。说明图片更加简明扼要的说明事情,给人丰富的想象空间,形式新颖,可以表达人们心情,比文字更加容易表达情感。一个有着丰富图片资源的网站,用户还会少吗?3Javam3.1 发展背景java平台和语言原本只是sun公司的一个内部项目,因为传统的c语言的API及其难用,经常搞

16、得工程师焦头烂额。所以sun公司的工程师决定,在C+语言的基础上开发出一种新的语言,使其具有跨平台、面向对象的编程模式、继承、封装、多态等特性。java发展的主要事件:(1) 1995年5月java诞生;(2) 1996年1月JDK1.1诞生;(3) 1998年12月JAVA平台的J2EE发布;(4) 2000年5月JDK1.3诞生;(5) 2002年2月JDK1.4诞生;(6) 2009年4月被Oracle公司收购;(7) 2011年7月java7.0发布(8) 2014年3月java8.0发布java出生到今天,已经有21年了,和c语言/c+语言这些前辈比起来还年轻了许多。有为哲学家曾说过

17、:“事务的发生是必然的。java也一样,互联网的迅速发展导致了java的迅速发展。很快java已经成为了世界上最受欢迎的语言了,现在已经是编程语言排行榜第一名。3.2 Bizfoundaction集成开发工具该平台凝聚了中软国际十多年来全国性大型工程以及大量应用软件开发项目在应用设计开发、工程化管理、集成与实施方面的最佳实践与宝贵经验。本着“创造、分享、共成长”的企业发展理念。BizFoundation应用开发平台基于J2EE、Eclipse等开放平台和技术体系,采用SOA架构和独有的构件技术,为应用开发提供了全生命周期的支持。从需求分析、设计开发、条试打包、安装部署到上线后的管理监控,每个环

18、节都非常重视,大大提升了应用开发的效率和管理水平。3.3 spring框架Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。轻量:是相对于ejb而言,更轻巧,功能强大。IOC:spring通过控制反转的方式,来降低代码的耦合度。基本上就是spring帮你管理对象,我们只管用就是。AOP面向切面编程,来降低各组件之间的耦合度,增强程序的扩展性。Spring能在任何java程序中使用,优点:降低代码代码侵入、减少代码污染、独立于服务器、DI机制减少业务对象的替换来提高解耦、更好的复用性、提供与第三方持久层的整合来简化数据库、开发者可以选择spring的一部分而不是全部。3

19、.4 JDBCJDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。运用JDBC技术,我们就可以轻松操作数据库,对数据库里面的数据进行增删改查。简单地说,JDBC可做三件事:与数据库建立连接、发送操作数据库的语句并处理结果。3.5 事件驱动模型在Java编程技术中,最常用的可视化编程当属JavaSwing技术,JavaSwing为

20、开发者提供了很多现成的组件,如:按钮(JButton),单选按钮(JRadioButton)等。为了管理用户与组成程序图形用户界面的组件间的交互,必须理解在Java中如何处理事件。假设用户单击了程序图形用户界面中的一个按钮,其实该按钮就是这个事件的源(可以引发事件的物体)。所有的JavaSwing对象都有感知自己被操作的能力,因此JButton按钮也具有这样能力。一个事件通常必须有一个源对象,这里就是JButton对象。当单击按钮时,JButton组件类会生成一个用于存放该事件参数的ActionEvent的对象,该对象包含了事件及事件源的信息。如下图所示:JButton处理流程4mySQL数据

21、库4.1 基本信息MySQL一个关系型数据库管理系统,由瑞典MySQIAB公司开发,目前属于Oracle旗下公司,并且是一个开源的软件。MySQLft流行的关系型数据库管理系统,在WEB应用方面MySQLl最好RDBM(RelationalDatabaseManagementSystem,关系数据库管理系统)应用软件之一。MySQ说一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是Oracle一样将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。5开发背景5.1 需求分析在线学习型论坛面向的群体主要是学生和程序开发人员,可以讨论关于生活和学习方面的各种经验和问题等。通过

22、对其他典型的学习论坛的考察,分析,要求本系统具有以下特点:1)要求系统具有良好的页面设计,配色要搭调。2)功能强大,操作简单,扩展性强,稳定性好。3)网上运行稳定,安全可靠。4)要有特色,具有其他网站没有的功能。5.2 系统设计5.2.1 系统目标开发网上在线论坛最终目标是为了给用户提供一个良好的技术交流平台,给用户良好的体验。为了给用户最好的体验,本系统在设计时应实现下面几个目标:1)系统页面友好,美观,配色不单调;2)合理管理论坛相关信息;3)容易维护和扩展系统功能;4)系统运行稳定、可靠、操作界面简单、功能强大。5)具有搜索功能,快速查到用户想要的信息。5.2.2系统功能结构在线学习网站

23、是一个平台,提供网友间相互交流和学习的一个平台。我的设计就是,游客进入网站是可以回答已注册用户提出的问题的,还可以查看别人已回答的问题。但是游客不可以提问,必须要注册后才能提问。功能结构如下图所示:用户注册删除帖子浏览帖子内容删除用户信息修改用户信息添加用户信息添加新帖子信息用户登录在线学习网站结构图4.2.3业务流程图秋雨论坛会员注册用户登录5.2.4构建开发环境网站开发工具:BizFoundation集成开发环境ResourceOneStudio网站开发语言:java,javascript,SQL;网站后台数据库:mySQL5.5网站开发技术:Ajax,jsp,spring框架,Hiber

24、nate框架等;开发运行环境平台:Windows8.1;Web服务器:tomcat;5.2.5数据库设计本系统采用mySQL5.5t据库,库名称为mytest;其中包含10张表。下面是数据库逻辑结构设计。数据库设计概要:表1中包含本论坛所有的数据库表Table 1 containstheBBSalldatabasetables用户信息表Java语百类表Net语言类走c+语言类表数据表c语言类表一php语言类表python语言类表html语言类表Javascript语言类表其他语言类表数据库表设计:表2会员人员表Table 2 memberstafftableIDIDVarchar主键Usern

25、ame用户名VarcharNullPassword密码VarcharNullNameVarcharNull表3Java语百类表Table 3 theJavalanguageclasstableIDIDVarchar外键java_id主键Varchar主键java_title问题VarcharNulljava_body回答VarcharNull表4Net语百类表Tlanguageclasstable字段名称字段类型IDIDVarchar外键Net_id主键Varchar主键Net_title问题VarcharNullNet_body回答VarcharNull表4c语百类表Table4cclass

26、table字段名称IDIDVarchar外键cid主键Varchar主键cbody回答VarcharNullc_title问题VarcharNull表5Php语百类表Table5thePhplanguageclasstable字段名字段名称字段类型IDIDVarchar外键php_id主键Varchar主键phpbody回答VarcharNullphptitle问题VarcharNull表6javascript语百类表Table6thejavascriptlanguageclasstable字段名称字段类型IDIDVarchar外键Javascript_idVarchar-9-Javascri

27、pt_body回答VarcharNullJavascript_title问题VarcharNull表7html语百类表Table7HTMLtable字段名字段名称字段类型属性IDIDVarchar外键html_id主键Varchar主键html_body回答VarcharNullhtml_title问题VarcharNull表8python语百类表Table8pythonlanguageclasstable字段名字段名称字段类型属性IDIDVarchar外键pythonl_id主键Varchar主键python_body回答VarcharNullpython_title问题VarcharNul

28、l表9other语百类表Table9otherlanguageclasstable字段名字段名称字段类型属性IDIDVarchar外键otherid主键Varchar主键otherbody回答VarcharNullother_title问题VarcharNull5.2.6主页页面预览及其解释 网上在线学习主页-10-秋雨论坛口CHC*HTMLMm型1勺叱PHPMHIfl景由日什:&SE*已工亡电,tRffSS*r二里看可对总朝*-,痴组3蓄tti.K-K*E上男然由小人事?*升在黑垢病:至九图1网上在线学习主页上图1注释:上图是本网站的主页,几乎包含了本网站的所有功能。页面简洁,

29、布局清晰,各功能问耦合度低,便于日后对网站的维护与开发。 功能导航区秋雨论坛Javs匚语音C+HTMLjavascriptnetPythonPHP箕他搜索内容 -幺是美七我M回番 4幺曷HWe我木叵圈 万之友现旧袈壬却回答,卜也是直向有方我不回音 一M克向汇矛空无回落: L笈是数目我裳回答 比呈jag我来回答图2功能导航区图2注解:本功能区运用中软国际开发的BizFoundation前端“导航条”,如下列代码所示:秋雨论坛Javaahref=ahref=ahref=ahref=C语音#cUPC+#htmlHTML#jsjavascript#-11-PythonPHP

30、其他从上面代码可知:每一个li标签后面都有一个a标签,而且它的“href”属性都是连接到匹配的“id”中。例如连接到下面“java”类的“div”,代码如下:这个“div”是存放“java类问题”的,很明显,现在这个“ul”里面是没有数据的,而我实际的网页里面是有会员提出来的问题的。所有我运用Ajax技术,动态向服务器获取数据,而服务器直接从数据库获取数据,这样就一直保证首页的数据是最新的。代码如下:functionloadJavaLi()$.ajax(/向服务器发送ajax请求url:java/loadTitle,/请求地址type:post,/请求方式data:username:usern

31、ame,/发送用户名到服务器dataType:json,/按照“json”对象方式发送success:function(result)/从服务器成功获取数据varjava_title=result.java_title.substring(0,result.java_title.lastIndexOf(,);varjava_id=result.java_id.substring(0,result.java_id.lastIndexOf(,);varj_titles=java_title.split(,);varj_ids=java_id.split(,);for(vari=0;ij_title

32、s.length;i+)varj_id=j_idsi;varlis=+j_titlesi+;var$java_li=$(lis);$(#java_ul).append($java_li);/动态拼一条“li”/至ul”T一,error:function()alert(加载java类问题失败)/失败时,弹出框-12-);)搜索功能图3搜索功能此功能是本系统的核心功能之一,此功能能让用户已最快速度查到自己想问的问题。但做起来也比较复杂。下面是服务器端java代码:/当会员按下回车键时,就会发送ajax请求到此方法,此方法就会从数据库拿/到数据,返回跟搜索内容相关的数据。publicJ

33、avaloadTitleAndBody(Stringso)/so:页面传的数据Javajava=newJava();Stringtitles=;Stringbodys=;/定义数据库查询语句Stringjava_sql=selectjava_title,java_bodyfromp_javawherejava_titlelike?;/执行SQLIQueryjava_iq=dao.createQuery(java_sql,%+so+%);/获取从数瓶上查到的数据Listjava_list=java_iq.list();/利用加代器遍立合ListIteratorjava_it=java_list.

34、listIterator();while(java_it.hasNext()Objectstr=java_it.next();bodys+=(+str).substring(11,(str+).indexOf(,)+,;titles+=(+str).substring(str+).indexOf(,)+13,(str+).indexOf()+,;/c语言类SQLStringc_sql=selectc_title,c_bodyfromp_cwherec_titlelike?;IQueryc_iq=dao.createQuery(c_sql,%+so+%);Listc_list=c_iq.list

35、();ListIteratorc_it=c_list.listIterator();while(c_it.hasNext()-13-Objectstr=c_it.next();bodys+=(+str).substring(8,(str+).indexOf(,)+,;titles+=(+str).substring(str+).indexOf(,)+10,(str+).indexOf()+,;/C+类SQLStringcUP_sql=selectcUP_title,cUP_bodyfromp_cUPwherecUP_titlelike?;IQuerycUP_iq=dao.createQuery

36、(cUP_sql,%+so+%);ListcUP_list=cUP_iq.list();ListIteratorcUP_it=cUP_list.listIterator();while(cUP_it.hasNext()Objectstr=cUP_it.next();bodys+=(+str).substring(10,(str+).indexOf(,)+,;titles+=(+str).substring(str+).indexOf(,)+12,(str+).indexOf()+,;/html类SQLStringhtml_sql=selecthtml_title,html_bodyfromp_

37、htmlwherehtml_titlelike?;IQueryhtml_iq=dao.createQuery(html_sql,%+so+%);Listhtml_list=html_iq.list();ListIteratorhtml_it=html_list.listIterator();while(html_it.hasNext()Objectstr=html_it.next();bodys+=(+str).substring(11,(str+).indexOf(,)+,;titles+=(+str).substring(str+).indexOf(,)+13,(str+).indexOf

38、()+,;/javascript类SQLStringjavascript_sql=selectjava_title,java_bodyfromp_javascriptwherejava_titlelike?;IQueryjavascript_iq=dao.createQuery(javascript_sql,%+so+%);Listjavascript_list=javascript_iq.list();ListIteratorjavascript_it=javascript_list.listIterator();while(javascript_it.hasNext()-14-Object

39、str=javascript_it.next();bodys+=(+str).substring(11,(str+).indexOf(,)+,;titles+=(+str).substring(str+).indexOf(,)+13,(str+).indexOf()+,;/net类SQLStringnet_sql=selectnet_title,net_bodyfromp_netwherenet_titlelike?;IQuerynet_iq=dao.createQuery(net_sql,%+so+%);Listnet_list=net_iq.list();ListIteratornet_i

40、t=net_list.listIterator();while(net_it.hasNext()Objectstr=net_it.next();titles+=(+str).substring(11,(str+).indexOf(,)+,;bodys+=(+str).substring(str+).indexOf(,)+11,(str+).indexOf()+,;/Python类SQLStringpython_sql=selectpython_title,python_bodyfromP_pythonwherepython_titlelike?;IQuerypython_iq=dao.crea

41、teQuery(python_sql,%+so+%);Listpython_list=python_iq.list();ListIteratorpython_it=python_list.listIterator();while(python_it.hasNext()Objectstr=python_it.next();bodys+=(+str).substring(13,(str+).indexOf(,)+,;titles+=(+str).substring(str+).indexOf(,)+15,(str+).indexOf()+,;/php类SQLStringphp_sql=select

42、php_title,php_bodyfromp_phpwherephp_titlelike?;IQueryphp_iq=dao.createQuery(php_sql,%+so+%);Listphp_list=php_iq.list();ListIteratorphp_it=php_list.listIterator();while(php_it.hasNext()Objectstr=php_it.next();-15-titles+=r+str).substring(11,(str+).indexOf(,)+T;bodys+=(+str).substring(str+).indexOf(,)

43、+11,(str+).indexOf()+,;/其他类SQLStringother_sql=selectother_title,other_bodyfromp_otherwhereother_titlelike?;IQueryother_iq=dao.createQuery(other_sql,%+so+%);Listother_list=other_iq.list();ListIteratorother_it=other_list.listIterator();while(other_it.hasNext()Objectstr=other_it.next();titles+=+str).su

44、bstring(13,(str+).indexOf(,)+T;bodys+=(+str).substring(str+).indexOf(,)+13,(str+).indexOf()+,;java.setJava_title(titles);java.setJava_body(bodys);/将数据返京给控制器returnjava;注册与登录图4注册与登录上图是会员登录或者注册的页面。为了减少服务器的压力,我在前端页面就做了判断,如果账号密码为空或者输入非法字符,就不能想服务器发请求。下面是js前端代码:-16-/定义一个开关varflag=true;functionsave(b

45、utton)form=button.form;/获取注册输入框的值varusername=$(#username).val();varpassword=$(#password).val();varpassword2=$(#password2).val();varb=password=password2;varname=$(#name).val();/先判断输入框不能为空if(username=)$(#alertUserName).html(用户不能为空);$(#alertUserName).css(color,red);if(password=)$(#alertPassword).html(密

46、码不能为空);$(#alertPassword).css(color,red);if(name=)$(#alertName).html(姓名不能为空);$(#alertName).css(color,red);比较两次输入的密码值if(!b)$(#alertPassword2).html(与之前输入的密码不一致);$(#alertPassword2).css(color,red);if(name!=&username!=&password!=&b)if(flag)form.submit();elsealert(输入的信息有误!);/当用户名输入框的焦点失去时$(#username).blur(

47、function()varusername=$(#username).val();varreg=/Aa-zA-Zdw3,11a-zA-Zd$/;/匹配用户名格式,如果不匹配,做出对应的响应。if(reg.test(username)$(#alertUserName).html(用户名格式正确);flag=true;-17-else$(#alertUserName).html(用户名格式不正确);$(#alertUserName).css(color,red);flag=false;);/匹配密码格式,如果不匹配,做出对应的响应$(#password).blur(function()varpas

48、sword=$(#password).val();$(#alertPassword).html();varreg=/Aw!#$%A&*()_6,20$/;if(!reg.test(password)$(#alertPassword).html(输入的密码格式不正确);$(#alertPassword).css(color,red);flag=false;flag=true;);/判断跟上一次输入密码相不相同$(#password2).blur(function()varpassword2=$(#password2).val();varpassword=$(#password).val();$(

49、#alertPassword2).html();if(password!=password2)$(#alertPassword2).html(两次输入的密码不一样);$(#alertPassword2).css(color,red);flag=false;flag=true;);/匹配姓名的格式$(#name).blur(function()varname=$(#name).val();$(#alertName).html();varreg=/A(u4e00-u9fa5+)|(a-zA-Z+)$/;if(!reg.test(name)$(#alertName).html(姓名格式不正确);$(

50、#alertName).css(color,red);flag=false;flag=true;);在登录时,为了防止黑客攻击本网站。所有,我在用户登录时,添加了验证码的输入框。imgalt=点击更换onclick=this.src=loadCode;-18-src=,直接从服务器端加载一张验证码图片来。图片必须有干扰线,字母或者数字随机4位。Java代码如下:publicvoidloadCode()throwsIOExceptionBufferedlmagebi=newBufferedImage(60,20,BufferedImage.TYPE_USHORT_555_RGBGraphicsg=bi.getGraphics();g.setC010r(Color.GREENg.fillRect(0,0,60,20);Randomran=newRandom();g.setC010r(Color.GRAYfor(inti=0;i15;i+)g.drawLine(ran.nextInt(61),ran.nextInt(61),ran.nextInt(61),ran.nextInt(61);/设置验证码Stringcode=;Stringstr=qwertyuiopasdfghjklzxcvbnm

温馨提示

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

评论

0/150

提交评论