1、QQ空间管理系统设计 学院: 电子信息工程学院 班级: 信息管理于信息系统 组员: 葛晓飞 石晓甜 侯建英 孙千惠 马莹莹 课程: 应用系统项目实践 第一章:要求和目标 1.1基础要求 (1)功效:用户登录功效:并以此来判定用户本人和访客,而且对对应操作权限进行设置。 用户日志信息(更新):查看、发表、评论等信息导入/导出。 用户相册信息更新:上传、查询,及实现简单在线播放。 实现用户留言板功效,每当有游客来访问时,能够进行
2、简单留言功效。 访客统计功效:统计、显示历史访问人数,和当日访问人数信息。 个人资料管理功效:对个人信息修改和实现简单注册功效。 查找添加用户功效:能够方便查找全部好友和添加好友功效, (2)性能 方便数据导入和输出,提升了软件使用效率。 (3)系统输入 日志信息、相册信息、留言信息、访客信息及其含有特殊权限用户修改信息 (4)系统输出 查询结果和数据显示。 (5)数据安全 系统对不一样权限用户提供不一样功效模板,有一定特殊权限用户能够进行相正确操作,通常游客只能进行信息查看操作。 1.2 .开发目标 (1)方便操用户添加、查询及其修改相关信息,降低人力和设
3、备需求; (2)同时满足查询及其修改要求; (3)促进信息交流规范化及其多样化; (4)学生自行开发降低选课管理创作及其维护费用 1.3. 定义 概念 (1)QQ System:QQ信息管理系统。 (2)用户:QQ空间管理系统用户,关键分为游客和用户,能够拥有QQ信息管理系统帐户。 (3)帐户:用户登录QQ空间管理系统凭证,用户经过密码或其它安全认证拥有帐户相关功效。 二:通常性描述 该系统所包含帐户信息和用户信息全部存放在银行数据库服务器中,数据库服务器运行在小型机上。本系统采取浏览器/服务器(B/S)工作方法,系统用户关键有:用户和游客。 1 .系统Us
4、e Case图 顶层Use Case以下图所表示: 顶层Use Case Actor定义以下: Adminixtrator:通常见户。 Tourist:游客。 对顶层Use Case进行细化,得到Use Case图以下所表示。 细化Use Case图 各Use Case说明以下: (1) 登录:提供用户登录验证。 Step1:用户登录QQ信息管理系统登录页面,输入用户名和密码。 Step2:验证成功则跳转至主页面,不然重新登录,本Use Case结束。 (2) 留言;为自己或她人进行留言 Step1:用户首优异行系统登录,登录成功则可实施本功效
5、 Step2:本人信息留言:用户能够在自己留言板处,进行个人留言,编辑信息后,点击提交按钮,若出现留言成功提醒,则说明留言成功,不然留言失败。 Step3:若对好友进行留言,则首先查看自己好友,跳转至好友主页,然后找到对应留言板板块,再说输入框进行编辑文本,一样单击提交按钮提交,出现留言成功则表示此次留言成功,本Use Case结束。 (3) 查看:查看自己或好友信息 Step1: 用户首优异行系统登录,登录成功则可实施本功效。 Step2:查看自己本人信息:登录成功后则进入个人主页,在该页面有日志、说说、相册、留言板、请求信息、个人信息等模块。假如查看她人信息则需要首优异入好
6、友空间然后选择对应信息进行查看,但需要注意是我们在她人空间只能查看而不能操作她人信息 Step3:完成查看后能够返回好友或自己界面,同时能够退出本系统。 (4) 评论:对自己或好友信息进行评论 Step1: 用户首优异行系统登录,登录成功则可实施本功效。 Step2:用户登陆成功后,选择要访问好友,进入好友主页,选择好友说说或是日志然后在下面输入框输入评论信息,输入完成后按提交按扭。 Step3:提交以后若提交成功,则提醒评论成功不然评论失败。 Step4:评论完成后能够跳转好友主页面或是自己主页面。 (5) 发表信息;该功效是发表自己日志,说说,音乐。 Step1:
7、用户首优异行系统登录,登录成功则可实施本功效。 Step2:当用户登陆成功以后,跳转主界面,选择对应日志或说说或音乐功效,然后在每个单摸版中全部有提醒按钮,像说说在文本框中输入要发表信息,然后淡季发表按钮;若是上传音乐,则单击上传按钮。 Step3:在每次响应操作以后全部会出现响应状态提醒。 (6) 回复评论:用户对好友发表评论进行回复 Step1:用户首优异行系统登录,登录成功则可实施本功效。 Step2:查看自己说说或日志,观看下面评论信息。 Step3:找到好友对自己信息评论,在回复框中输入回复信息。 Step4:状态显示,回复成功则提醒回复成功,不然显示失败。
8、7) 添加好友:添加好友,方便查看好友信息。 Step1:用户首优异行系统登录,登录成功则可实施本功效。 Step2:将鼠标放到添加好友,会划出一个文本框,上面列出了全部好友,单击右边添加好友按钮,会弹出已发送添加请求,等候好友回复。 Step3:当好友同意添加后,在自己消息中会提醒消息+1,1即为消息数目。 Step4:添加成功后,将鼠标放在我好友处,将划出一文本框,显示自己全部好友。 所以,本QQ空间管理系统由以下功效模块组成: (1)用户登录、注册登录模块 (2)主界面模块 (3)个人信息管理和维护模块 1.4用户特征 此系统有两类用户:一般用户和游客。功效(1):
9、只有进行登录并经过身份验证用户,才能够在QQ空间系统页面发表日志,并借助个人设置实现对个人相关信息管理维护。对于没有经过身份验证网络用户不许可在本系统中发表日志,更不许可对本系统页面信息进行管理维护。 该模块实现QQ空间系统注册及登录验证功效。注册成功用户登录时,会随时依据页面输入登录信息进行提醒,如用户名错误或密码错误。 功效(2):在该模块中提供了QQ空间系统页面统计信息(如访问量等),日志、评论、音乐盒及留言信息分页显示等多个功效,方便用户操作。 功效(3):借助该模块,用户能够随时对个人QQ空间主页中内容进行增加或修改,包含日志等信息更新、评论及留言管理等功效,也许可用户对个人信
10、息进行维护及其管理。 对于用户来说通常全部有一定专业领域知识,通常有一定电脑操作能力,但对于部分特殊用户来说可能对电脑操作知识了解比较少,所以对于通常使用者来说不需要特殊理论、知识来支持,也不需要经过特殊训练,用户只要在计算机上装有IE或Netscape浏览器,并有基础浏览器操作知识,便能方便使用本系统。 1.5限制和约束 此系统必需满足以下限制: (1)系统中全部帐户能够供用户随时使用,而且用户名唯一性; (2)在同一时刻,一个帐户不能同时为两个用户服务; (3)超出预定时间,没有操作该账号被自动释放; 第二章:功效描述 2.1关键功效模块 依据系统需求分析和系统功效模
11、块结构图来看,该系统应含有以下基础功效: l 登录信息 l 主页信息 l 日志信息 l 留言板信息 l 相册信息 l 个人档信息 l 音乐信息 QQ空间管理系统可划分为登陆信息,主页信息,个人档信息,说说信息等部分。其层次图图1所表示。 图1 功效模块图 2.2 注册功效模块 1.用户表_user其设计结构以下: 图2登陆信息图 用户登录和注册模块实现 登录界面servlet控制器部分代码以下: package com.softeem.qqsystem.servl
12、et; public class logInfoManger extends HttpServlet { private int count;// 总日志数 private int pagecount;// 共有页数 private int everypage;// 每页显示数量 private int currentpage;// 目前页数 private static final long serialVersionUID = 1L; private LogDAO logdao = new LogDAO(); public void service(HttpS
13、ervletRequest request, HttpServletResponse response) { try { request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } String flag = request.getParame
14、ter("flag"); if ("_showlog_daily".equals(flag)) { this.getAlllog_Daily(request, response); System.out.println("--------*****-----------"); } else if ("show_daily".equals(flag)) { this.show_daily(request, response); } else if ("_write_daily_log".equals(flag)) {// 写日志 this.wri
15、te_daily_log(request, response); } else if ("_comment".equals(flag)) {// 进行评论日志 this.createComments(request, response); System.out.println("***********bbbbbbbbbbbbbb****"); } else if ("show_message".equals(flag)) {// 显示全部留言信息 this.getAllMessage(request, response); } } // 显示全
16、部日志,按页显示 public void getAlllog_Daily(HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession();// 注意session需要获取 String mainaccount = (String) session.getAttribute("user"); String newaccount = (String) session.getAttribute("newUser"); Str
17、ing account; if (newaccount != null) { account = newaccount; } else { account = mainaccount; System.out.println(account); } // System.out.println(account); everypage = 3;// 每页显示5条数据 count = logdao.findallpage(account);// 总数据量为 if (count % everypage == 0) {// 计算总页面数
18、 pagecount = count / everypage; } else { pagecount = count / everypage + 1; } currentpage = Integer.parseInt(request.getParameter("currentpage"));// 接收网页传来目前页数 if (currentpage < 0) {// 判定前一页后一页是否超出该范围 currentpage = 0; } else if (currentpage >= pagecount - 1) { currentpag
19、e = pagecount - 1;
}
List
20、 try { request.getRequestDispatcher("jsp/log_daily.jsp").forward(request, response); } catch (ServletException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
21、
// 显示所要查看日志
public void show_daily(HttpServletRequest request,
HttpServletResponse response) {
int log_num = Integer.parseInt(request.getParameter("log_num"));
Log log = logdao.getonedaily(log_num);
List
22、DiscussList", discusslist); request.setAttribute("Log", log);// 将相关该文章内容发送到页面中 try { request.getRequestDispatcher("jsp/show_daily.jsp").forward(request, response); } catch (ServletException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOExceptio
23、n e) { // TODO Auto-generated catch block e.printStackTrace(); } } // 发表日志 public void write_daily_log(HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); String account = (String) session.getAttribute("user"); String
24、title = request.getParameter("title"); String content = request.getParameter("content"); Log log = new Log(); log.setAccount_num(account); log.setContent(content); log.setLog_name(title); System.out.println(title); System.out.println(content); int flag = logdao.write_daily_lo
25、g(log); System.out.println(flag); if (flag > 0) { request.setAttribute("message", "文章发表成功!"); } else { request.setAttribute("message", "对不起,文章发表失败!"); } try { request.getRequestDispatcher("jsp/writedaily_log.jsp").forward( request, response); } catch (ServletExcep
26、tion e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } 当注册页面时,会跳入注册页面,当登陆成功后会跳入该系统主页面,主页面部分代码以下: