基于SSH的社交网站的设计与实现

时间:2022-09-10 07:05:05

基于SSH的社交网站的设计与实现

设计并实现一个交互体验良好、融入Webgame特性的基于SSH的社交网站,该社交网站面向群体主要为在校大学生。与目前广泛流行的社交网站相比,该社交网站将传统社区业务与娱乐联系得更加紧密。

社交网站互动交流人际关系

1引言

本文设计并实现的基于SSH的社交网站包括个人信息管理、人际关系管理、交流互动、管理员管理四个模块。个人信息管理模块涉及注册、登录、修改个人资料等功能;人际关系管理模块需要实现好友申请,解除好友关系,搜索用户等功能;交流互动模块包括写日志、发状态、抢沙发、新鲜事等促进用户黏着度的功能。管理员管理模块实现了最基础的搜索用户,冻结用户账号等功能。该社交网站共有三种角色,分别是游客、用户和管理员。游客只能访问登陆页面和注册页面,游客完成注册后成为了正式的用户。正式用户可以执行写日志、发表状态、留言、回复、访问个人主页等操作。管理员可以执行查找用户,删除(冻结)用户等操作。

2社交网站设计与实现

2.1抢沙发功能

用户在对他人的日志、状态、战斗信息进行评论时,可以勾选“我想抢沙发”的选项,若用户之前没有对该日志、状态、战斗信息发表过评论,本社交网站会让该用户与沙发的主人进行自动战斗,战斗胜利者的评论将成为头条评论,失败者的评论将转移到评论列表末尾。系统会自动为用户完成战斗,战斗过程以文字来体现。在数据库表cww_combat以及cww_skill中,预先存储了已经定义好的文字,最终每场战斗过程会记录到单独的一份XML文件中,该文件以参战者的id以及系统当前时间串联起来命名,确保了唯一性。系统会一边进行战斗,一边记录战斗过程中的每一个回合。战斗结束后,根据胜负情况会改变参战双方的评论信息的sort值。

2.2查询用户功能

用户输入想要查询的用户姓名后点击输入,页面会跳转到search.jsp页面,该社交网站根据用户输入的姓名向数据库查询。该社交网站首先检测JSP页面中的全局变量totalPage是否为零,若不为零,则:“resultnum=DAOF actory.get Cww User Basic Dao Instance().query By Name Num(string Search);total Page=(int)Math.ceil((double)resultnum/(double)10);”。参数totalPage是搜索结果的总页数,参数resultnum为搜索结果的总条数。数值10为单页显示的结果总数。若total Page不为零,则不执行上述操作。参数page为搜索结果的当前页数,默认为1。获得了搜索结果总页数以后,使用JSP在页面写入执行分页功能的控件,使得用户可以跳转至任意页数。

每次用户执行跳转,则会使用request传递total Page和page。这种情况下,使得该社交网站不用每次都要执行计算搜索结果总值的操作。通过DAOF actory.get Cww User Basic Dao Instance().query By Name (string Search,page)获得当前页数的搜索结果。该方法对数据库执行SQL语句:“SELECTub_id,ub_user_id,province,portrait_url_s,name FROMcww_user_basic WHEREname LIKEstringSearch LIMIT (page-1)*10,10”。该语句通过LIMIT关键字返回了指定的搜索结果。在该社交网站其它需要对搜索结果实行分页的地方也用了相同的方法,该方法适合处理海量的数据,节省了搜索花费的数据传输量。在搜索结果中获得了满足搜索结果用户的姓名、ID、头像以及出生地。用户可以直接点击姓名访问该用户的个人主页,也可执行申请好友的请求。

2.3写日志功能

该社交网站支持用户写日志,用户首先在个人主页点击日志,在日志列表点击“写日志”即可进入写日志界面,其中,日志存放的方式是存储在表cww_log中类型为longtext的栏目中。为了能够使得空格、换行符信息能够不丢失,在JSP代码中,使用了标签包裹。Pre元素可定义预格式化的文本。被包围在 pre元素中的文本通常会保留空格和换行符。而文本也会呈现为等宽字体。标签的一个常见应用就是用来表示计算机的源代码。该网站调用DAO中定义的方法将新日志信息插入数据库,该方法使用的SQL语句:INSERT INTOcww_log (user_id,title,log,release_time) VALUES (?,?,?,?)。

2.4个人状态功能

用户可以一段简短的文字表达自己当前的心情、感悟或者传播自己想要公布的信息,这段简短的文字称为状态。当用户成功一条状态后,会在个人主页显示出来。在个人主页显示的状态称为用户的当前状态,在记录状态的数据库表cww_status中,每一条状态都有一个if_current字段,当if_current为1是,表示此状态为当前状态,当该值为零时,表示此状态为历史状态。因此,每当用户发表一条新的状态,会将该状态的if_current设为1,将上一条状态的if_current设为零。

2.5 回复功能

用户可以对任意用户的状态、日志、战斗信息进行评论。无论用户对状态、日志还是综合战斗信息进行评论,用户的每条评论都会存放在数据库的cww_reply表中,以一个名为reply_type的枚举类型字段区别评论类别,而字段sort代表评论所在的楼层数,sort为1时,代表着这条评论是用户的沙发。因为本社交网站支持用户抢占沙发,所以在sql中用sort字段而非评论时间来排序。本社交网站实际提交给数据库的SQL语句原型(以日志类型的评论为例):“SELECTsta_msg_id,log_id,from_id,to_id,content,msg_timem,sort FROMcww_reply WHERElog_id=? ORDER BYsort LIMIT ?,?”。其中关键字LIMIT实现了分页。用户每得到一次评论,他的活力就会上升一些,上涨数值等于他战斗属性表中的mp_add,但若用户的活力到达活力上限,则不会再上涨。

2.6留言功能

在个人主页下方有用户的留言板,该留言板只列出最近10条留言,在个人主页点击“留言板”后,可以查看完整的留言板。所有的留言都用气泡对话框表现,该气泡对话框无法自由伸展,只是html加载的一幅静态图片,所以系统限制了用户的留言长度不超过30字。

3小结

本文开发一座将娱乐与传统社区业务紧密结合,在立足映射出用户真实人际关系的基础上,将浓厚的幻想元素带入日常交流互动的社交网站,用户将在该社交网站中扮演一个不一样的真实的自己。

参考文献:

[1] Askar S. Boranbayev.Defining methodologies for developing J2EE web-based information systems[J].Nonlinear Analysis,71(2009).

上一篇:案件管理信息化系统建设项目设计与效果评价研... 下一篇:科学发展油田纪检监察工作力求反腐倡廉实效