博客系统设计与实现.doc

上传人:飞****2 文档编号:60099421 上传时间:2022-11-13 格式:DOC 页数:27 大小:380KB
返回 下载 相关 举报
博客系统设计与实现.doc_第1页
第1页 / 共27页
博客系统设计与实现.doc_第2页
第2页 / 共27页
点击查看更多>>
资源描述

《博客系统设计与实现.doc》由会员分享,可在线阅读,更多相关《博客系统设计与实现.doc(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、摘 要在学校管理系统中,为了提高教职工的工资,业绩,个人信息等数据的精确性及应用方便性,拥有一套教职工数据管理系统,就为学校提供了很好的平台。本项目运用了安全又可靠的java技术,jsp技术及先进而又方便的spring架构,还具有excle的上传及下载功能,不但可以直接一目了然的看到教职工信息,也可以自行写sql语句,得到自己想要的数据,方便而又快捷。关键词: 教职工数据管理系统,技术,方便t 目 录摘 要I目 录II第一章绪论11.1 系统设计背景11.2系统设计目标11.3系统设计意义1第二章 相关技术介绍32.1 技术简介32.1.1 JSP开发环境32.1.2 Oracle数据库32.

2、1.3 JaveBean原理机制42.1.4 B/S模式分析52.2 配置信息62.2.1 运行环境与软件要求62.2.2 Tomcat配置6第三章 系统功能需求分析83.1 系统可行性研究83.1.1经济可行性83.1.2技术可行性83.1.3运行可行性83.2 功能需求研究8第四章 系统总体实现104.1 系统模块整体设计104.2 数据库结构设计10第五章 系统的具体实现145.1 用户登录145.2 我的主页155.3 发表博文165.4 分享图片175.5 分享音乐195.6 分享视频20第六章 系统测试216.1 测试的重要性及目的216.2 测试的步骤226.3 测试的主要内容2

3、26.3.1单元测试226.3.2集成测试226.3.3确认测试226.3.4系统测试22致谢25参考文献26第一章 绪论1.1 系统设计背景信息技术的广泛应用推动了世界经济的快速发展,人类逐步走进信息化的社会,信息化成为当今世界发展潮流。教育信息化是社会信息化的重要组成部分,它是指现代信息技术在教育领域的应用、教育信息资源的开拓和高效利用、信息社会所特有的重要组织和管理方式在教育领域实现的这一系列过程。高职院校作为一种高等教育机构,以直接为社会经济发展服务、为产业部门培养各类劳动力为办学宗旨。高等职业院校的社会服务主要任务是向区域和行业提供技术应用型和高技能型的人才培训与培养,提供技术创新、

4、推广和服务,实施先进文化的传播和辐射,使学校成为区域的技术技能培训中心、新技术的研发推广中心、区域学习型社会中心,具有鲜明的区域性和行业性特征。对于以培养高级应用型技术人才为主要任务的高职院校来说,信息化是实现学校跨越式发展的必由之路。高职院校信息化是指高职院校根据自身发展的需要,采用先进的信息技术来构建数字化校园,从而提高管理效率、强化教学质量、促进科研教研、提升服务水平、促进教育现代化的过程。1.2 系统设计目标本课题探索一种在现代信息化环境下的全新的高职院校教职工管理新模式,改变目前传统复杂低效的人工管理方式,通过myeclipse开发平台,运用jsp技术、oracle技术开发一个基于W

5、eb的软硬件相结合的实习管理系统,实现对教职工数据信息的网络化管理,提高工作效率和管理水平。要求用户界面友好,操作简单,功能丰富,性能优化,满足教职工信息管理的功能需求。1.3 系统设计意义本系统的成功开发与应用,将会改变高职院校传统的教职工信息管理现状,对提高实习教育教学水平具有重要意义:(1)首先计算机可以代替人工进行施工统计的麻烦。(2)计算机可以节省好多资源,提高工作效率和质量。(3)促进教学改革,实现教学模式由单一型向多样化转变,充分尊重学生的个性化需要,提供快捷、稳定、可靠的优质实习服务手段,提高教学的质量和效益。(4)极大地提高工作效率,解决开放实验室带来的管理工作量增加,师资不

6、足等问题,也使学院领导和主管部门对实验教学的监控进一步加强。(5)促进学生适应计算机应用技术的快速更新,掌握通过现代高新技术获取知识的能力和运用知识的能力。(6)建立现代化的高效运行的管理机制,全面提高实习管理水平,改善决策支持环境。急需走进舞台。第二章 相关技术介绍2.1 技术简介2.1.1 JSP开发环境JSP技术是一种动态Web技术,它使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用

7、程序的开发变得迅速和容易。 Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的JAVA程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。 JSP与Java Servlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。 JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet 是JSP的技术基础,而且大型的Web应用程序的

8、开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。 自JSP推出后,众多大公司都支持JSP技术的服务器,如IBM、Oracle、Bea公司等,所以JSP迅速成为商业应用的服务器端语言。 2.1.2 Oracle数据库ORACLE 是以高级结构化查询语言(SQL)为基础的大型关系数据库,通俗地讲它是用方便逻辑管理的语言操纵大量有规律数据的集合。是目前最流行的客户/服务器(CLIENT/SERVER)体系结构的数据库之一。ORACLE主要特点体现在以下几个方面:1、ORACLE7.X以来引入

9、了共享SQL和多线索服务器体系结构。这减少了ORACLE的资源占用,并增强了ORACLE的能力,使之在低档软硬件平台上用较少的资源就可以支持更多的用户,而在高档平台上可以支持成百上千个用户。2、提供了基于角色(ROLE)分工的安全保密管理。在数据库管理功能、完整性检查、安全性、一致性方面都有良好的表现。3、支持大量多媒体数据,如二进制图形、声音、动画以及多维数据结构等。4、提供了与第三代高级语言的接口软件PRO*系列,能在C,C+等主语言中嵌入SQL语句及过程化(PL/SQL)语句,对数据库中的数据进行操纵。加上它有许多优秀的前台开发工具如 POWER BUILD、SQL*FORMS、VISI

10、A BASIC 等,可以快速开发生成基于客户端PC 平台的应用程序,并具有良好的移植性。5、提供了新的分布式数据库能力。可通过网络较方便地读写远端数据库里的数据,并有对称复制的技术。2.1.3 JaveBean原理机制JSP的一大特点就是与JavaBeans的结合,而JSP与JavaBeans结合的一个突出的优点是页面显示和业务逻辑的分离。这可以使团队协作的更好,开发出更高质量的站点。JavaBean是一种可以重用的Java组件,它类似于COM,在JSP程序中常用来封装事物逻辑、数据库操作等,可以很好的实现业务逻辑和前台程序的分离,使得系统具有更好的健壮性和灵活性。事件处理是JavaBeans

11、体系结构的核心之一。通过事件处理机智,可以让一些组件作为事件源,发出可被描述环境或其他组件接受的事件。这样,不同的组件就可在构造工具内组合在一起,组件之间通过事件的传递进行通信,构成一个应用。从概念上讲,事件是一种在“源对象”和“监听对象”之间、某种状态发生变化的传递机智。事件有许多不同的用途,如:鼠标事件、窗口边界改变事件、键盘事件等。在Java和JavaBeans中则是定义了一个一般的、可扩充的事件机制,它能够:1) 对事件类型和传递模型的定义和扩充提供一个公共框架,并适合于广泛的应用。2) 与Java语言和环境有较高的集成度。事件能描述环境捕获和被激发。能使其他构造工具采取某种技术在设计

12、时直接控制事件,遗迹控制事件源和事件监听者之间的联系。事件本身不依赖于复杂的开发工具。特别的,事件机制还应当:1) 能够发现制定的对象类可以生成的事件。2) 能够发现制定的对象类可以观察监听到的事件。3) 提供一个常规的注册机制,允许动态操纵事件源与事件监听者之间的关系。4) 不需要其他的虚拟机和语言即可实现。5) 事件源与监听者之间可进行高效的事件传递。6) 能完成JavaBean事件模型与相关的其他组件体系结构事件模型的中立映射。JSP和ASP.NET同样是网站开发中常用的开发工具。但是,ASP是微软的产品,其应用只能是在Windows平台上,移植性差,而且以源代码的形式存放在服务器端,安

13、全性差。每次由服务器解释运行,运行效率不高。Jsp页面文件执行时被编译成字节代码,由客户端流览的Java虚拟机解释执行,不再是源代码,因此执行效率和安全性高。将数据库连接的重要信息存放在JavaBean文件后,可以编译成虚拟机才能解释的字节代码,确保了数据库的安全。在ASP技术里,通过Web页面要实现一些特定的功能比较困难,比如基于网页的报表,打印实现起来就比较麻烦。ASP提供的解决方案是自己开发组件,通过在服务器端注册组件,成为独立的可以重复利用的模块供读者调用。因此要求读者需要掌握比较复杂的变成语言的开发技术。在JSP开发技术里,可以通过开发JavaBean文件实现同样的功能,JavaBe

14、an不需要注册,只要放置在相应的目录下就可以运行。可以实现ASP的COM组件同样的功能。此外JSP推出主要就是考虑到平台的无关性。JSP代码可以在APACHE、IIS等服务器上执行,支持大部分操作系统。JSP继承JAVA技术的优点:一次运行,处处运行。2.2 配置信息2.2.1 运行环境与软件要求2.2.2 Tomcat配置Tomcat中D:javaapache-tomcat-6.0.18confCatalinalocalhost中增加ccs的配置内容如下: 访问网址:8080/ccs登陆加载首页,主要的配置在config-ccs中的root.properties文件即可。指定需要加载主界面默

15、认加载到首页。路径具体的内容如图2-1所示。图2.2.2 加载路径截图第三章 系统需求分析3.1 系统可行性研究3.1.1经济可行性教职工数据服务系统是校园管理系统的重要组成。它是针对目前教师管理工作的情况设计的,力求满足教师工作多方面的需要。该系统的设计要充分考虑到教职工,具有较强的针对性,力求为学生工作者的工作提供更加便捷的辅助工具和手段。有些系统中有些功能过于简单,不能完全适用于学校应用;而有些则功能太复杂,使用起来比较麻烦。另外,各学校也有自身的特点和具体情况。因此,我们意识到,有必要开发一套针对本校自身特点和具体情况的教职工数据服务系统。3.1.2技术可行性由于本系统采用了当前流行的

16、技术,可以说实施起来相对容易些。根据本系统目标来衡量所需的技术是否具备,一般可从硬件、软件的性能要求、环境条件、技术人员水平和数量等多个方面去分析,其中开发人员的技术力量应首先考虑能力与水平,这关系到系统是否能够实现的重大问题,同样也不要忽略了其他方面的因素,只有这些方面都同时具备,且比较成熟,才可以实现,因此,它在技术上是可行的。3.1.3运行可行性本系统是对教职工的信息管理,应用了spring框架,及excle的上传下载功能。由于语言和技术的扎实性,在运行方面是不会,3.2 功能需求研究功能概述:1、 登录功能2、 个人信息管理功能3、 日志发布浏览功能4、 日志留言和管理功能5、 图片上

17、传功6、 音乐上传功能。博客首页功能:提供热门博客、热门博文、登录、注册链接等功能,显示最新注册用户,搜索博客博文等功能。注册登录功能:轻博客系统能够提供用户注册及登录的功能。个人信息管理功能:博客系统提供用户修改个人信息的功能。日志发布浏览功能:博客系统提供用户发布日志的功能。日志留言和管理的功能:博客系统提供用户日志留言的功能。图片上传功能:博客系统提供用户上传图片的功能。音乐上传功能: 博客系统提供用户上传音乐的功能。第四章 系统总体实现4.1 系统模块整体设计本系统将系统主要划分为两大模块:用户功能模块和管理员功能模块。出于安全性和业务可维护性的目的,用户在进入这个系统之前必须首先登陆

18、,同时新用户可以进行注册操作。进入用户功能界面后,用户可以进行个人信息管理,好友管理,博客管理等操作。个人信息管理包括个人信息修改,密码修改;好友管理包括添加好友,查看好友;博客管理包括写博文,上传图片,上传视频,发表评论,美文分享等操作;本系统功能模块图如下图所示:首页登陆我的主页注册个人信息管理博友管理博客管理退出图4.1.1登录界面在如图4-1所示的系统首页中,用户可以在页面内浏览消息中心的相关消息。最新的消息如工作区申请、最新的站内信、最新活动、最新的咨询等等。好友动态如日志的更新图片的更新、工作区的创建要有的邀请等;所有工作区,最近访问的访问者,好友列表的读取;最新的公告,主要是工作

19、区上传了什么样的通知,或是别的公共内容;页面左侧的快捷导航栏,查看自己站内信息;日历中心可以自动读取天气,您可以按照个人的业务进行事件的填写和规划等。4.2 数据库结构设计本系统的数据库命名为:博客_DB。信息名: Host建议字段结构如下:表4.2.1 创建主表名称类型可为空注释idint否编号typeVarchar(50)否轻博类型titleVarchar(50)是标题usersVarchar(50)否创建者timetimestamp否创建时间IPvarchar(100)否IPreadingVarchar(40)否阅读权限countint否观看次数Delete_stateVarchar(5

20、0)否删除状态contentVarchar(50)是内容Draft_flagVarchar(50)否保存草稿信息名:article建议字段结构如下:表4.2.2 文章信息表名称类型可为空注释idint否外键,自动增长typeNameVarchar(50)否文章类别titleVarchar(50)否文章题目ContentVarchar(50)否只要内容authorVarchar(50)否发布人sendTimedateTime否发布时间visitint否访问次数commendVarchar(50)否是否推荐信息名: feed建议字段结构如下:表 4.2.3 图片上传表名称类型可为空注释id int

21、否编号name varchar(1000)否文件名resource_typeresource_id否所属资源类型resource_id int是所属资源编号creator int否创建者编号create_time timestamp否创建时间mime_type varchar(40)是文件类型attachment_size varchar(12)是大小pathvarchar(64)否相对路径download_countint是下载次数deleted varchar(1)是软删除标志description varchar(2000)是附件描述resource_indexvarchar(12)是附

22、件序号width varchar(4)是附件宽度height varchar(4)是附件高度信息名: info建议字段结构如下:表4.2.4 留言及小纸条信息表名称类型可为空注释info_idint否系统自动编号info_accountvarchar(50)否发送信息人info_fromAccountvarchar(50)否接收信息人info_contenvarchar(50)否信息详细info_signint否标识信息信息名: reArticle建议字段结构如下:表4.2.5 文章回复信息表名称类型可为空注释id int否系统自动编号re_idint 否回复人IDaccount varcha

23、r(50)否 回复人contentvarchar(50)否 回复内容re_timedateTime否 回复时间信息名: userInfo建议字段结构如下:表4.2.5 用户信息表名称类型可为空注释id int否系统自动编号accountvarchar(50)否用户名password varchar(50)否密码realnamevarchar(50)否真实姓名 emailvarchar(50)否邮箱 sexvarchar(50)否性别telphonevarchar(50)否电话professionvarchar(50) 否职业addressvarchar(50)否地址homepagevarcha

24、r(50)否主页名称qqvarchar(50)否QQ号码headgifvarchar(50)是头像地址freezevarchar(50)是用户是否冻结art_typevarchar(50)是文章类别名称pic_typevarchar(50)是相片类别名称friend_typevarchar(50)是好友名称commendvarchar(50)是是否推荐vistorint是访问次数selfvarchar(200)是自我评价第五章 系统的具体实现5.1 用户登录对于一个完整的个人博客系统,不仅要求功能强大、操作简单,还要有良好的设计风格和另人爽目的界面。登录界面对于整个系统来说是非常重要的,因为它

25、设置了进入本系统的用户和口令,防止非法用户进入系统,破坏系统安全和所保存的数据,只有合法的管理员在输入正确的密码后方可进入系统,否则将提示密码或用户名输入错误,并询问用户是否重新输入。这样就对使用者有了限制,增加了系统的安全性和保密性,便于控制和管理,有利于系统的维护。图5.1.1登录界面5.2 我的主页图5.2.1主界面主界面框架结构代码: 主界面功能代码:public ModelAndView index(WebInput in, LoginUser luser) logger.debug(the index.do is start.); int num = QBlogCon.QBLOG_

26、PAGE_NUM; int start = RequestUtils.getStartNum(in.getRequest(), num); String keywords = in.getString(keywords); Integer innerType = in.getInt(innerType); logger.debug(the num is , start is , keywords is, innerType is, new Objectnum, start, keywords, innerType); final Map params = new HashMap(); para

27、ms.put(isAdmin, appSecurityService.isAppAdmin(ResourceType.QBLOG_STRING, luser.getId(); params.put(pageObject, this.qBlogService.getQBlogByType(keywords, innerType, AttentionCon.ALL_INTEGER, luser.getId(), start, num); params.put(resourceType, ResourceType.QBLOG_INTEGER); params.put(r, MD5Encrypt.MD

28、5Encode(RandomStringUtils.randomAlphanumeric(4); params.put(showSomePohto, true); return new ModelAndView(qblog.index, params); 5.3 发表博文图5.3.1发表博文界面轻博客的新建和编辑功能代码:public ModelAndView editQblog(WebInput in, WebOutput out, LoginUser luser) throws IOException logger.debug(the editQblog.do is start.); Lo

29、ng qBlogId = in.getLong(id); Integer innerType = in.getInt(type);/轻博客中的内部类型. logger.debug(the qBlogId is , innerType is , qBlogId, innerType); QBlog qBlog = this.qBlogService.editQBlog(qBlogId, luser.getId(), innerType); final Map params = new HashMap(); params.put(qBlog, qBlog); params.put(resource

30、Type, ResourceType.QBLOG_INTEGER); /flashupload上传组件需要的参数 if (QBlogCon.RESOURCE_TYPE_IMG.equals(innerType) & qBlog.getAttachmentList() = null) params.put(iPlanetDirectoryPro, CookieUtils.getIPlanetDirectoryPro(loginService, in); return new ModelAndView(upload.load.page, params); return new ModelAndVi

31、ew(qblog.edit, params); 5.4 分享图片 图5.4.1 上传图片界面图片上传功能代码:public ModelAndView ajaxShowPhotos(LoginUser luser, WebInput in, WebOutput out) final Map params = new HashMap(); params.put(attachmentList, this.attachmentService.getAttachments(ResourceType.QBLOG_LONG, in.getLong(qBlogId); return new ModelAndV

32、iew(qblog.big.photo, params); 图5.4.2 编辑图片界面图片编辑功能代码: public ModelAndView ajaxEditPhoto(WebInput in, LoginUser luser) logger.debug(the ajaxEditPhoto.do is start.); Long qBlogId = in.getLong(qBlogId); Integer type = in.getInt(type); logger.debug(qBlogId is , type is , qBlogId, type); QBlog qBlog = new

33、 QBlog(); qBlog.setId(qBlogId); qBlog.setResourceType(type); qBlog.setAttachmentList(this.attachmentService.getAttachments(ResourceType.QBLOG_LONG, qBlogId); final Map params = new HashMap(); params.put(qBlog, qBlog); /flashupload上传组件需要的参数 params.put(iPlanetDirectoryPro, CookieUtils.getIPlanetDirect

34、oryPro(loginService, in); params.put(resourceType, ResourceType.QBLOG_LONG); return new ModelAndView(qblog.edit.photo, params); 5.5 分享音乐图5.5.1 上传音乐界面获取歌曲名称功能代码:private String getTrueName(String trueUrl, String subject) if (StringUtils.isNotEmpty(trueUrl) & trueUrl.lastIndexOf(/) + 1 != -1 & trueUrl.

35、lastIndexOf(.) != -1) StringBuilder addSubject = new StringBuilder(); trueUrl = trueUrl.substring(trueUrl.lastIndexOf(/) + 1, trueUrl.lastIndexOf(.); addSubject.append(StringUtils.isNotBlank(subject) ? subject : ).append(-).append(trueUrl).append(); return addSubject.toString(); else return subject;

36、 5.6 分享视频图5.6.1 上传视频界面获取flash播放的url地址功能代码:public ModelAndView showVideo(WebInput in, WebOutput out) throws IOException logger.debug(the showVideo.do is start.); Long referId = in.getLong(referId); logger.debug(the referId is , referId); final Map params = new HashMap(); Video video = qBlogService.QB

37、logVideo(referId); params.put(status, 0); if (video != null) params.put(video, video); params.put(status, 1); out.toJson(params); return null; 第六章 系统测试6.1 测试的重要性及目的在设计系统的过程中,存在一些错误是必然的。对于语句的语法错误,在程序运行时自动提示,并请求立即纠正,因此,这类错误比较容易发现和纠正。但另一类错误是在程序执行时由于不正确的操作或对某些数据的计算公式的逻辑错误导致的错误结果。这类错误隐蔽性强,有时会出现,有时又不出现,因此

38、,对这一类动态发生的错误的排查是耗时费力的。软件的测试在软件生命周期中占据重要的地位,在传统的瀑布模型中,软件测试学仅处于运行维护阶段之前,是软件产品交付用户使用之前保证软件质量的重要手段。近来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正,如果不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难。 事实上,对于软件来讲,不论采用什么技术和什么方法,软件中仍然会有错。采用新的语言、先进的开发方式、完善的开发过程,可以减少错误的引入,但是不可能完全杜绝软件中的错误,这些引入的错误需要测试来找出,软件中的错误密度也需要测试来进行估计。测试是所有工程学科的基本组成单元,是软件开发

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁