《社交网站的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
学号:2009430392河南大学2013届本科毕业论文社交网站的设计与实现DesignandImplementofSocialNetworkingSite论文作者姓名:宋双来作者学号:2009430392所在学院:计算机与信息工程学院所学专业:网络工程导师姓名职称:郭拯危(教授)论文完成时间:2013年4月29日2013年4月29日开题报告Ⅰ
1河南大学2013届毕业设计(论文、创作)开题报告(学生本人填写)学号2009430392姓名宋双来导师姓名职称郭拯危(教授)开题时间2012年12月1日课题题目社交网站的设计与实现课题来源□导师指定■自定□其他来源课题的目的、意义以及和本课题有关的国内外现状分析:1.目的:随着社会的进步和网络的快速发展,人们对精神生活的追求越来越高,希望能结交到更多的朋友,并且可以及时的了解到朋友发生了什么事情。社交网站以网络为平台,人们可以足不出户的结识五湖四海的朋友,并且可以最快的参与到朋友圈发生的故事。用户可以在社交网站上查找添加好友,添加自己的动态(新鲜事,日志,照片,分享),发表对好友动态的评论、赞、收藏等。2.意义:与其他社交网站相比,希望能为用户提供更为简洁,明了的界面展示和更为直接的交流方式。通过社交网站,人们可以充分利用网络资源,在闲暇之时简单有效的扩展人脉,与朋友互动交流。3.现状:目前,国内外社交网站发展越来越好,也更加的成熟,对用户体验的关注也更加注重了。在国内做的比较好的社交网站有新浪微博,人人网,豆瓣等。比如说新浪微博,它为用户提供了网站上的实时在线交流工具,方便用户在社交的同时更为直接的交流。人人网则是基于实名制的,用户寻找好友更为有针对性.豆瓣为用户提供了简单的页面和以兴趣为基础的交友体制。这些都不同程度的增强了用户的社交体验研究目标、研究内容和准备解决的问题,拟采取的方法、技术或设计(开发)工具:1.目标:用户可以自由的查找用户,关注用户。并且可以实时的查看到好友的动态,可以对好友的动态反映自己的态度.2.内容:网站应实现好友搜索,好友添加,发表新鲜事,创建相册并上传照片,(评论,分享,赞,收藏)动态,修改个人资料,邀请好友等功能。3.准备解决的问题:(1)网站使用struts2,spring和hibernate技术,mvc模式开发。(2)采用eclipse+tomcat+mysql作为开发工具.(3)在技术上,对于javascript脚本使用和spring编程还不熟悉。开题报告Ⅰ
2预期成果:1.源程序2.毕业论文进度计划与阶段要求:2012年12月1日–12月31日:查找资料、确定毕业设计题目,编写开题报告.2013年1月1日:将开题报告发送到导师邮箱。2013年1月2日–1月10日:导师根据开题报告下达任务书。2013年1月11日–4月2日:根据任务书搜集素材、进行初步的毕业设计.2013年4月3日:将毕业设计阶段性成果发送到导师邮箱.2013年4月3日–4月9日:根据导师的建议和指导,修改毕业设计,编写论文.2013年4月10日:将中期检查表发送到导师邮箱。2013年4月11日–4月28日:根据导师的建议和指导,修改毕业设计和论文。2013年4月29日:将设计和论文终稿发送到导师邮箱。开题前收集的资料和参考文献(5-8种)[1]谢星星等。《企业应用架构设计-Struts2+Hibernate3+Spring2》[M].中国水利水电出版社,2010年5月第一版[2]刘京华等.《JavaWeb整合开发王者归来》[M].清华大学出版社,2010年1月第一版[3]JeremyKeith等.杨涛等译.《JavaScriptDOM编程艺术》[M].人民邮电出版社,2007年1月第一版[4]DaveCrane,EricPascarello等。ajaxcn。org等译.《Ajax实战》[M].人民邮电出版社,2006年4月第一版[5](美)埃克尔.陈昊鹏译.《Java编程思想》[M]。机械工业出版社,2007年6月第一版[6]Java词条。来自百度百科http://baike.baidu。com/view/29.htm,2013年4[7]Spring框架简介.https://www.ibm。com/developerworks/cn/java/wa—spring1,2005年8月指导教师对开题报告的意见:同意按开题报告的题目和设计思路开题。指导教师签名:2013年1月10日开题报告Ⅱ
3河南大学2013届毕业论文(设计、创作)任务书(导师根据学生的开题报告填写)题目名称社交网站的设计与实现学院计算机与信息工程学院学生姓名宋双来所学专业网络工程学号2009430392毕业论文(设计、创作)要求1.设计内容基于javaweb的社交网站.2.基本要求社交网站要求至少实现以下内容:(1)用户管理自己的个人信息,上传头像,邀请好友,添加好友。(2)用户可以发表新鲜事,创建相册,上传照片。(3)用户可以(评论,赞,分享,收藏)新鲜事和上传的照片。(4)管理员可以冻结用户,发布站内公告3.要解决的问题(1)页面验证不完善,用户可以随意输入不合理的信息(2)页面间的展示还有待完善4.要求提交的成果(1)毕业设计源程序(2)论文指导教师签名:2013年1月10日任务书
4河南大学2013届毕业设计(论文、创作)中期检查表(导师只填写评语,其他由学生填写)题目名称:社交网站的设计与实现学院计算机与信息工程学院学生姓名宋双来所学专业网络工程学号2009430392一、毕业设计(论文、创作)进展情况实现了社交网站的基本页面设计.用户模块:个人资料和头像的修改以及好友添加等已经实现内容模块:新鲜事发布,创建相册,上传照片,评论,赞,分享,收藏等功能已实现。后台模块:管理员冻结用户,发布公告的功能也已实现根据实际需要,用户可能会进行一些非法操作,如提交空内容,重复操作等,需要对各内容进行输入验证。同时页面的展示还不够完善.二、毕业设计(论文、创作)存在的问题及解决方案存在的问题:发表多内容类型(表情,图片,超链接)的新鲜事,日志。解决方案:通过采用kindeditor开源文本编辑器提供的富文本内容(表情,图片,超链接),将用户产生的内容以html形式存放入文本,然后提交到后台数据库存放.展示的时候取出来直接放入jsp页面,即可显示丰富的内容效果。还需要完善多张图片的插入显示效果。存在的问题:未登录用户的非法访问。解决方案:有时一些未注册或者未登录用户,可能会直接访问网站页面。这可能会引发一些错误,所以应对此加以阻止.通过为网站加入登录过滤器,对用户发出的请求加以过滤,非登录页面的直接访问,验证用户是否登录。这样可以有效防止信息的泄露和错误发生。中期检查表
5三、学生本人对毕业设计阶段所做工作及进展情况的评价社交网站的开发期间,对我的jsp、数据库、struts2、hibernate等知识有很大的提高,从中学到了一些没有用过的内容,如过滤器等,也巩固了以前的知识。功能方面,用户模块的资料修改等功能已实现,内容模块中在收藏,添加好友上采用的ajax还不太熟练,并未能完全的体现出ajax的优点。同时在页面的布局,跳转上还有待完善四、指导教师对学生毕业设计(论文、创作)中期检查的评语根据该生提交的毕业设计成果,以及该生和导师交流的情况,同意该生通过中期检查。允许该生根据本人搜集的参考资料和已经完成的设计成果,开始整理毕业论文文档。指导教师签名2013年4月10日中期检查表
6河南大学2013届毕业论文(设计、创作)教师评阅成绩表学院名称:计算机与信息工程学院学号2009430392姓名宋双来专业网络工程指导教师郭拯危(教授)教师评阅平均得分论文题目社交网站的设计与实现指导教师评语及得分指导教师评语该生的选题有(现实、实际)意义,按时完成了所要求的功能。论文叙述条理xx、详略得当,是一篇(优秀、良好、合格)的本科论文。评分项目分值指导教师对毕业论文(设计、创作)评分撰写开题报告、文献综述15调查研究查阅整理资料10学习态度与规范要求10数据处理、文字表达10论文(设计、创作)质量和创新意识55合计100得分指导教师签名2013年4月29日评阅教师评语及评分评阅教师评语该生论文结构合理,论文语句(流畅、较流畅),思路(较)清晰,表达(较)准确,是一篇(优秀、良好、合格)的本科论文。评分项目分值评阅毕业论文(设计、创作)评分撰写开题报告、文献综述满分15调查研究查阅整理资料10学习态度与规范要求10数据处理、文字表达10论文(设计、创作)质量和创新意识55合计100得分评阅教师签名2013年5月3日综合成绩表(一)
7此表由教师填写综合成绩表(一)
8河南大学2013届毕业论文(设计、创作)综合成绩表学号2009430392姓名宋双来所在学院计算机与信息工程学院答辩委员会评语及评分答辩委员会评语该生答辩过程中思路(清晰、较清晰),反应敏捷,论文结构(较)合理,条理清楚,达到本科毕业设计和毕业论文要求的标准,经答辩小组评议,同意通过论文答辩。答辩委员签字(4名以上):2013年5月5日评分项目分值论文答辩小组评分答辩情况论文质量合计(100)内容表达情况(15)答辩问题情况(25)规范要求与文字表达(20)论文(设计、创作)质量和创新意识(40)得分答辩委员会主任签字:2013年5月5日毕业论文(设计、创作)成绩综合评定(百分制):分(教师评阅表平均成绩占40%,答辩成绩占60%)综合评定等级(优、良、中、差):备注:一、论文的质量评定,应包括对论文的语言表达、结构层次、逻辑性理论分析、设计计算、分析和概括能力及在论文中是否有新的见解或创新性成果等做出评价。从论文来看学生掌握本专业基础理论和基本技能的程度。二、成绩评定采用结构评分法,即由指导教师、评阅教师和答辩委员会分别给分(以百分计),评阅教师得分乘以20%加上指导教师得分乘以20%加上答辩委员会得分乘以60%即综合成绩。评估等级按优、良、中、差划分,优90—100分;良76-89分;中60—75分;差60分以下。三、评分由专业教研室或院组织专门评分小组(不少于5人),根据指导教师和答辩委员会意见决定每个学生的分数,在有争议时,应由答辩委员会进行表决。四、毕业论文答辩工作结束后,各院应于6月20日前向教务处推荐优秀论文以汇编成册,推荐的篇数为按当年学院毕业生人数的1.5%篇。五、各院亦可根据本专业的不同情况,制定相应的具有自己特色的内容。须报教务处备案。综合成绩表(二)
9河南大学本科生毕业论文(设计、创作)承诺书论文题目社交网站的设计与实现姓名宋双来所学专业网络工程学号2009430392完成时间2013年4月29日指导教师姓名职称郭拯危(教授)承诺内容:1.本毕业论文(设计、创作)是学生宋双来在导师郭拯危的指导下独立完成的,没有抄袭、剽窃他人成果,没有请人代做,若在毕业论文(设计、创作)的各种检查、评比中被发现有以上行为,愿按学校有关规定接受处理,并承担相应的法律责任。2.学校有权保留并向上级有关部门送交本毕业论文(设计、创作)的复印件和磁盘.备注:学生签名:指导教师签名:2013年4月29日2013年4月29日说明:学生毕业论文(设计、创作)如有保密等要求,请在备注中明确,承诺内容第2条即以备注为准。承诺书
10目录摘要3ABSTRACT4第1章绪论51。1课题背景及分析51。2国内外在该方向的研究现状及分析51。3运行环境及开发工具5第2章相关技术72。1Java语言72.2Struts272。3Hibernate82.4Jsp82.5Spring8第3章网站总体设计93。1网站总体结构93.1.1网站运行流程93.1.2网站功能模块93。2网站设计103。2。1表示层设计113.2.2业务逻辑层设计123.2.3数据访问层设计133。2.4网站代码目录133.3数据库设计143。3。1数据库表设计143.3.2数据库E-R图19第4章网站详细设计214.1JavaWeb技术的使用214。1.1Javamail的使用214.1.2登录过滤器的使用224.1.3其他使用234。2Struts2技术的使用244.2。1评论发布244。2。2收藏内容254.3Hibernate技术的使用264。4Jsp技术的使用274.5Spring技术的使用28结论30参考文献31
11河南大学本科毕业生学士学位论文摘要随着社会信息化的快速发展,网络所能为我们做的事情也越来越多,结交朋友,了解朋友的近况,这些都可以在网络上实现,使用户可以足不出户即可认识来自各地的人们。社交网站就是基于此目的实现的。社交网站,根据著名的六度理论,通过互联网认识朋友的朋友,来扩展自己的人脉,帮助用户组建起自己的社交圈。在Web2。0时代,互联网更注重用户的交互作用,用户更多的参与网站内容制造,这使得社交网站在Web2。0时代飞速的发展。本论文首先介绍了关于社交网站的课题背景与国内外发展的现状,对社交网站所需功能进行需求分析,接着详细描述了整个系统的总体设计和实现过程,并对开发过程中使用的技术进行介绍。社交网站的实现用Java语言开发,具体技术采用SSH(Struts2、Hibernate、Spring),Jsp,Mysql数据库,实现了用户模块(资料修改,上传头像,登录/注册,添加好友),内容模块(新鲜事,评论,分享等),后台管理(公告发布,用户冻结)等功能。关键词社交网站;java;struts2;hibernate;jsp第Ⅰ页
12河南大学本科毕业生学士学位论文ABSTRACTWiththerapiddevelopmentofSocialInformatization,networkcanhelpustodomoreandmore。Forexample,makingfriendsandunderstandfriend’sstatus,whichcanrealizedonthenetwork。Peoplemakefriendsfromallovertheworldeventhoughpeopleremainwithindoors.SocialNetworkingsiteisbasedonthispurpose.AccordingtothefamoustheoryofSixDegreesofSeparation,usersexpandtheirsocialcirclewithmakingfriendsoffriendsthroughtheInternet。IntheWeb2。0era,theInternetapplicationpayattentiontotheinteractionofusers.Usersparticipateingeneratewebcontent,whichmakestheSocialNetworkingsitedevelopquicklyintheWeb2。0era。First,thisthesisintroducethetopicbackgroundofSocialNetworkingsiteanditsdevelopmentstatusathomeandabroad。Then,thesisproceedRequirementsAnalysisandOveralldesignofSocialNetworkingsite.And,itintroducesometechnologiesusedintheSocialNetworkingsite。SocialNetworkingsitehasusedJAVAlanguage,SSH(Struts2、Hibernate、Spring),jspanddatabaseofmysql。Thefunctionofusermanagement(modifyinformation,upload,login/register),publishdynamic,adminmanagement(freezeuser,publishannoucement)havebeenimplemented.Keywords:SocialNetworkingsite;java;struts2;hibernate;jsp第Ⅱ页
13河南大学本科毕业生学士学位论文第1章绪论人们在社交网站上,可以认识来自四面八方的好友,关注他们发生的故事.这些年来,以MySpace、Facebook等为代表的社交网站发展非常迅猛,各种各样的应用使得社交网站充满着生机,用户数量也惊人的快速增长,使得社交网站成为当前热门的互联网应用.1。1课题背景及分析随着Internet的普及和Web2.0时代的到来,相较于Web1。0时代的以用户通过浏览器获取信息,2.0时代引发了互联网发展的新方向。Web2.0倡导用户参与网站内容制造。就是说与web1。0网站单向信息发布的模式不同,web2.0网站的内容通常是用户发布的,使得用户既是网站内容的浏览者也是网站内容的制造者,这也就意味着web2.0网站为用户提供了更多参与的机会。社交网站作为Web2.0的代表性应用,更是呈现出迅猛的发展势头。1.2国内外在该方向的研究现状及分析伴随Web2.0的兴起,各类社交网站也泉涌而出,除了一些专门的社交网站之外,几乎所有的门户都增加了SNS相关栏目,具有SNS的一些功能。其中国内外著名的社交网站有:Facebook,Twitter,人人网,开心网,新浪微博等。这些网站的共同点就是都提供了丰富完善的社交功能,像用户发表新鲜事,评论,赞等,并且在此基础上添加更为丰富的第三方应用.但是过多的内容展现,容易造成用户的视觉疲劳。同时这些网站也有各自的特点。新浪微博,在用户交友的过程中,又为用户提供了网站上的实时在线交流工具,方便用户在社交的同时更为直接的交流。人人网则是基于实名制的,用户可以在其中找到多年以前的同学,甚至是小学同学,完善的好友寻找,可以极大的满足用户社交的需求.1。3运行环境及开发工具网站以java语言为基础开发,所以需要安装jdk。这里采用jdk1。6版本。数据库选用Mysql5。服务器使用Tomcat6。0第31页
14河南大学本科毕业生学士学位论文开发工具使用Eclipse操作系统在windowsxp、windows7下可运行。在客户端,只需要用户安装一款主流浏览器即可,如Firefox,IE7以上浏览器等。第2章相关技术本章概括介绍了社交网站开发中所用的技术。2.1Java语言Java是由Sun公司推出的java面向对象程序设计语言和java平台的总称.Java编程语言的风格十分接近C、C++语言。Java是一个纯粹的面向对象的程序设计语言,它继承了C++语言面向对象技术的核心。Java舍弃了C语言中容易引起错误的指针(以引用取代)、运算符重载(operatoroverloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在Java1。5版本中,Java又引入了泛型编程(GenericProgramming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。Java语言的主要特性:Java语言是简单的。Java语言是面向对象的。Java语言是分布式的。Java语言是健壮的.Java语言是安全的。Java语言是解释型的。Java语言是多线程的。Java语言是动态的。Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本.Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是Java企业应用编程接口(JavaEnterpriseAPIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。2。2Struts2Struts2是Struts的下一代产品,是在struts1和WebWork的技术基础上进行了合并的全新的Struts2框架.其全新的Struts2的体系结构与Struts1的体系结构差别巨大。Struts第31页
15河南大学本科毕业生学士学位论文2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts2可以理解为WebWork的更新产品。Struts把Servlet、JSP、自定义标签和信息资源(messageresources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架.2。3HibernateHibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任.2.4JspJSP:(JavaServerPages)是一种跨平台的动态网页技术,在静态页面中嵌入Java代码片段,再由Web服务器中的JSP引擎来进行编译并执行嵌入的Java代码片段,生成的页面信息返回给客户端。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。2。5SpringSpring是一个开源框架,它由RodJohnson创建。它是为了解决企业应用开发的复杂性而创建的.Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发.从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架.Spring框架由七个定义明确的模块组成,组成Spring框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。如图2—1所示第31页
16河南大学本科毕业生学士学位论文SpringAOPSource-levelMetadataAOPinfrastructureSpringORMHibernatesupportiBatssupportSpringWEBWebApplicationContextSpringDAODAOsupportJOBCsupportSpringContextApplicationContextUIsupportSpringWEBMVCWebMVCWebViewsJSP/VelocityPDF/ExportSpringCoreSupportingutlitiesBeancontainers图2—1Spring模块图第3章网站总体设计网站总体设计是根据用户提出的需求进行开发方案的拟定,以及对制定的方案进行开发前的详细设计,主要包括对网站功能模块的划分,数据库设计等。3.1网站总体结构根据网站采取的技术,对网站的整体结构进行设计和划分,下面是对总体结构的描述。3。1.1网站运行流程由于网站采用mvc模式开发,所以将网站整体划分为三层结构开发:页面表示层,控制层,数据访问层。网站运行流程结构如图3-1所示。第31页
17河南大学本科毕业生学士学位论文用户浏览器登陆过滤器Jsp页面展示控制层action数据库访问持久化业务层数据库图3-1网站运行流程图3。1。2网站功能模块根据前面第二章的功能需求分析,将社交网站的功能模块设计成如图3-2所示。第31页
18河南大学本科毕业生学士学位论文社交网站用户模块后台模块内容模块登录注册资料修改上传头像好友管理密码修改添加好友新鲜事日志相册好友邀请站内公告用户管理创建相册上传照片评论,分享,赞,收藏图3-2网站功能模块图下面介绍模块功能.(1)用户模块:该模块实现用户的基本操作,注册过的用户可以填写登录信息登录网站。登录后可以按自己的需要修改个人资料,上传头像完善自己的信息。还可以根据安全密码修改登录密码。用户还能根据搜索到的好友,添加好友.(2)内容模块:用户可以在个人中心选择进行发表新鲜事,日志,创建相册,上传照片等操作产生用户动态,用户产生的动态可以被好友评论,分享,赞,收藏。用户还可以在网站想现实中认识的人发送邀请注册的email。(3)后台模块:后台只能有管理员身份才能进入,管理员可以对用户进行冻结操作,被冻结的用户无法登录网站。管理员还可以发布网站公告。3。2网站设计第31页
19河南大学本科毕业生学士学位论文良好的网站分层对于后期的开发和扩展可以起到很大的作用。网站采用SSH(Struts2、Spring、Hibernate)技术实现,采用MVC设计模式。将网站整体划分为,数据访问层、业务逻辑层、表示层.在struts的基础上将业务逻辑层再细分为service和action,由action控制流程跳转,service负责具体的业务逻辑.下面主要介绍三层用到的公共部分。3.2。1表示层设计Web页面整体UI设计如图3—3所示:固定HeaderMainPageLeftBar图3-3WebUI图其中header会跟随页面,方便用户快速点击功能,Mainpage内容为居中显示,leftbar提供功能列表。表示层页面,主要使用Bootstrap库进行前台视觉开发,由Bootstrap提供的基础样式快速创建页面,并且能够提供一致整体的效果。使用方式需我们向标签中添加class属性即可。如:
20河南大学本科毕业生学士学位论文为改善用户体验,在部分功能上面采用Ajax技术实现,为了可复用ajax,减少代码量,将ajax对象的提供从中剥离,创建ajaxcommon.js文件以供多次使用。关键代码如下:functionGetXmlHttpObject(){varxmlHttp=null;try{//Firefox,Opera8。0+,SafarixmlHttp=newXMLHttpRequest();}catch(e){//InternetExplorertry{xmlHttp=newActiveXObject(”Msxml2.XMLHTTP");}catch(e){xmlHttp=newActiveXObject("Microsoft。XMLHTTP");}}returnxmlHttp;}3。2.2业务逻辑层设计Action作为与表示层的接口,控制页面间的跳转,通过配置struts。xml文件来实现.并将页面传递进来的数据进一步交给service处理.为提高可扩展性,在action包下,创建BaseAction,其他action可以继承它,这样可以把一些重复性工作放到其中,其余action可专注于实现自身功能。publicclassBaseActionextendsActionSupportimplementsServletRequestAware,ServletResponseAware{·······················}第31页
21河南大学本科毕业生学士学位论文Service层完成具体的业务逻辑,其中由spring维护的dao类进行数据操作,spring的相关配置文件在applicationContext。xml下.3.2。3数据访问层设计数据访问层主要由Hibernate框架来完成.创建dao类进行具体操作。为提高复用可扩展。系统提供IDao接口,由BaseDao来实现hibernate支持的增删改查基本操作。复杂操作自行实现,只需要继承BaseDao即可。关键代码如下:IDao。javapublicinterfaceIDao{publicvoidsaveObject(Objecto);publicvoiddeleteObject(Objectobj);publicvoidupdateObject(Objectobj);publicvoiddeleteObject(Classclass1,Serializableserializable);publicObjectgetObject(Classclass1,Serializableserializable);}BaseDao.javapublicclassBaseDaoextendsHibernateDaoSupportimplementsIDao{}3.2.4网站代码目录网站后台代码结构如图3—4所示:图3-4后台代码目录代码目录:(1)action包存放控制层的代码(2)dao包存放数据库接口操作的代码(3)filter包存放自定义过滤器(4)hibernate包下的cfg存放hibernate配置文件(5)hibernate包下的pojo存放数据实体类(6)hibernate包下的xml存放实体配置文件(7)service包存放业务逻辑操作的代码(8)vo包存放页面实体(9)util包存放网站公用的工具类第31页
22河南大学本科毕业生学士学位论文网站前台页面及相关文件目录如图3-5所示:图3-5前台代码目录WebContent目录下存放网站前台页面及样式表,图片,脚本文件等(1)css目录放样式表(2)editor目录存放kindeditor插件(3)img包括网站图片(4)js存放网站的脚本文件(5)page分别存放网站页面(6)WEB—INF/lib存放网站配置文件及所需jar包3。3数据库设计根据功能模块划分,建立数据库。下面是对数据库设计的描述。3。3。1数据库表设计1.用户表(snsuser)包括用户的登录信息,和用户的基本资料,如表3—1所示表3—1snsuser字段名称数据类型可否为空说明usernamevarchar不可用户名passwordvarchar不可密码emailvarchar不可邮箱securevarchar可安全问题secureanswervarchar可安全问题答案rolevarchar不可用户角色statusvarchar不可账号状态createtimedate可创建时间lastlogindate可最后登录residencevarchar可居住地schoolvarchar可学校gendervarchar可性别birthdaydate可生日constellationvarchar可星座introductionvarchar可个人说明headervarchar可头像2.新鲜事表(snsfresh)第31页
23河南大学本科毕业生学士学位论文包括用户发表的新鲜事内容,时间,发表人等信息,如表3-2所示表3-2snsfresh字段名称数据类型可否为空说明freshidvarchar不可主键,唯一标示freshuservarchar不可发布人freshcontentvarchar不可内容freshtimedatetime不可发表时间commendnumint可赞数commenduservarchar可最近赞过的用户sharenumint可分享数storeidvarchar可收藏号freshheadvarchar可头像信息1.日志表(snslog)表3—3snslog字段名称数据类型可否为空说明logidvarchar不可日志idlogtitlevarchar不可日志标题logcontentvarchar不可日志内容loguservarchar不可发表用户lcommendnumint可赞数lcommenduservarchar可赞过的人lsharenumint可分享数logtimedatetime不可发表时间storeidvarchar可收藏idlogheadvarchar可头像信息2.相册表(snsphoto)表3-4snsphoto字段名称数据类型可否为空说明photoidvarchar不可相册idphotonamevarchar不可相册名称photoauthvarchar不可相册权限phototimedatetime不可创建时间uservarchar不可相册用户photonumint可相片数covervarchar可封面photodesvarchar可相册描述3.相册照片表(snsphotoimg)第31页
24河南大学本科毕业生学士学位论文表3—5snsphotoimg字段名称数据类型可否为空说明snsimgidvarchar不可相片主键snsimguservarchar不可相片用户snsimgphotovarchar不可所属相册idsnsimgtimedatetime不可创建时间snsimgnamevarchar不可相片名snsimgpathvarchar不可相片路径commendnumint可赞数sharenumint可分享数commenduservarchar可赞过的用户snsimgheadvarchar可头像信息storeidvarchar可收藏id1.分享表(snsshare)表3-6snsshare字段名称数据类型可否为空说明shareidvarchar不可分享主键shareuservarchar不可分享用户sharedynamicvarchar不可动态idsharetimedatetime不可分享时间sharereasonvarchar可分享理由sharecontentvarchar不可分享内容sharepubervarchar不可内容发布人shareheadvarchar可头像信息storeidvarchar可收藏id2.动态表(snsdynamic)表3—7snsdynamic字段名称数据类型可否为空说明dynamicidvarchar不可动态主键dynamicuservarchar不可动态用户dynamictimedatetime不可发布时间dynamictypeint不可动态类型typeidvarchar不可动态内容主键desvarchar可动态简介3.评论表(snscomment)表3-8snscomment字段名称数据类型可否为空说明commentidvarchar不可评论主键第31页
25河南大学本科毕业生学士学位论文commentuservarchar不可评论用户typeidvarchar不可内容主键commentdetailvarchar不可评论内容commenttimedatetime不可评论时间commentheadvarchar可头像信息1.赞表(snscommend)表3-9snscommend字段名称数据类型可否为空说明commendidvarchar不可赞,主键commenduservarchar不可赞的用户typeidvarchar不可内容主键commendheadvarchar可头像信息2.好友关系表(snsfriends)表3—10snsfriends字段名称数据类型可否为空说明idvarchar不可好友关系主键useridvarchar不可用户名friendsidvarchar不可好友名timedatetime不可成为好友时间3.消息表(snsinfo)表3—11snsinfo字段名称数据类型可否为空说明infoidvarchar不可消息主键infocontentvarchar不可消息内容infofromvarchar不可消息发送人infotovarchar不可消息接收人infotimedatetime不可发送时间infostatevarchar不可是否已阅infotypevarchar不可消息类型4.系统公告表(snsnotice)表3-12snsnotice字段名称数据类型可否为空说明noticeidvarchar不可公告主键noticetitlevarchar不可公告标题noticecontentvarchar不可公告内容noticetimedatetime不可公告时间第31页
26河南大学本科毕业生学士学位论文noticeuservarchar不可公告发布者1.收藏表(snsstore)表3—13snsstore字段名称数据类型可否为空说明storeidvarchar不可收藏主键contentidvarchar不可收藏内容主键idstoreuservarchar不可收藏人storetimedatetime不可收藏时间storetypevarchar不可收藏类型2.内容类型表(snstype)表3-14snstype字段名称数据类型可否为空说明tidint不可类型主键tnamevarchar不可类型名ttablevarchar不可类型表3。3。2数据库E—R图网站的实体联系图,如图3—6所示。第31页
27河南大学本科毕业生学士学位论文用户好友成为新鲜事日志相册发表发表拥有赞评论相册照片分享动态收藏创建发起生成生成生成生成1N111NNN1111N11111NM拥有收到拥有1NN11N图3—6数据库总体E-R图各实体属性如下:用户(用户名,密码,邮箱,安全问题,问题答案,用户角色,账号状态,创建时间,居住地,学校,性别,生日,星座,头像,个人说明)好友(主键,用户名,好友名,时间)新鲜事(主键,发布人,内容,时间,赞数,最近赞过的人,分享数,收藏主键,头像信息)日志(主键,标题,内容,发表用户,赞数,最近赞过的人,分享数,时间,收藏主键,头像信息)相册(主键,相册名,时间,用户,照片数,封面,描述)相册照片(主键,用户,所属相册,创建时间,照片名,照片路径,赞数,最近赞过的人,分享数,头像信息,收藏主键)动态(主键,动态用户,时间,动态类型,内容主键,描述)分享(主键,分享用户,动态主键,时间,理由,内容,内容作者,收藏主键,头像信息)第31页
28河南大学本科毕业生学士学位论文赞(主键,赞的用户,内容主键,头像信息)评论(主键,评论用户,内容主键,内容,时间,头像信息)收藏(主键,内容主键,收藏用户,时间,收藏类型)内容类型(主键,类型名,类型表)第31页
29河南大学本科毕业生学士学位论文第4章网站详细设计详细设计是根据前面的需求分析和总体设计,对功能模块进行详细的设计说明。4。1JavaWeb技术的使用网站基于java语言开发,其中必不可少的要用到多种java技术。4.1。1Javamail的使用用户可以邀请自己现实中的朋友加入网站,只需要输入好友email系统即可向其发送邀请注册,发送email页面如图4-1所示。Email输入提交后,通过javamail类,生成html格式邮件,发送至好友邮箱.流程如图4-2所示具体实现:通过javaee发送邮件需要导入javamail的jar包。发送email首先需要身份认证,创建一个密码验证器,通过的话则以此账号创建邮件会话session,再根据session创建邮件消息,并完善消息内容,html内容需要MiniMultipart类的支持.最后使用transport发送邮件。关键代码:SendEmail。java//发送邮件类MyAuthenticatorauthenticator=null;Propertiesproperties=mailInfo.getProperties();if(mailInfo.isValidate()){authenticator=newMyAuthenticator();//身份认证}SessionsendMailSession=null;sendMailSession=Session.getDefaultInstance(properties,authenticator);//创建邮件会话Messagemessage=newMimeMessage(sendMailSession);//邮件消息Addressfrom=newInternetAddress(mailInfo。getFromAddress());message.setFrom(from);//设置发送人Addressto=newInternetAddress(mailInfo。getToAddress());message。setRecipient(Message。RecipientType.TO,to);message。setSubject(mailInfo。getSubject());第31页
30河南大学本科毕业生学士学位论文message.setSentDate(newDate());//接收人及主题发送日期Multipartmultipart=newMimeMultipart();BodyParthtml=newMimeBodyPart();html。setContent(mailInfo.getContent(),"text/html;charset=utf-8");multipart。addBodyPart(html);message。setContent(multipart);//html格式内容Transport.send(message);//发送图4-1邀请注册页面发送邀请发出邀请email验证email验证成功验证失败图4-2邀请注册流程图4。1。2登录过滤器的使用网站可以由用户主动输入网址访问页面,但是一些页面受到信息安全因素,不应该让未登录用户直接访问。添加一个登录过滤器,用户每次请求页面则对其判断请求的是登录页面还是内容页面,如果是登录页面直接转到登录页,不是则判断用户的session会话是否存在,存在可以继续操作不然就转向到登陆页面.登录过滤器需要配置在web。xml文件中方可使用。关键代码如下LoginFilter.java页面publicvoiddoFilter(ServletRequestreq,ServletResponseres,FilterChainfilterChain)throwsIOException,ServletException{HttpServletRequestrequest=(HttpServletRequest)req;第31页
31河南大学本科毕业生学士学位论文HttpSessionsession=request.getSession();HttpServletResponseresponse=(HttpServletResponse)res;Stringurl=request。getServletPath();StringcontextPath=request。getContextPath();if(url.equals(""))url+=”/”;if((url.startsWith(”/")&&!url.startsWith("/login”)&&!url.startsWith(”/register”))||!url。endsWith(".jsp")){//若访问后台资源SNSUseruser=(SNSUser)session.getAttribute("user”);if(user==null){//转入管理员登陆页面response.sendRedirect(contextPath+”/login。jsp”);return;}}filterChain.doFilter(req,res);}配置文件web.xml:〈filter〉 32河南大学本科毕业生学士学位论文SNSDynamicdynamic1=(SNSDynamic)arg0;SNSDynamicdynamic2=(SNSDynamic)arg1;Intflag=dynamic2.getDynamictime()。compareTo(dynamic1.getDynamictime());returnflag;}网站运行中,在url间传递参数,可能会有中文乱码的问题,可以手动为其转码,创建一个公用的转码Encoding类,在需要转码的地方调用即可。Encoding。javapublicstaticStringgetString(Stringencoding){byte[]a;try{a=encoding。getBytes("ISO—8859—1”);encoding=newString(a,"UTF-8”);}catch(UnsupportedEncodingExceptione){//TODOAuto-generatedcatchblocke。printStackTrace();}returnencoding;}4.2Struts2技术的使用Struts2在网站中起到流程控制,后台数据在前台的显示等功能。4.2。1评论发布用户可以对自己个人中心展示出的动态,进行评论操作。用户提交评论内容,同时也把对应动态的主键传递,这是根据url参数传递和el表达式语言操作的.向数据库添加评论完成后,刷新页面,转向到查询数据action。评论流程如图4-3所示具体实现:用户发送action请求,struts2接收到将传递的参数,交由service处理,根据处理结果,action跳转到查询action进行查询操作,再根据action返回值跳到jsp页面。Action跳转action具体配置如下:〈actionname="publish_*”class=”com.sns。action.DynamicAction”第31页 33河南大学本科毕业生学士学位论文method="{1}”〉〈resulttype=”chain">user_indexCon〈inputtype="submit”class="btnbtn-success"value=”评论”/〉根据struts.xml配置文件,和action的返回结果跳转到相应页面. 34河南大学本科毕业生学士学位论文${vo.obj.freshuser}:${vo.obj.freshcontent}//el表达式〈s:elseiftest="#vo。store。storetype==’分享’”>${vo。obj.shareuser}:${vo.obj.sharecontent} 35河南大学本科毕业生学士学位论文〈!—属性配置等-—〉〈propertyname=”connection。username">root···············〈mappingresource="com/sns/hibernate/xml/SNSUser.hbm.xml”/>···············〈/session—factory〉Hibernate条件查询好友关键代码:publicList〈SNSUser〉userList(Stringname){Sessions=null;Transactiontx=null;List〈SNSUser〉users;try{s=this.getSession();//创建hibernate数据库连接会话Criteriacriteria=s。createCriteria(SNSUser.class);//条件查询Criterioncriterion=Expression.like(”username","%”+name+”%");//添加条件criteria.add(criterion);users=criteria.list();//查询结果}finally{if(s!=null)s。close();//会话关闭}returnusers;}4。4Jsp技术的使用Jsp将java代码放在页面中,动态生成页面信息。在各网页中都添加了网站路径的获取,并设置为base标签的href值,以保证网站页面上的所有链接的默认地址或默认目标。具体使用如下:〈%Stringpath=request。getContextPath();第31页 36河南大学本科毕业生学士学位论文StringbasePath=request.getScheme()+"://”+request.getServerName()+":"+request.getServerPort()+path+"/”;%> 37河南大学本科毕业生学士学位论文}}每个sevice都需要生成dao类的get/set方法以获取到spring创建的对象。UserService。javaprivateUserDaouserDao;publicUserDaogetUserDao(){returnuserDao;}publicvoidsetUserDao(UserDaouserDao){this.userDao=userDao;}同样的action也需要创建service的get/set方法,否则会报空指针异常。UserAction.javaprivateUserServiceuserService;publicUserServicegetUserService(){returnuserService;}publicvoidsetUserService(UserServiceuserService){this。userService=userService;}第31页 38河南大学本科毕业生学士学位论文结论本网站是一个基于java语言开发的社交网站,用户可以方便的认识朋友,与朋友互动。设计的基础功能已经基本完成.社交网站主要实现了以下功能:(1)实现了用户产生动态,生成内容的功能,可以发表新鲜事,发表日志,创建相册并为其上传照片。(2)实现用户管理的功能,用户可以维护自己的资料和头像信息。(3)用户可以搜索用户,并添加陌生人为好友(4)用户可以对动态内容,进行评论,分享,收藏,赞的互动操作.(5)提供了后台管理员的用户管理和公告发布功能.社交网站作为网络应用,向用户提供了方便的社交功能,和及时的动态交互,朋友可以第一时间了解到朋友身边发生的故事。设计的社交网站的基础功能开发虽然完成,但还有工作有待进一步继续,如网站中的验证以及页面的展示效果,同时网站中用户的内容功能还有待增加管理功能,以更好地增强用户的网站体验。第31页 39河南大学本科毕业生学士学位论文参考文献[1]谢星星等。《企业应用架构设计-Struts2+Hibernate3+Spring2》[M]。中国水利水电出版社,2010年5月第一版[2]刘京华等。《JavaWeb整合开发王者归来》[M].清华大学出版社,2010年1月第一版[3]JeremyKeith等。杨涛等译。《JavaScriptDOM编程艺术》[M]。人民邮电出版社,2007年1月第一版[4]DaveCrane,EricPascarello等.ajaxcn.org等译。《Ajax实战》[M]。人民邮电出版社,2006年4月第一版[5](美)埃克尔.陈昊鹏译.《Java编程思想》[M].机械工业出版社,2007年6月第一版[6]Java词条.来自百度百科http://baike。baidu。com/view/29.htm,2013年4[7]Spring框架简介。https://www。ibm.com/developerworks/cn/java/wa-spring1,2005年8月第31页
此文档下载收益归作者所有