




免费预览已结束,剩余20页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
重庆科创职业学院JSP动态网站开发课程设计题 目: 个人博客管理系统 专业: 计算机应用技术 班级: 软件技术ZB42801 学号: 2008322292 姓名: 廖小波 成绩: 指导教师: 胡传斌 完成日期:2011年6月16日251 需求分析1.1 系统概述博客的精神是:自由表达,开放宽容,个性张扬,专业精神。在没有自己的博客之前,人们会经常进出于论坛发表贴子或者通过即时通信软件聊天,来表达自已的想法,可是这些都是零散的和杂乱的。博客的出现,让人们可以不断的把自己以前的和每天激发的一些想法或者感受整理放在自己的博客上,每次在写文章的时候,可能又会产生新的想法。虽然一些想法一些思考只是皮毛,没有什么深度,但是当下笔去写的时候每次都会对某个小小的问题有了更多的一点点思考,再写博客的时候就感觉到了一种满足感,一种想法得以释放思考得以延伸的满足感。生活中每天的一个小小的事情都会引起人们的思考,甚至是和朋友的聊天中一个小小的火花迸发。督促自己努力、把一时的想法变成观点,争取在生命中的每天里留下点什么,这也是人们写博客的目的之一。这样就能督促自己每一天不要浑浑噩噩,时光流逝无痕无声无息,写博客也是在自己的每一天上留下了一道浅浅的思考和划痕。不仅如此,通过写博客、记录自己的想法可以帮助实现如下这些目的:a)记录生活,在自己的每一天上留下思考的划痕。 b)整理思路,固化知识,获得更多更好的想法。 c)分享,将自己的想法、经验与人分享。d)交流、提高,通过交流产生更多的思维火花,相互提高。 e)交友,互相鼓励,一路同行。 如果说博客网站是一个舞台,那么所有的博客都是其中的舞者,把自己有价值的真实的一面展示在网络世界中,相互交流沟通; 如果博客仅仅为了写日志,那么博客是一面镜子,镜子中展现的是真实的自己;如果博客是一个自由媒体,可以把自身感觉有价值的信息通过博客这个工具发布,与网友共享。1.2 系统运行环境l 操作系统:Windows XP/Windows2003l 数据库:Acess2003 l 开发语言: JAVAl 开发工具:netbeans6.01.3 功能需求描述随着Blog人数的增加,Blog作为一种新的生活方式、新的工作方式和新的学习方式已经被越来越多的人所接受,并且在改变传统的网络和社会结构。它使交流和沟通更有明确的选择和方向性;单一的思想和群体的智慧结合变得更加有效;个人出版变成人人都可以实现的梦想。Blog正在影响和改变着我们的生活。本系统采用MVC模式设计实现了一个简单的博客系统。MVC模式极大地提高了系统的灵活性、复用性、开发效率、适应性和可维护性,充分发挥了JSP、Servlet等J2EE组件的特点3。从而,使更多的人们通过文字、图片、声音、视频、无线等,尽情展示自我、分享感受、参与交流,美好你我生活。Show you, share me,人人都可以博客,人人都需要博客。本系统是用JSP实现的一个完全基于浏览器的博客系统,任何注册个人博客的人都拥有以下功能:a)登录博客系统的后台管理平台。b)更改博客账号的基本信息。c)撰写日志。d)日志管理。e)评论管理。f)留言管理。博客访问者具有以下功能:a)浏览博客系统中的日志、留言、评论。b)发表评论及留言。c)检索日志。2 总体设计21系统功能模块图图2.1 博客信息管理系统用例图博客信息系统包括:前台信息显示系统、后台信息管理系统。前者是面向公众的一个窗口,通过前台信息显示系统方便访问者浏览日志、评论和留言;发表评论和留言。后者是后台信息管理系统,方便博客管理员发表日志;回复评论和留言;管理日志、评论、留言及个人信息 。2.2数据结构设计系统的用户主要是博客访问者和博客管理员,下面以博客前台展示系统中的用户查询日志为例进行说明。该过程的数据流程图如图3.2所示。 图3.2 用户查询日志的数据流程图用户查询日志的数据流程:首先,用户输入需查找的关键字,然后提交表单数据,服务器接收到关键字后,根据关键字对日志标题进行模糊查询,处理后将结果以日志标题链接的形式显示给该用户,用户点击相应的链接就可以浏览日志内容。 2.3 系统流程根据博客信息管理系统的特点,将其分为两大模块:前台用户浏览模块和后台用户管理模块。前台用户浏览模块主要用于用户浏览日志信息;后台用户管理模块主要用于博客管理员对个人博客网站的管理,如日志管理、留言管理及评论管理等。博客系统平台的前台用户浏览模块流程图如图3.3所示。前台用户浏览模块主要用于用户浏览日志信息,用户浏览日志有三种浏览方式可以选择:一是直接点击日志标题链接进入日志显示页面浏览日志;二是点击博客主题链接进入该个人博客的首页,然后在该首页中选择所需的日志标题链接进入日志显示页面浏览日志;三是通过首页提供的搜索功能,搜索所需要的日志,然后在结果列表中选择所需的日志标题链接进入日志显示页面浏览日志。浏览日志的同时用户可以查看别人对该日志的评论,然后用户也可以对该日志发表自已的评论。用户进入后台管理平台,首先必需进行权限验证,防止未授权的用户非法登录。若未通过验证,则显示出错提示,并跳转到登录界面。若通过验证,则进入个人博客后台管理平台。用户可以浏览已发表的日志,并对其进行相应的操作如修改日志和删除日志;可以查看日志的评论信息并对其进行回复或者删除操作;可以发表新的日志;可以新建日志分类;可以浏览个人博客的留言信息并对其进行相应的操作如回复留言图2.3 前台用户浏览模块流程图图2.4 后台用户管理模块流程图和删除留言;还可以对个人信息进行修改。博客系统平台的后台用户管理模块流程图如图2.4所示。2.4 功能模块划分前台模块功能结构如图2.5所示。图2.5 博客信息系统前台功能结构图后台模块功能结构如图2.6所示。图2.6 博客信息系统后台功能结构图2.5功能模块设计博客信息管理系统分为面向网络用户的前台及面向个人博客维护管理的后台,依据博客网站中所要实现的基本功能的设定,将所有功能分解为如下四个主要的功能模块来加以实现。用户以合法的用户名及密码登录,系统即可按该登录用户的权限分配操作模块。2.5.1博客注册登录管理模块博客注册登录管理模块用于建立博客网站固定的客户群体,通过记录对应的博客档案,实现对博客信息的后台维护及管理,同时也便于通过博客档案库将网站最新动态及相关企业的信息方便地传达给每一位潜在的客户。该功能模块实现了以下几个子功能。a)新博客在线注册。b)博客登录管理。c)跳转到博客主页。只有进行登录并通过身份验证的用户,才可以在个人博客页面发表日志,并借助个人设置实现对个人博客相关信息的管理维护。对于没有经过身份验证的网络用户不允许在博客页面中发表日志,更不允许对博客页面信息进行管理维护。该模块实现新博客的注册及登录验证功能。其中,注册新博客时会对用户输入的注册信息进行有效性验证,包括基本数据格式的有效性以及逻辑有效性,例如,用户名被占用时将及时给出提示。注册成功的博客登录时,会随时根据博客输入的登录信息进行提示,如用户名错误或者密码错误。2.5.2博客及文章检索查询模块博客及文章检索查询模块为网络用户提供便捷的搜索,以及日志阅读浏览等功能,同时对日志的评论信息、博客推荐也能够及时反馈给网络用户。该功能模块实现了以下几个子功能。a)热门博客页面推荐。b)最新博客日志推荐。c)日志信息关键字搜索。该模块能够在网页中随时提供在线的最新日志信息。该信息需要定期更新,网络用户可以随时获得最新日志以及最热门的博客推荐。在客户选择了某个博客或者某个感兴趣的日志后,可以方便地跳转到对应博客页面进行日志的阅读,并和博客进行交流互动。为了使网络用户尽快定位到所需的博客资料及日志信息,本模块提供了搜索功能,用户可以对所关注的日志信息按照标题进行关键字搜索,以避免用户浏览多个页面来寻找所需的日志信息。2.5.3博客页面显示模块当网络用户进入某个人博客主页后,在该页面中将提供博客日志列表的显示,同时为了方便用户浏览,在该模块中提供根据分类名进行日志列表的显示,也提供日志评论的浏览,此外还允许用户在博客页面中发表评论及留言。该功能模块实现了如下几个子功能。a)用户可以分页查看对应的日志内容及评论信息。b)用户可以针对日志内容发表评论。c)用户可以针对博客进行留言。d)用户可以分类查看日志内容。在该模块中还提供了博客页面统计信息,日志、评论及留言信息分页显示等方便用户的显示效果。2.5.4博客个人管理维护模块博客个人维护管理模块用于实现用户对博客个人主页及相关信息的动态管理。该功能模块实现了如下几个子功能:a)日志及日志分类管理。b)评论及留言管理。c)个人基本信息维护管理。借助该模块,用户可以随时对个人博客主页中的内容进行增加或修改,包括日志分类信息的更新、评论及留言管理等功能,也允许用户对博客的个人信息进行维护及其管理。3 详细设计3.1数据库设计E-R图为了把用户的数据要求清晰明确地表达出来,通常要建立一个概念性的数据模型。概念性数据模型是一种面向问题的数据模型,是按照用户的观点来对数据和信息建模。描述了从用户角度看到的数据,反映了用户的现实环境。最常用的表示概念性数据模型的方法,是实体联系方法(EntityRelationship Approach)。这种方法用ER图描述现实世界中的实体,而不涉及这些实体在系统中的实现方法。用这种方法表示的概念性数据模型又称为ER模型。ER模型中包含“实体”,“联系”和“属性”。博客信息管理系统涉及的实体包括:a)用户:用户ID、用户名称、用户密码、博客主题、说明、E-mail、注册日期、发表日志数。 b)类别:类别编号、类别名、类别描述、用户ID。c)日志:日志编号、日志标题、日志内容、类别编号、发表日期、最后修改日期、用户ID、浏览次数、评论数。d)评论:评论编号、评论标题、评论内容、发表日期、最后回复日期、评论人、日志编号。e)留言:留言编号、留言标题、留言内容、发表日期、最后回复日期、留言人、用户ID。综合本系统各子模块要实现的功能,通过前面对博客信息系统数据的分析可以得到:用户表、类别表、日志表、日志评论表、留言表的数据库概念模型(E-R图)。用户E-R图如图3.1所示。图3.1 用户E-R图日志类别E-R图如图3.2所示。图3.2 日志类别E-R图日志E-R图如图4.3所示。图3.3 日志E-R图日志评论E-R图如图3.4所示。图3.4 日志评论E-R图留言E-R图如图3.5所示。图3.5 留言E-R图3.2 系统数据表设计a)用户表,此表主要用于保存用户的基本信息。其结构如表3.1所示。表3.1 用户表列名含义类型长度缺省值允许空BlogID用户编号Int4无否UserName用户名Varchar20无否Password用户密码Varchar20无否NickName博客主题Varchar50无否Description博客描述Varchar100无是Email电子邮件Email50无否RegisterTime注册日期Datetime8无否ArticleNum发表的日志数Int40否b)日志表,此表主要用于保存日志的基本信息。其结构如表3.2所示。 表3.2 日志表列名含义类型长度缺省值允许空ArticleID日志编号Int4无否Title日志标题Varchar50无否Content日志内容text8无否CategoryID类别IDint4无否PublishTime日志发表时间Datetime8无否LastModifyTime日志最后修改时间Datetime8无否BlogID用户IDInt4无否ReadTimes日志浏览次数Int40否FeedBackNum日志评论数Int40否c)日志评论表,此表主要用于保存日志评论的基本信息。其结构如表3.3所示。表3.3 日志评论表列名含义类型长度缺省值允许空FeedBackID评论编号Int4无否Title评论标题Varchar20无否Content评论内容Text8无否PublishTime发表时间Datetime8无否UserName用户名Varchar20无否ArticleID日志IDInt4无否d)留言表,此表主要用于保存留言的基本信息。其结构如表3.4所示。 表3.4 留言表列名含义类型长度缺省值允许空MessageID留言编号Int4无否Title留言标题Varchar20无否Content留言内容text8无否PublishTime发表时间Datetime8无否LastModifyTime最后回复时间Datetime8无否UserName用户名Varchar20无否BlogID用户IDInt4无否e)类别表,此表用于保存日志类别的基本信息。其结构如表3.5所示。表3.5 类别表列名含义类型长度缺省值允许空CategoryID类别编号Int4无否Name类别名Varchar20无否Description类别描述Varchar100无是BlogID用户编号Int4无否3.3数据连接目前流行的数据库连接技术主要有:JDBC-ODBC桥、JDBC和数据连接池技术。该系统采用数据连接池技术,使用连接池的优点主要体现在两个方面:对数据库的连接统一进行配置、管理、监控,以及对数据库连接池的参数进行优化调整,同时对应用程序中没有关闭或其他原因造成没有关闭的数据库连接由连接池统一进行管理。便于程序的移植和后端数据库的切换,因为在应用中通过统一的JNDI获得数据库的连接,而具体连接的是哪一台机器上的数据库与程序无关。数据库连接池技术的思想非常简单,将数据库连接作为对象存储在一个Vector对象中,一旦数据库连接建立后,不同的数据库访问请求就可以共享这些连接。这样,通过复用这些已经建立的数据库连接,可以克服上述缺点,极大地节省系统资源和时间。数据库连接池的主要操作如下:a)建立数据库连接池对象(服务器启动)。b)按照事先指定的参数创建初始数量的数据库连接(即:空闲连接数)。c)对于一个数据库访问请求,直接从连接池中得到一个连接。如果数据库连接池对象中没有空闲的连接,且连接数没有达到最大(即:最大活跃连接数),创建一个新的数据库连接。d)存取数据库。e)关闭数据库,释放所有数据库连接(此时的关闭数据库连接,并非真正关闭,而是将其放入空闲队列中。如实际空闲连接数大于初始空闲连接数则释放连接)。f)释放数据库连接池对象(服务器停止、维护期间,释放数据库连接池对象,并释放所有连接)。3.4系统的主窗口系统的界面按照常规的WEB界面进行设计,设计的原则是界面友好,易于操作,容易上手,尽可能的贴切用户实际。所有的网络用户都可以进入该首页进行登录、注册、浏览等相关的操作。在页面的上方是博客系统的导航列表,图中显示的导航条包括登录、注册、博客随笔以及站务公告。在页面的左侧用户可以根据随笔标题进行搜索;搜索的下方是系统对博客、随笔、文章及评论的统计信息。最新文章则显示在博客首页的主要中心位置上。博客系统首页图如图3.6所示。图3.6 博客系统首页图所有的网络用户都可以进入某个人的博客主页进行浏览、留言等相关的操作。在后台管理页面的上方分别显示博客首页、随笔、日志、链接、相册、帐户修改、密码修改等表单。在这里博客用户经过身份认证进入,可以对自己的日志或者随笔进行删除、添加、分类等管理。同时可以修改自己的用户名和密码。博客后台管理界面图如图3.7所示。图3.7 博客后台管理界面图3.5数据库相关访问数据库相关类如下:a)获取数据源,其代码如下:public static Connection getConnection()try Context ctx=(Context)new InitialContext().lookup(Contants.ENV);DataSource ds=(DataSource)ctx.lookup(Constants.JDBC);getConnection()方法:该方法通过Context类提供的lookup()方法查找数据源,从而获得jdbc/blog数据源的引用,得到DataSource对象的引用后,就可以通过DataSource的getConnection()方法获得数据库连接对象。b)连接数据库和操作数据库;代码如下: / 构造数据库的连接和访问类public DBConnect() throws Exception / 获得数据库连接对象conn=DB.getConnection();/ 创建一个JDBC声明stmt = conn.createStatement();/ 预设SQL语句public void prepareStatement(String sql) throws SQLException prepstmt = conn.prepareStatement(sql);/ 设置索引值位置的对应值public void setString(int index, String value) throws SQLException prepstmt.setString(index, value);public void setInt(int index, int value) throws SQLException prepstmt.setInt(index, value);/ 执行SQL语句并返回字段集public ResultSet executeQuery() throws SQLException if (prepstmt != null) return prepstmt.executeQuery(); elsereturn null;DBConnect()方法:该方法主要负责获得数据库连接对象。prepareStatement(String sql)方法:该方法主要完成预设SQL语句,只有一个用来接收SQL语句的参数,如果SQL语句有误将抛出异常。setString(int index, String value)方法:该方法用于设置预设SQL语句中的相应字段值,index表示索引位置,value表示需设置字符串类型的值。setInt(int index, int value)方法:该方法用于预设SQL语句中的相应字段值,index表示索引位置,value表示需设置整型类型的值。executeQuery()方法:该方法用于执行预设的SQL语句。3.6 管理类设计上面每一个JavaBean类都有一个相对应的管理类,是在JavaBean类及数据库相关类的基础上完成对数据库表的访问、更新、统计操作。博客信息管理系统所用的管理类列表如表3.6所示。表3.6 管理类列表管理类说明BlogMgr类完成对博客管理员表的查询、更新及统计Article类完成对日志表的查询、更新及统计FeedBack类完成对评论表的查询、更新及统计Essay类完成对随笔表的查询、更新及统计FeedbackMgr类的部分代码如下:public class FeedbackMgr /* * 添加评论 */public void add(Feedback feedback)DBConnect dbc = null;ResultSet rs = null;try / 新建数据库连接和访问对象dbc = new DBConnect();/ 预设sql语句dbc.prepareStatement(INSERT INTO feedback (title,content,publishtime,lastmodifytime,username,articleid) VALUES ( ?,?,?,?,?,?);/ 设置对应值dbc.setString(1, feedback.getTitle();dbc.setString(2, feedback.getContent();dbc.setDate(3, new java.sql.Date(new java.util.Date().getTime();dbc.setDate(4, new java.sql.Date(new java.util.Date().getTime();dbc.setString(5, feedback.getUsername();dbc.setInt(6, feedback.getArticleid();/ 执行该更新语句dbc.executeUpdate();/* * 查询所有评论(按最后修改时间) */public Collection getAllByLastModifyTime() DBConnect dbc = null;Collection c = new ArrayList();ResultSet rs = null;try / 新建数据库连接和访问对象dbc = new DBConnect();/ 执行SQL语句,返回字段集rs=dbc.executeQuery(SELECT * FROM feedback order by lastmodifytime desc);Feedback feedback = null;while (rs.next() / 新建评论对象feedback = new Feedback();/ 设置评论对象相关的属性 feedback.setFeedbackid(rs.getInt(feedbackid); feedback.setTitle(rs.getString(title); feedback.setContent(rs.getString(content); feedback.setStrpublishtime(rs.getString(publishtime); feedback.setStrlastmodifytime(rs.getString(lastmodifytime); feedback.setUsername(rs.getString(username); feedback.setArticleid(rs.getInt(articleid);/ 将该评论对象存入集合对象中c.add(feedback);/ 将该评论对象置为nullfeedback = null;/ 如果结果集不会空,则循环添加该评论对象FeedbackMgr类:封装了对评论表的所有操作,包括添加评论、回复评论、删除评论、查询某日志的所有评论(按最后修改时间排序)和查询某用户的所有评论(按最后修改时间排序)等。3.7登录模块当用户需发表新日志或者是对博客进行管理时,就必须先进行登录验证操作,然后进入博客系统后台。用户登录界面图如图3.6所示。3.8日志管理模块日志管理显示模块列出了日志编号、日志标题以及相应的操作:编辑日志和删除日志。根据选择的分类显示当前分类下的日志列表。当然,对日志进行操作的前提条件是当前登录用户具备相应的管理权限。日志显示界面图如图3.7所示。 图3.8 用户登录界面图图3.9 日志显示界面图当用户需要添加新的日志时,可单击日志管理显示界面中的添加日志链接,进入添加新日志的界面。在日志标题、内容输入域内输入相应的文字,以及选择分类后,单击“确定”按钮进行表单提交,完成添加新日志的操作。3.9撰写日志模块撰写日志界面图如图3.9所示。3.10删除日志模块如果需要删除已发表的日志,可单击日志管理显示界面中的删除日志链接,将弹出删除日志确认对话框图如图3.11所示。 图3.10 撰写日志界面图图3.11 删除日志确认对话框图再次确认用户是否真的要进行该日志的删除操作,而不是误操作。点击确定按钮完成日志删除操作,点击取消按钮取消该删除操作。完成日志删除操作的核心代码如下:tryconn=DB.getConnetion();/禁止自动提交,设置回滚点conn.setAutoCommit(false);stmt=conn.createStatement();/删除该日志的所有评论stmt.prepareStatement(“delete from feedback where articleid=?”);stmt.setInt(1,arti
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025安徽工程大学部分专业技术岗位招聘2人考前自测高频考点模拟试题及参考答案详解1套
- 2025国航股份商务委员会高校毕业生校园招聘5人模拟试卷及答案详解参考
- 2025内蒙古赤峰市克什克腾旗事业单位“绿色通道”引进高层次人才5人考前自测高频考点模拟试题完整答案详解
- 2025贵州人才博览会专场活动贵州茅台酒厂(集团)技术开发有限公司引进人才考前自测高频考点模拟试题及答案详解(全优)
- 2025年广西南宁市考试招聘中小学教师笔试有关事项模拟试卷及一套完整答案详解
- 2025北京市海淀区第二实验小学教育集团招聘考前自测高频考点模拟试题及一套参考答案详解
- 2025年宁波北仑区人民医院医疗健康服务集团梅山院区招聘编外人员2人考前自测高频考点模拟试题有完整答案详解
- 2025年烟台市人民警察培训学校公开招聘工作人员模拟试卷及1套完整答案详解
- 2025年汉中市中医医院招聘见习人员(24人)考前自测高频考点模拟试题附答案详解
- 2025辽宁沈阳市浑南区森工林业集团有限公司招聘56人模拟试卷附答案详解(黄金题型)
- 2025中国旅游集团迪庆香格里拉旅游投资发展有限公司岗位招聘28人笔试历年参考题库附带答案详解
- T/CNSS 003-2020医疗机构人乳库建立与管理规范
- 2026中国移动校园招聘备考考试题库附答案解析
- 2025年大学生国防科技知识竞赛题库及答案
- 教育机构投资协议合同书
- 《大学生就业指导》课件第六章 就业权益与法律保障
- 石墨化工艺基础知识培训
- 如何落实高质量临床护理服务
- 2025年四川政治理论水平试题及答案
- 2025考研政治真题试卷与参考答案
- 刑事案件二次审判会见笔录范文
评论
0/150
提交评论