




已阅读5页,还剩53页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
装订线 摘 要随着Internet的广泛应用,动态网页技术也应运而生。本文介绍了应用JSP网页技术开发博客系统的设计与实现。博客系统主要为用户提供发表文章、浏览文章等功能,用户通过Internet可以发表一些自己撰写的文章以和其他网友进行交流。博客系统主要实现了文章管理的数字化、信息化、智能化,是打破传统报刊、杂志发表文章方式的新尝试。 本系统的开发设计实现采用JAVA技术,系统后台使用MySQL5.5数据库,并通过使用JDBC技术访问。本文对博客系统进行整体分析,明确了系统的可行性和用户需求;根据模块化原理,规划设计了系统功能模块;在数据库设计部分,详细说明了系统数据库的结构和数据库的完整性、安全性措施;程序设计则采用面向对象的程序设计思想,提出系统的程序设计思路,对前台与后台功能的程序实现进行了详细论述;系统测试部分,具体分析测试过程中出现的主要问题,并提出了解决方案,实现系统功能。最后,对系统作以客观、全面的评价,并对进一步改进提出了建议。关键词:博客系统,JSP,JFinalAbstractWith the extensive application of the Internet, dynamic web technology has emerged. This text describes the application of JSP dynamic web technology and development the blog system.Blog system is mainly to provide users with published articles, browse articles, and other functions,Users can express themselves by some articles and with other netizens to conduct exchanges. Blog system of the main article on the digital management, information, intelligence, is to break the way of Released an article by traditional newspapers and magazine published ,it make a new way to try.The system is designed by JAVA technology, backstage adoption MySQL5.5 database,and use the JDBC technology to visit.In this text,it analysis the blog system by feasibility and the demand of the user. Under the modular theory, planning and design of the system functional modules; In the database design, a detailed description of the database structure and database integrity, security measures; Programming is used object-oriented programming design, system design ideas, background for the future and function of the program in detail; System testing, Analysis of the specific course of testing the key issues and proposed solutions to achieve system function. Finally, the system in an objective, comprehensive evaluation, as well as further improvements made.Key Words:Blog System,JSP,JFinal目录1绪论11.1 项目背景11.2 问题提出11.3 设计目的12开发工具及技术22.1 JAVA技术22.1.1 简介22.1.2 组成22.1.3 优势22.2 JSP技术22.2.1 介绍22.2.2 JSP与MVC32.2.3 技术强势32.3 JFinal框架42.3.1 介绍42.3.1 特点42.4 Eclipse42.4.1 介绍42.4.2 快捷方式52.4.3 安装使用过程62.5 Tomcat92.5.1 介绍92.5.2 Eclipse中安装Tomcat102.6 MySQL122.6.1 介绍122.6.1 特点132.7 SQLyog142.7.1 介绍142.7.1 基本功能143需求分析163.1 系统目标163.2 系统的功能要求163.3 系统的性能需求163.4 系统的数据需求173.5 系统的数据需求173.5.1 人力、资源及时间的约束173.5.2 技术发展规律的约束184数据库设计194.1 创建数据库194.2 创建表194.2.1 博客网站表(blogger_website)194.2.2 用户表(blogger_user)204.2.3 博文表(blogger_blog)224.2.4 文件表(blogger_upload)234.2.5 评价留言表(blogger_ly)244.2.6 标签表(blogger_tag)254.2.7 博文标签关联表(blogger_blog_tag)264.2.8 博文分类表(blogger_clazz)274.2.9 用户博客关于表(blogger_about)284.2.10 友情链接表(blogger_link)294.2.11 友链类型表(blogger_link_clazz)305概要设计315.1 系统体系结构315.2 主要功能设计315.2.1 主要功能模块315.2.2 系统模块介绍325.3 信息安全设置335.3.1 网络安全345.3.2 其他安全346详细设计356.1 数据库连接356.2登陆注册模块的具体实现366.2.1注册实现366.2.2登陆实现386.2.3 验证码实现396.3 分页技术的实现406.4 前端导航的实现416.5搜索功能的实现426.5.1 搜索功能的实现426.5.2 乱码的解决方法426.5.3 搜索结果关键词加背景的实现436.6随机博客的实现446.7评价留言的实现456.8用户管理博文的实现466.9用户个人信息设置486.10超级用户管理用户的实现497系统测试517.1 测试目的517.2 测试方法517.3 测试实例517.3.1 注册测试517.3.2 登陆测试527.3.3 文章添加52结束语53致谢54参考文献55第 IV 页1绪论1.1 项目背景随着互联网的普及,越来越多的人开始接触及认识了网络。在互联网上博客作为一种信息传播载体,开始被越来越多的人们的所关注。人们可以从互联网上获取自己需要的知识信息等。在这个个性张扬的年代,人们不只是想获取知识信息等。同时有许多人也想分享自己在生活中积累的经验。博客作为一种新型的网络日志,很快在世界范围得到使用。使用博客系统我们可以发表自己感兴趣的东西,而不被任何事约束。1.2 问题提出博客(Blog)记载了我们日常发生的事情和兴趣爱好,把我们的思想和知识与他人分享、交流,同时又通过网络结识了很多志趣相投的朋友;而越来越多的专业知识的博客的出现,让我们看到了博客更多蕴涵的巨大信息的价值:不同的博客选择不同的内容,收集和整理成为大多数人关注的专业博客目前越来越多的人获取信息来源是一些固定的博客内容。随着博客使用人数的增加,博客(Blog)作为一种新型的生活方式,新型的工作方式,新型的学习方式已经被越来越多的人所认知,并且在改变传统的社交网络和社会结构:网络信息不再是虚假和不可验证的,交流和沟通更有一定的选择和方向性,单一的思想和群体智慧结合变的更加有力,个人出版变成许多人都可以实现的梦想博客(Blog)正在影响和改变着一代人的生活。1.3 设计目的博客用户通过前台登录后,可对自己的博客空间进行管理,包括发布自己的网络日志、收藏个人图片、和相关人员进行交流和沟通以及删除访问者发表的评论等。因此,在具体设计实现该博客网站时,主要考虑了主流博客网站的几个主要功能:(1)博客的注册、登录验证功能;(2)网络用户通过关键字搜索博文功能;(3)最热门博客页面推荐浏览;(4)文章详细内容及相关评论显示;(5)博文页面访问统计;(6)博客个人文章管理维护功能;(7)博客个人文章分类管理维护功能;(8)博客个人友情链接维护功能;(9)博客个人基本信息管理维护功能;(10)网络用户写留言,博主查看留言,并回复留言;(12)最新留言显示。2开发工具及技术2.1 JAVA技术2.1.1 简介Java是由Sun Microsystems公司于 1995年5月推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。Java最初被称为Oak,是1991年为消费类电子产品的嵌入式芯片而设计的。1995年更名为Java,并重新设计用于开发Internet应用程序。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器均支持Javaapplet。另一方面,Java技术也不断更新。2010年Oracle收购了SUN。2.1.2 组成Java由四方面组成:Java编程语言、Java文件格式、Java虚拟机(JVM)、Java应用程序接口(Java API)2.1.3 优势与传统程序不同,Sun 公司在推出 Java 之际就将其作为一种开放的技术。全球数以万计的 Java 开发公司被要求所设计的 Java软件必须相互兼容。“Java 语言靠群体的力量而非公司的力量”是Sun公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同。Sun 公司对 Java 编程语言的解释是:Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。Java 平台是基于 Java 语言的平台。这样的平台非常流行。因此微软公司推出了与之竞争的.NET平台以及模仿Java的C#语言。Java是功能完善的通用程序设计语言,可以用来开发可靠的、要求严格的应用程序。2.2 JSP技术2.2.1 介绍JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP与JavaServlet一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。JSP的1.0规范的最后版本是1999年9月推出的,12月又推出了1.1规范。目前较新的是JSP1.2规范,JSP2.0规范的征求意见稿也已出台。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。自JSP推出后,众多大公司都支持JSP技术的服务器,如IBM、Oracle、Bea公司等,所以JSP迅速成为商业应用的服务器端语言。JSP可用一种简单易懂的等式表示为:HTML+Java+JSP标记=JSP。2.2.2 JSP与MVCJSP把表现层从控制层和数据层彻底分离出来了,从而方便开发人员只去管理后台实现而不需要去关注和前端的交互。而前端设计师可以更方便的只考虑前端而不用等后端工程师开发完就可以同时设计前端。这样大大节省了开发周期。JSP是MVC企业开发更好的表现方式。2.2.3 技术强势一次编写,到处运行。除了系统之外,代码不用做任何更改。系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/.net的局限性是显而易见的。强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。JSP(4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVA BEANS 组件来实现复杂商务功能。2.3 JFinal框架2.3.1 介绍JFinal 是基于Java 语言的极速 web 开发框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有Java语言所有优势的同时再拥有ruby、python等动态语言的开发效率。2.3.1 特点(1)MVC架构,设计精巧,使用简单(2)遵循COC原则,零配置,无xml(3)独创Db + Record模式,灵活便利(4)ActiveRecord支持,使数据库开发极致快速(5)自动加载修改后的java文件,开发过程中无需重启web server(6)AOP支持,拦截器配置灵活,功能强大(7)Plugin体系结构,扩展性强(8)多视图支持,支持FreeMarker、JSP、Velocity(9)强大的Validator后端校验功能(10)功能齐全,拥有struts2的绝大部分功能(11)体积小仅248K,且无第三方依赖2.4 Eclipse2.4.1 介绍图2-1 Eclipse进入虽然大多数用户很乐于将 Eclipse 当作 Java 集成开发环境(IDE)来使用,但 Eclipse 的目标却不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。这种平等和一致性并不仅限于 Java 开发工具。尽管 Eclipse 是使用Java语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如C/C+、COBOL、PHP等编程语言的插件已经可用,或预计将会推出。Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。基于 Eclipse 的应用程序的一个突出例子是 IBM Rational Software Architect,它构成了 IBM Java 开发工具系列的基础。2.4.2 快捷方式Eclipse的快捷键,熟悉快捷键可以帮助开发事半功倍,节省更多的时间来用于做有意义的事情。Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行Ctrl+Alt+ 复制当前行到下一行(复制增加)Ctrl+Alt+ 复制当前行到上一行(复制增加)Alt+ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)Alt+ 当前行和上面一行交互位置(同上)Alt+ 前一个编辑的页面Alt+ 下一个编辑的页面(当然是针对上面那条来说了)Alt+Enter 显示当前选择资源(工程,or 文件 or文件)的属性Shift+Enter 在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后)Shift+Ctrl+Enter 在当前行插入空行(原理同上条)Ctrl+Q 定位到最后编辑的地方Ctrl+L 定位在某行 (对于程序超过100的人就有福音了)Ctrl+M 最大化当前的Edit或View (再按则反之)Ctrl+/ 注释当前行,再按则取消注释Ctrl+O 快速显示 OutLineCtrl+T 快速显示当前类的继承结构Ctrl+W 关闭当前EditerCtrl+K 参照选中的Word快速定位到下一个Ctrl+E 快速显示当前Editer的下拉列表(如果当前页面没有显示的用黑体表示)Ctrl+/(小键盘) 折叠当前类中的所有代码Ctrl+(小键盘) 展开当前类中的所有代码Ctrl+Space 代码助手完成一些代码的插入(但一般和输入法有冲突,可以修改输入法的热键,也可以暂用Alt+/来代替)Ctrl+Shift+E 显示管理当前打开的所有的View的管理器(可以选择关闭,激活等操作)Ctrl+J 正向增量查找(按下Ctrl+J后,你所输入的每个字母编辑器都提供快速匹配定位到某个单词,如果没有,则在stutes line中显示没有找到了,查一个单词时,特别实用,这个功能Idea两年前就有了)Ctrl+Shift+J 反向增量查找(和上条相同,只不过是从后往前查)Ctrl+Shift+F4 关闭所有打开的EditerCtrl+Shift+X 把当前选中的文本全部变味小写Ctrl+Shift+Y 把当前选中的文本全部变为小写Ctrl+Shift+F 格式化当前代码Ctrl+Shift+P 定位到对于的匹配符(譬如) (从前面定位后面时,光标要在匹配符里面,后面到前面,则反之)下面的快捷键是重构里面常用的,本人就自己喜欢且常用的整理一下(注:一般重构的快捷键都是Alt+Shift开头的了)Alt+Shift+R 重命名 (是我自己最爱用的一个了,尤其是变量和类的Rename,比手工方法能节省很多劳动力)Alt+Shift+M 抽取方法 (这是重构里面最常用的方法之一了,尤其是对一大堆泥团代码有用)Alt+Shift+C 修改函数结构(比较实用,有N个函数调用了这个方法,修改一次搞定)Alt+Shift+L 抽取本地变量( 可以直接把一些魔法数字和字符串抽取成一个变量,尤其是多处调用的时候)Alt+Shift+F 把Class中的local变量变为field变量 (比较实用的功能)Alt+Shift+I 合并变量(可能这样说有点不妥Inline)Alt+Shift+V 移动函数和变量(不怎么常用)Alt+Shift+Z 重构的后悔药(Undo)2.4.3 安装使用过程拷贝Eclipse文件到任意目录,如果你没有配置jdk环境变量则启动Ecplise程序会报图2-2错误图2-2 错误提示配置jdk环境变量,下载jdk1.6.0_10并解压。右击我的电脑,点击属性打开如图2-3 图2-3 高级系统设置点击高级系统设置,进入如图2-4 图2-4 系统属性点击环境变量进入如图2-5图2-5 环境变量点击下面的新建 如图2-6图2-6 新建系统变量1.添加变量名:JAVA_HOME,变量值: D:deviskaifajdk1.6.0_10(这是我的jdk目录);2.变量名:CLASSPATH,变量值:.;%JAVA_HOME%lib;%JAVA_HOME%libtools.jar3.在下面找到PATH变量名在后面追加;%JAVA_HOME%bin;%JAVA_HOME%jrebin;D:deviskaifamysql55bin到此JDK环境变量配置完成。重新打开Eclpise如进入图2-1(说明配置成功过)2.5 Tomcat2.5.1 介绍 图2-7 Tomcat LogoTomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML(标准通用标记语言下的一个应用。)页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为8.0.0-RC1 (alpha) Released。Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。2.5.2 Eclipse中安装Tomcat图2-8 Eclipse 设置tomcat如图2-8右击Servers的空白处,点击new-server弹出图2-9图2-9 设置hostName点击图2-9中的Apache下拉选择Tomcat v6.0 Server,如图2-10 图2-10 添加Tomcat版本点击Add.选择tomcat文件夹,点击Finish,安装完成2.6 MySQL2.6.1 介绍 图2-11 MySQL LogoMySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。2.6.1 特点1. 使用核心线程的完全多线程。这意味着它能很容易地利用多CPU(如果有)。2. 支持C 、C+、 Eiffel 、 Java、 Perl、 PHP、Python、和 TCL API等客户工具和 API。3. 可运行在不同操作系统平台上。4. 支持多种列类型:1、 2、 3、4、和 8 字节长度的有符号/无符号整数、FLOAT、DOUBLE、CHAR、VARCHAR、TEXT、BLOB、DATE、TIME、DATETIME、 TIMESTAMP、YEAR、SET和ENUM类型。5. 利用一个优化的一遍扫描多重联结(one-sweep multi-join)非常快速地进行联结(join)。6. 在查询的SELECT和WHERE部分支持全部运算符和函数,例如:mysql SELECT CONCAT(first_name, , last_name) FROM tbl_nameWHERE income/dependents 10000 AND age 30;7. 通过一个高度优化的类库实现SQL函数库并且像他们能达到的一样快速,通常在查询初始化后不应该有任何内存分配。8. 全面支持SQL的GROUP BY和ORDER BY子句,支持聚合函数( COUNT()、COUNT(DISTINCT)、AVG()、STD()、SUM()、 MAX()和MIN() )。9. 支持ANSI SQL的LEFT OUTER JOIN和ODBC语法,你可以在同一查询中混用来自不同数据库的表。10. 一个非常灵活且安全的权限和口令系统,并且它允许基于主机的认证。口令是安全的,因为当与一个服务器连接时,所有的口令传送被加密。11. ODBC for Windiws 95。所有的 ODBC 2 . 5 函数和其他许多函数。例如,你可以用Access连接你的 MySQL服务器,具备索引压缩的快速B树磁盘表。12. 每个表允许有16个索引。每个索引可以由116个列或列的一部分组成。最大索引长度是 256 个字节(在编译MySQL时,它可以改变)。一个索引可以使用一个CHAR或VARCHAR字段的前缀。13. 定长和变长记录。用作临时表的内存散列表。14. 大数据库处理。我们正在对某些包含 50,000,000 个记录的数据库使用MySQL。15. 所有列都有缺省值,你可以用INSERT插入一个表列的子集,那些没用明确给定值的列设置为他们的缺省值。为了可移植性使用 GNU Automake , Autoconf 和libtool。16. 用C和C+编写,并用大量不同的编译器测试,一个非常快速的基于线程的内存分配系统。17. 全面支持ISO-8859-1 Latin1 字符集。例如,斯堪的纳维亚的字符 ringaccenta, a and o 在表和列名字被允许。18. 表和列的别名符合 SQL92 标准。19. 函数名不会与表或列名冲突。例如ABS是一个有效的列名字。20. 客户端使用TCP/IP 连接或Unix套接字(socket)或NT下的命名管道连接MySQL。21. MySQL特有的SHOW命令可用来检索数据库、表和索引的信息,EXPLAIN命令可用来确定优化器如何解决一个查询。2.7 SQLyog2.7.1 介绍SQLyog是业界著名的Webyog公司出品的一款简洁高效、功能强大的图形化MySQL数据库管理工具。使用SQLyog可以快速直观地让您从世界的任何角落通过网络来维护远端的MySQL数据库。SQLyog相比其它类似的MySQL数据库管理工具其有如下特点:1、基于C+和MySQLAPI编程;2、方便快捷的数据库同步与数据库结构同步工具;3、易用的数据库、数据表备份与还原功能;4、支持导入与导出XML、HTML、CSV等多种格式的数据;5、直接运行批量SQL脚本文件,速度极快;6、新版本更是增加了强大的数据迁2.7.1 基本功能 1、快速备份和恢复数据。 2、以GRID/TEXT格式显示结果。 3、支持客户端挑选、过滤数据。 4、批量执行很大的SQL脚本文件。 5、快速执行多重查询并能够返回每页超过1000条的记录集,而这种操作是直接生成在内存中的。 6、程序本身非常短小精悍!压缩后只有348 KB。 7、完全使用MySQL C APIs程序接口。 8、以直观的表格界面建立或编辑数据表。 9、以直观的表格界面编辑数据。 10、进行索引管理。 11、创建或删除数据库。 12、操纵数据库的各种权限:库、表、字段。 13、编辑BLOB类型的字段,支持Bitmap/GIF/JPEG格式。 14、输出数据表结构/数据为SQL脚本。 15、支持输入/输出数据为CSV文件。 16、可以输出数据库清单为HTML文件。 17、为所有操作建立日志。 18、个人收藏管理操作语句。 19、支持语法加亮显示。 20、可以保存记录集为CSV、HTML、XML格式的文件。 21、99%的操作都可以通过快捷键完成。 22、支持对数据表的各种高级属性的修改。 23、查看数据服务器的各种状态、参数等。 24、支持更改数据表类型为ISAM、MYISAM、MERGE、HEAP、InnoDB、BDB。 25、刷新数据服务器、日志、权限、表格等。 26、诊断数据表-检查、压缩、修补、分析。3需求分析3.1 系统目标博客系统的总目标是:在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的个人博客网站,为网络用户提供进行在线交流的网络平台。通过个人博客网站可以结交更多的朋友,表达更多的想法,它随时可以发布文章。具体的要求如下:1)博主可以简单的添加和删除文章;2)独立于具体的数据库平台。对于与数据库交互的部分充分考虑兼容性;3)容易在原先基础上进行二次开发;4)中间基础平台的无型性。尽量采用开放的标准技术,达到跨平台运行的效果;为了达到以上的开发目的,个人博客网站应遵循一定的设计和开发与原则:1)模块接口定义清晰;2)基础类库和接口设计合理,尽量建立扩展的接口和抽象类;3)数据库操作使用标准SQL语句,如果一定要使用有差别的SQL语句,则尽量集中在一起,以减少将来维护和移植的难度;4)采用开放的标准和工具等;3.2 系统的功能要求博客系统通常提供三类服务:1)信息服务,它可分为:文章显示,热点文章推荐,博主风采2)查询服务:可以根据文章内容,文章标题,留言内容,留言标题等进行模糊查询3)留言服务:游客可以对系统进行留言或发表看法意见在此,我参考现有的几大博客网站如QQ空间,新浪博客等,采用Browser/Server结构,将个人博客网站划分为两个子系统:前台,后台。下面分析各个子系统的功能需求。3.3 系统的性能需求博客网站的特性要求博客网站系统需要具备以下几个主要特性:1)多样性: 博客网站在设计时必须遵循的一个重要原则,就是以用户为系统设计的中心。网络的发展大大降低了信息咨询的成本,用户面临更多的选择,所以,博客网站除了降低成本以外,还必须在皮肤,功能的多样性上下工夫,才能够得到用户的认可。具体来说,应用系统应能实现用户特定的需求,操作界面友好、方便,功能设置符合用户的习惯和要求。2)易维护:管理员能够简单方便地管理系统,定义新的应用,并对系统进行日常维护;随着博客网站信息的变更或增加、数据规模的增大,系统升级、维护应易于操作;各子系统、功能模块的设计应具有良好的灵活性,保证在博客网站系统建设过程中后期系统功能的实现不影响前期已投入使用的系统功能。3)安全性:系统应充分考虑信息、设备、运行和管理的安全性,建立完善的多层次的安全保障体系,保证用户的个人信息等资料的数据安全。4)可扩展: 博客网站的用户从事着各种行业,他们的需求各不相同,系统在设计时应充分考虑到用户需求不断变化的需要,降低系统在扩展新的业务功能时的复杂度。3.4 系统的数据需求1. 数据录入和处理的准确性和实时性数据的输入是否准确是数据处理的前提,错误的输入会导致系统输出的不正确和不可用,从而使系统的工作失去意义。数据的输入来源是用户的手工输入。手工输入要通过系统界面上的安排系统具有容错性,并且对用户操作进行实时的跟踪和错误提示。在系统中,数据的输入往往是大量的,因此系统要有一定的处理能力,以保证迅速的处理数据。2. 数据的一致性与完整性由于网站的数据是共享的,所以如何保证这些数据的一致性,是网站必须解决的问题。要解决这一问题,要有一定的人员维护数据的一致性,在数据录入处控制数据的去向,并且要求对数据库的数据完整性进行严格的约束。对于输入的数据,要为其定义完整性规则,如果不能符合完整性约束,网站应该拒绝该数据。 3. 数据的共享与独立性 整个博客网站的数据是共享的。然而,从网站开发的角度上看,共享会给设计和调试带来困难。因此,应该提供灵活的配置,使各个分系统能够独立运行,而通过人工干预的手段进行系统数据的交换。这样,也能提供系统的强壮性。3.5 系统的数据需求博客系统做为Browser/Server结构的一个应用系统,不可避免的要受到Browser/Server结构的约束。在其实施的各个阶段都要服从它的一些规划,包括功能设计、系统配置和计划。3.5.1 人力、资源及时间的约束博客系统实施的目标就是要为网络用户提供进行在线交流的网络平台,其开发过程中也要考虑到人力、资金和时间的约束。因此,在设计中,重点是博客网站系统中良好的人机交互界面,能提供给用户以优质高效的服务。3.5.2 技术发展规律的约束计算机技术和产品的发展日新月异,将会给信息处理带来更多的手段,同时也会带来更加丰富的信息表达形式。例如图象和语音技术的进步,多媒体技术的发展,这些都要求博客网站在设计时考虑技术变化的可能性,为可能的变化预留一定的系统处理能力。4数据库设计4.1 创建数据库博客系统统一采用UTF-8编码方式,防止乱码。使用MySQL创建一个名为blogger的数据库,建库语句如下:CREATE DATABASE IF NOT EXISTS blogger DEFAULT CHARSET utf8 COLLATE utf8_general_ci;解析:如果blogger库不存在则创建一个名为blogger编码采用UTF-8的库4.2 创建表4.2.1 博客网站表(blogger_website) 图4-1 网站实体的E-R图表4-1 blogger_website(网站表)字段名称字段类型字段说明IdBIGINT(16)主键urlVARCHAR(64)博客域名MobanVARCHAR(64)模板文件夹名称NameVARCHAR(64)博客名称DescriptVARCHAR(128)博客描述Add_timeTIMESTAMP添加时间Mod_timeDATETIME修改时间4.2.2 用户表(blogger_user) 图4-2 用户实体的E-R图表4-2 blogger_user(用户表)字段名称字段类型字段说明IdBIGINT(16)主键CodeVARCHAR(64)唯一标示EmailVARCHAR(64)用户邮箱NameVARCHAR(64)用户姓名PasswordVARCHAR(64)用户密码GenderVARCHAR(2)用户性别(默认s)Head_imgVARCHAR(64)用户头像(默认me.jpg)RouteTEXT带扩展DescriptVARCHAR(128)用户描述IshaltVARCHAR(2)是否停用(默认F)MobanVARCHAR(64)模板地址Blog_countBIGINT(16)博客发布个数Reg_timeTIMESTAMP注册时间login_timeDATETIME登陆时间Reg_ipVARCHAR(128)注册IPlogin_ipVARCHAR(128)登陆IP4.2.3 博文表(blogger_blog) 图4-3 博文实体的E-R图 表4-3 blogger_blog(博文表)字段名称字段类型字段说明IdBIGINT(16)博文主键TitleVARCHAR(64)博文标题SummaryTEXT带扩展字段ContentTEXT博文内容TagsTEXT博文标签(废弃ClickINT浏览数 默认0PingjiaINT评价数 默认0isDizINT是否可以评价user_idBIGINT(16)博文作者IDClazz_idBIGINT(16)博文分类IDHaltINT博文是否回收等Add_timeTIMESTAMP博文添加时间Mod_timeDATETIME博文修改时间4.2.4 文件表(blogger_upload) 图4-4 文件实体的E-R图表4-4 blogger_upload(文件表)字段名称字段类型字段说明IdBIGINT(16)主键Old_nameVARCHAR(128)原文件名称New_nameVARCHAR(64)新名称 随机产生DescriptVARCHAR(128)文件描述user_idBIGINT(16)上传者blog_idBIGINT(16)哪个博文Add_timeTIMESTAMP上传时间Mod_timeDATETIME修改时间CateVARCHAR(64)类型 如blogTypeVARCHAR(64)文件后缀 png/rar4.2.5 评价留言表(blogger_ly)图4-5 评价留言实体的E-R图表4-5 blogger_ly(评价留言表)字段名称字段类型字段说明IdBIGINT(16)主键ContentTEXT内容NickVARCHAR(64)昵称urlVARCHAR(128)网址Blog_idBIGINT(16)博文IDUser_idBIGINT(16)用户IDCateVARCHAR(128)留言类型 如:blogEmailVARCHAR(256)邮箱ImgVARCHAR(256)头像图片ReTEXT回复内容HaltBIGINT(16)是否停用Add_timeTIMESTAMP添加时间Mod_timeDATETIME修改时间4.2.6 标签表(blogger_tag) 图4-6 标签实体的E-R图表4-6 blogger_tag(标签表)字段名称字段类型字段说明IdBIGINT(16)主键ContentVARCHAR(128)内容User_idBIGINT(16)用户IDAdd_timeTIMESTAMP添加时间Mod_timeDATETIME修改时间4.2.7 博文标签关联表(blogger_blog_tag)图4-7 博文标签关联实体的E-R图表4-7 blogger_blog_tag(博文标签关联表)字段名称字段类型字段说明IdBIGINT(16)主键User_idBIGINT(16)用户IDBlog_idBIGINT(16)博文IDTag_idBIGINT(16)标签IDAdd_timeTIMESTAMP添加时间Mod_timeDATETIME修改时间4.2.8 博文分类表(blogger_clazz) 图4-8 博文分类实体的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海本地防水工程合同标准文本
- 代销书合同标准文本
- 企业报销燃油签订合同样本
- 买卖合同样本货物
- 借贷房产抵押合同标准文本
- 个人装修供货合同标准文本
- 修建包工合同样本
- 买小吃配方合同标准文本
- 调酒师考试案例分析试题及答案
- 公寓工程定制合同样本
- 招标投标法培训课件
- 针灸治疗呃逆
- 2024年中考英语复习:阅读七选五 专项练习题汇编(含答案解析)
- 《吸收与解吸》课件
- 综合实践活动(1年级下册)第1课时 走近身边孝顺的好榜样-课件
- 初中信息技术教学中的项目式学习
- 部编版语文二年级下册第3单元核心素养教案
- DB43-T 1712-2019 银行业金融机构智能预警系统安全防范要求
- 2023年云南省接受军转干部安置考试试题
- 初三英语试卷分析失分原因和改进措施
- 关于在生产过程中物料流转的交接和管理规定
评论
0/150
提交评论