




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
I 网站系统设计与实现毕业论文网站系统设计与实现毕业论文 目录目录 目录目录 I 摘要摘要 II BLOG NETS III 前言前言 IV 第一章第一章 绪论绪论 1 1 1 系统设计背景 1 1 2 系统设计目标 1 第二章第二章 系统开发工具及相关技术系统开发工具及相关技术 1 2 1 JAVA语言简介 1 2 3 J2EE 技术 2 2 3 1 Struts 技术 2 2 3 2 Spring 技术 5 2 4 SQL 数据库技术介绍 9 2 4 1 数据体系结构 9 2 4 2 SQL 语言组成 9 2 4 3 操作数据库 10 第三章第三章 系统分析系统分析 11 3 1 系统的可行性分析 11 3 1 1 经济可行性分析 11 3 1 2 技术可行性分析 11 3 2 系统需求分析 12 3 3 功能需求 12 第四章第四章 系统设计系统设计 12 4 1 系统概要 12 4 2 功能模块 13 4 3 系统流程图 13 4 4 设计思想 15 4 5 开发环境 15 4 6 数据库设计 15 4 6 1 数据库需求分析 15 4 6 2数据库概念设计 16 4 6 3 数据库表的设计 17 第五章第五章 系统的实现系统的实现 19 5 1 数据库连接 19 5 2 用户登录模块设计 21 II 5 3 后台页面设计 23 5 3 1 后台页面布局代码 23 5 4 相册管理模块设计 23 结论结论 23 致谢致谢 23 参考文献参考文献 23 III 摘要摘要 信息时代的今天 网络已经成为人们工作 学习的一部分 不断充实和改 善着人们的生活 在网络中 构建一个个个性化的个人博客 可以充分地表达 自己的思想 通过发表文章展示个人才能 抒发个人情感 网页则可以根据主 题发表个人意见 表达自己的想法 与博主进行思想交流 乐在其中 随着社会的发展 越来越多的人都希望自己被别人认知 正因为这样 就 会使得这些人烦恼了 交流沟通变成了你与他人之间的障碍 正因为这样便有 了博客网 它开通了这条道路 可以让别人了解你 不仅如此 还能够提高写 作能力 学会设计自己的网页 丰富知识 展示你的风采等等 关键词关键词 博客网 网络 BlogBlog netsnets Information era today the network has become part of the work study enrich and improve people s lives In a network constructing a personalized individual blog you can fully express their thoughts through the published articles reveal individual ability to express personal emotions web page can be according to the subject of individual opinion to express his thoughts and blogger for the exchange of ideas and enjoy With the development of society more and more people want to be cognitive and because of that will make these people worry about it communication into a barrier between you and others and because of that will have a blog nets it opened the road can let others know you not only that but also to improve writing ability learn to design their own web pages rich knowledge to show your elegance and so on Keywords blog network IV 前言前言 博客 译自英文 Weblog blog 也译作 网络日志 网志 或 部落格 等 是一种互联网平台上的个人信息交流中心 一般一个博客就是一个页面 通常由简短而且经常更新的帖子构成 所有文章都是按照年份和日期排列 有 些类似版主的日记 看上去平淡无奇 毫无可炫耀之处 但它可以让每个人零 成本 零维护地创建自己的网络媒体 每个人都可以随时把自己的思想火花和 灵感更新到博客站点上 博客之所以受到用户的欢迎 首先在于它有无与伦比的 越分享越多 的 魅力精髓 对于博主本人 对于阅读博客的人 对于自己 对于他人 对于社 会 对于工作 对于生活 越分享越多 的博客精髓注定了博客的发展势不可 挡 博客可以美化一个人的生活 而所谓的新媒体革命 所谓的人际交往和知 识传播的革命 都是第二层次的 通过分享 美化每一个人的博客 美化每一 个人的生活 自然美化整个社会 分享可以是沟通 可以是人际关系 可以是 文章 可以是音乐和声音 可以是图片和视频 可以是阅读和推荐 博 客网 让你随心所欲 这个所欲主要就是在超越时空的虚拟世界中 可以随心 所欲的地分享你愿意分享的一切 1 第一章第一章 绪论绪论 1 1 系统设计背景 当今时代是飞速发展的信息时代 计算机与信息处理技术日渐成熟 随着 Internet 和计算机网络技术的蓬勃发展 Web 技术得到了迅猛地发展 在科学 技术高速发展的今天 信息技术已经渗透到社会发展的每一个领域 而计算机 技术为工作提供了方便性 高效性 灵活性及安全性 尤其 Web 技术的高速发 展将计算机的应用提升到另一个层次 对于博客网的运用也越来越广泛 而博 客网作为一种信息资源的集散地 正所谓 越分享越多 它美化了一个人的生 活 因此我们通过拥有了博客网来充分发挥计算机的优越性 1 2 系统设计目标 尽管网上有许多博客网系统 但是功能上还有着欠缺 对于此问题 有必 要设计出一个功能完善的博客网系统 以方便与大家的使用 本系统的设计主要是借助与 java 平台开发 使用 SQL Server 作为后台数 据库系统 系统主要实现了以下功能 全面展示博客网站的主题思想 通过发 表 我的文章 表达作者的想法和观点 实现与访问者得相互交流 通过上传 个人相册 使访问者对建设者有进一步的了解 用户可以查看文章 并可以对 文章发表意见 展现最新的博客列表 方便访问者浏览 提供网站统计信息 使访问者了解网站的基本信息 对文章信息进行管理 对相册信息进行管理 可以修改管理员登录信息等 第二章第二章 系统开发工具及相关技术系统开发工具及相关技术 2 1 Java 语言简介 Java 语言其实最早是诞生于 1991 年 起初被称为 OAK 语言 是 SUN 公 司为一些消费性电子产品而设计的一个通用环境 他们最初的目的只是为了开 发一种独立于平台的软件技术 而且在网络出现之前 OAK 可以说是默默无闻 甚至差点夭折 但是 网络的出现改变了 OAK 的命运 在 Java 出现以前 Internet 上的信息内容都是一些乏味死板的 HTML 文档 这对于那些迷恋于 WEB 浏览的人们来说简直不可容忍 他们迫切希望能在 WEB 中看到一些交互 式的内容 开发人员也极希望能够在 WEB 上创建一类无需考虑软硬件平台就 可以执行的应用程序 当然这些程序还要有极大的安全保障 对于用户的这种 要求 传统的编程语言显得无能为力 而 SUN 的工程师敏锐地察觉到了这一点 从 1994 年起 他们开始将 OAK 技术应用于 WEB 上 并且开发出了 HotJava 的第一个版本 当 SUN 公司 1995 年正式以 Java 这个名字推出的时候 几乎所 有的 WEB 开发人员都想到 噢 这正是我想要的 于是 Java 成了一颗耀眼的 明星 丑小鸭一下了变成了白天鹅 Java 的开发环境有不同的版本 如 sun 公 2 司的 Java Development Kit 简称 JDK 后来微软公司推出了支持 Java 规范的 MicrosoftVisual J Java 开发环境 简称 VJ 2 2 JSP 技术 JavaServer Pages 技术是一个纯 Java 平台的技术 它主要用来产生动态网 页内容 在传统的网页 HTML 文件中加入 Java 程序片段和 JSP 标记 就构成 了 JSP 网页 Web 服务器接收到访问 JSP 网页的请求时 首先执行其中的程序 片段 然后将执行结果以 HTML 格式返回给客户 JSP 是基于 Java Servlet 以及 整个 Java 体系的 Web 开发技术 利用这一技术可以建立先进 安全 快速和 跨平台的动态网页 JSP 在多个方面加速了动态的 Web 页面的开发 程序写一次 到处可以运行 JSP 在设计时 充分考虑到应用平台的无关 性 依赖于 Java 的可移植性 JSP 得到目前许多流行操作平台的支持 可在 Apache NetScape IIS 等服务器上执行 执行速度快 JSP 页面只需编译一次转化为 Java 字节代码 其后一直驻留 于服务器内存中 加快了对 JSP 页面的响应速度 若不考虑 JSP 页面第一次编 译所花的时间 则 JSP 的响应速度要比 ASP 快得多 Java 的优势 JSP 技术是用 Java 语言作为脚本语言的 跨平台 成熟 健 壮 易扩充的 Java 技术使得开发人员的工作在其他方面也变得容易和简单 Java 语言通过提供防止内存泄漏的方法 在内存管理方面大显身手 加之 JSP 为应用程序提供了更为健壮的意外事件处理机制 充分发挥了 Java 的优势 JSP 标签可扩充性和跨平台的可重用性 JSP 技术能够使开发者扩展 JSP 标 签得以应用 JSP 开发者能定制标签库 大大减少对脚本语言的依赖 由于定 制标签技术 使网页制作者降低了制作网页和向多个网页扩充关键功能的复杂 程度 JSP 组件 企业 Javabeans JavaBeans 或定制的 JSP 标签 都是跨平台可 重用的 Javabeans 和企业 Javabeans 组件可以访问传统的数据库 并能以分布 式系统模式工作于 UNIX 和 WINDOWS 平台 2 3 J2EE 技术 2 3 1 Struts 技术技术 Struts 最早是作为 Apache Jakarta 项目的组成部分 项目的创立者希 望通过对该项目的研究 改进和提高 JavaServer Pages Servlet 标签库以 及面向对象的技术水准 Struts 这个名字来源于在建筑和旧式飞机中使用的支 持金属架 这个框架之所以叫 Struts 是为了提醒我们记住那些支撑我们房 屋 建筑 桥梁 甚至我们踩高跷时候的基础支撑 这也是一个解释 Struts 在 开发 Web 应用程序中所扮演的角色的精彩描述 当建立一个物理建筑时 建筑 工程师使用支柱为建筑的每一层提供支持 同样 软件工程师使用 Struts 为业 务应用的每一层提供支持 它的目的是为了帮助我们减少在运用 MVC 设计模型 来开发 Web 应用的时间 我们仍然需要学习和应用该架构 不过它将可以完成 其中一些繁重的工作 如果想混合使用 Servlets 和 JSP 的优点来建立可扩展的 3 应用 Struts 是一个不错的选择 早期 Smalltalk 程序语言便采用了 MVC Model View Controller 模式 Patterns 以增加程序代码弹性 MVC 模式将程序代码整理切割为三部份 Model 部分是业务与应用领域 Business domain 相关逻辑 管理状态之对象 Controller 部分接收来自 View 所输入的资料并与 Model 部分互动 是业务流程控制 Flow Control 之处 View 部分则负责展现资料 接收 使用者输入资料 在 Java 应用中 JFC Swing AWT JSP 皆是可用作 View 之 技术规格 而 JavaBean 与 Enterprise JavaBean 规格则可用于 Model 程序代 码 一旦应用程序以 MVC 模式加以适当 的 分割 Model 部分程序代码可在 不同使用者接口外观 的 应用程序中重复使用 随着 JSP 与 Servlet 技术大量应用于以 Web 为基础 的 应用程序 Java 开发人员群体认为应以较佳之模式以提升 Web 应用程序之可维护性与重 复使用性 早期 JSP 规格书中曾列举两种可行之 JSP 应用架构 分别为 Model1 与 Model 2 在 Model 1 架构中 JSP 直接处理 Web 浏览器送来之请求 Request 并辅以 JavaBean 处理应用相关逻辑 Model 1 架构单纯编写比较容易 但在 Model 1 中 JSP 可能同时肩负 View 与 Controller 角色 两类程序代码有可 能混杂而不易维护 而 Model 2 中将 Servlet 纳入架构中扮演前端 Controller 角色 将 Web 浏览器送出之请求集中送至 Servlet Servlet 可 集中管理使用者登入 权限控制 多国语言转换等前置处理 再视需求转向给 对应之 JSP 处理 Model 2 中采用了较佳之 MVC 模式 但增加了编写复杂度 Struts 是 Apache 软件基金下 Jakarta 项目的一部分 除 Struts 之外 还 有其他成功的开源产品 包括 Tomcat Ant 和 Velocity 2000 年 Craig R McClanahan 先生贡献了他编写 的 JSP Model 2 架构之 Application Framework 原始程序代码给 Apache 基金会 成为 Apache Jakarta 计划 Struts Framework 前身 开始的代码基础从 2000 年 5 月开始开发 直到 2001 年 6 月 1 0 版本发 布 有 30 多个开发者参与进来 并有数千人参与到讨论组中 Struts 代码基 础由一个志愿的 Commnitter 团队来管理 到 2002 年 Struts 小组共有 9 个志 愿 Commnitter Struts 框架的主要架构设计和开发者是 Craig R McClanahan Craig 也是 Tomcat 4 的主要架构师 以及 Java Web Services Developer Pack 的主要架 构师和实现者 他现在是 Sun 的 JavaServer Faces JSR 127 以及 J2EE 平台 的 Web 层架构的规范领导 Craig R McClanahan 先生是 JCP ExpertGroup 成 员之一 曾参与 JSP 规格制定与 Tomcat 4 之编写 因此 Struts Framework 4 广受 Java 开发人员群体所重视 Borland 自 2002 年底开始于开发工具 JBuilder 中支持 Struts Framework Struts 是 Apache 基金会 Jakarta 项目组的一个 Open Source 项目 它采 用 MVC 模式 能够很好地帮助 java 开发者利用 J2EE 开发 Web 应用 和其他的 java 架构一样 Struts 也是面向对象设计 将 MVC 模式 分离显示逻辑和业务 逻辑 的能力发挥得淋漓尽致 Structs 框架的核心是一个弹性 的控制层 基于如 Java Servlets JavaBeans ResourceBundles 与 XML 等标准技术 以及 Jakarta Commons 的一些类库 Struts 由一组相互协作的 类 组件 Servlet 以及 jsp tag lib 组成 基于 struts 构架的 web 应用程 序基本上符合 JSP Model2 的设计标准 可以说是一个传统 MVC 设计模式的一 种变化类型 Struts 最早是作为 Apache Jakarta 项目的组成部分问世运作 项目的创 立者希望通过对该项目的研究 改进和提高 Java Server Pages Servlet 标 签库以及面向对象的技术水准 Struts 的目的是为了减少在运用 MVC 设计模型来开发 Web 应用的时间 你 仍然需要学习和应用该架构 不过它将可以完成其中一些繁重的工作 Struts 跟 Tomcat Turbine 等诸多 Apache 项目一样 是开源软件 这是 它的一大优点 使开发者能更深入的了解其内部实现机制 除此之外 Struts 的优点主要集中体现在两个方面 Taglib 和页面导航 Taglib 是 Struts 的标记库 灵活运用 能大大提高开发效率 另外 就目前 国内的 JSP 开发者而言 除了使用 JSP 自带的常用标记外 很少开发自己的标 记 或许 Struts 是一个很好的起点 关于页面导航 我认为那将是今后的一个发展方向 事实上 这样做 使 系统的脉络更加清晰 通过一个配置文件 即可把握整个系统各部分之间的联 系 这对于后期的维护有着莫大的好处 尤其是当另一批开发者接手这个项目 时 这种优势体现得更加明显 MVC 即 Model View Controller 的缩写 是一种常用的设计模式 MVC 减 弱了业务逻辑接口和数据接口之间的耦合 以及让视图层更富于变化 Struts 是 MVC 的一种实现 它将 Servlet 和 JSP 标记 属于 J2EE 规范 用作实现 的一部分 Struts 继承了 MVC 的各项特性 并根据 J2EE 的特点 做了相应的 变化与扩展 服务器启动后 根据 web xml 加载 ActionServlet 读取 struts config xml 文件内容到内存 以登录为例 第一次进 login jsp 会先实例化 Form 把默认值 String 默认 为空字符串 整形默认为 0 赋给表单元素 5 输入用户名密码提交表单 提交到 action 属性的 login do 通过 ActionServlet 读 struts config xml 文件找到 action 下的 path 属性找到 do 通 过 name 属性找 form beans 中的 form bean 的 name 属性得到 ActionForm 的包 名类名 先实例化 form 把表单的值填充给 form 调用 form 的 validate 方法 验证 ActionErrors 返回 null 表示验证通过 否则失败返回 input 指定的页 面 验证通过会实例化 Action 执行 Action 的 excute 方法 Struts 对 Model View 和 Controller 都提供了对应的组件 ActionServlet 这个类是 Struts 的核心控制器 负责拦截来自用户的请 求 Action 这个类通常由用户提供 该控制器负责接收来自 ActionServlet 的请求 并根据该请求调用模型的业务逻辑方法处理请求 并将处理结果返回 给 JSP 页面显示 Model 部分 由 JavaBean 组成 ActionForm 用于封装用户的请求参数 封装成 ActionForm 对象 该对象被 ActionServlet 转发给 Action Action 根据 ActionFrom 里面的请求参数处理用户的请求 JavaBean 则封装了底层的业务逻 辑 包括数据库访问等 View 部分 该部分采用 JSP 实现 Struts 提供了丰富的标签库 通过标签库可以减少脚本的使用 自定义的 标签库可以实现与 Model 的有效交互 并增加了现实功能 对应上图的 JSP 部 分 Controller 组件 Controller 组件有两个部分组成 系统核心控制器 业务逻辑控制器 系统核心控制器 对应上图的 ActionServlet 该控制器由 Struts 框架提供 继承 HttpServlet 类 因此可以配置成标注的 Servlet 该控制器负责拦截所 有的 HTTP 请求 然后根据用户请求决定是否要转给业务逻辑控制器 业务逻辑 控制器 负责处理用户请求 本身不具备处理能力 而是调用 Model 来完成处 理 对应 Action 部分 2 3 2 Spring 技术技术 Spring 是一个开源框架 它由 Rod Johnson 创建 它是为了解决企业应用 开发的复杂性而创建的 Spring 使用基本的 JavaBean 来完成以前只可能由 EJB 完成的事情 然而 Spring 的用途不仅限于服务器端的开发 从简单性 可测 试性和松耦合的角度而言 任何 Java 应用都可以从 Spring 中受益 6 目的 解决企业应用开发的复杂性 功能 使用基本的 JavaBean 代替 EJB 并提供了更多的企业应用功能 范围 任何 Java 应用 简单来说 Spring 是一个轻量级的控制反转 IoC 和面向切面 AOP 的容器框架 轻量 从大小与开销两方面而言 Spring 都是轻量的 完整的 Spring 框架可以在一个大小只有 1MB 多的 JAR 文件里发布 并且 Spring 所需的处理开 销也是微不足道的 此外 Spring 是非侵入式的 典型地 Spring 应用中的对 象不依赖于 Spring 的特定类 控制反转 Spring 通过一种称作控制反转 IoC 的技术促进了松耦 合 当应用了 IoC 一个对象依赖的其它对象会通过被动的方式传递进来 而 不是这个对象自己创建或者查找依赖对象 你可以认为 IoC 与 JNDI 相反 不 是对象从容器中查找依赖 而是容器在对象初始化时不等对象请求就主动将依 赖传递给它 面向切面 Spring 提供了面向切面编程的丰富支持 允许通过分离应 用的业务逻辑与系统级服务 例如审计 auditing 和事务 transaction 管 理 进行内聚性的开发 应用对象只实现它们应该做的 完成业务逻辑 仅此而已 它们并不负责 甚至是意识 其它的系统级关注点 例如日志或事 务支持 容器 Spring 包含并管理应用对象的配置和生命周期 在这个意义上 它是一种容器 你可以配置你的每个 bean 如何被创建 基于一个可配置原型 prototype 你的 bean 可以创建一个单独的实例或者每次需要时都生成一个 新的实例 以及它们是如何相互关联的 然而 Spring 不应该被混同于传统 的重量级的 EJB 容器 它们经常是庞大与笨重的 难以使用 框架 Spring 可以将简单的组件配置 组合成为复杂的应用 在 Spring 中 应用对象被声明式地组合 典型地是在一个 XML 文件里 Spring 也 提供了很多基础功能 事务管理 持久化框架集成等等 将应用逻辑的开发留 给了你 所有 Spring 的这些特征使你能够编写更干净 更可管理 并且 更易于测试的代码 它们也为 Spring 中的各种模块提供了基础支持 你可能正 在想 Spring 不过是另外一个的 framework 当已经有许多开放源代码 和专 有 J2EE framework 时 我们为什么还需要 Spring Framework Spring 是独特的 因为若干个原因 它定位的领域是许多其他流行的 framework 没有的 Spring 关注提供一 种方法管理你的业务对象 Spring 是全面的和模块化的 Spring 有分层的体系结构 这意味着你能 选择使用它孤立的任何部分 它的架构仍然是内在稳定的 因此从你的学习中 7 你可得到最大的价值 例如 你可能选择仅仅使用 Spring 来简单化 JDBC 的使用 或 用来管理所有的业务对象 它的设计从底部帮助你编写易于测试的代码 Spring 是用于测试驱动工 程的理想的 framework Spring 对你的工程来说 它不需要一个以上的 framework Spring 是潜在 地一站式解决方案 定位于与典型应用相关的大部分基础结构 它也涉及到其 他 framework 没有考虑到的内容 方便解耦 简化开发 通过 Spring 提供的 IoC 容器 我们可以将对象之间的依赖关系交由 Spring 进行控制 避免硬编码所造成的过度程序耦合 有了 Spring 用户不必 再为单实例模式类 属性文件解析等这些很底层的需求编写代码 可以更专注 于上层的应用 AOP 编程的支持 通过 Spring 提供的 AOP 功能 方便进行面向切面的编程 许多不容易用传 统 OOP 实现的功能可以通过 AOP 轻松应付 声明式事务的支持 在 Spring 中 我们可以从单调烦闷的事务管理代码中解脱出来 通过声明 式方式灵活地进行事务的管理 提高开发效率和质量 方便程序的测试 可以用非容器依赖的编程方式进行几乎所有的测试工作 在 Spring 里 测 试不再是昂贵的操作 而是随手可做的事情 方便集成各种优秀框架 Spring 不排斥各种优秀的开源框架 相反 Spring 可以降低各种框架的使 用难度 Spring 提供了对各种优秀框架 如 Struts Hibernate Hession Quartz 等的直接支持 降低 Java EE API 的使用难度 Spring 对很多难用的 Java EE API 如 JDBC JavaMail 远程调用等 提 供了一个薄薄的封装层 通过 Spring 的简易封装 这些 Java EE API 的使用难 度大为降低 Java 源码是经典学习范例 Spring 的源码设计精妙 结构清晰 匠心独用 处处体现着大师对 Java 设计模式灵活运用以及对 Java 技术的高深造诣 Spring 框架源码无疑是 Java 技术的最佳实践范例 如果想在短时间内迅速提高自己的 Java 技术水平和应用 开发水平 学习和研究 Spring 源码将会使你收到意想不到的效果 在我们进入细节以前 让我们看一下 Spring 可以给一个工程带来的一些好 8 处 Spring 能有效地组织你的中间层对象 无论你是否选择使用了 EJB 如果 你仅仅使用了 Struts 或其他的包含了 J2EE 特有 APIs 的 framework 你会发现 Spring 关注了遗留下的问题 Spring 能消除在许多工程上对 Singleton 的过多使用 根据我的经验 这是一个主要的问题 它减少了系统的可测试性和面向对象特性 Spring 能消除使用各种各样格式的属性定制文件的需要 在整个应用和 工程中 可通过一种一致的方法来进行配置 曾经感到迷惑 一个特定类要查 找迷幻般的属性关键字或系统属性 为此不得不读 Javadoc 乃至源编码吗 有了 Spring 你可很简单地看到类的 JavaBean 属性 倒置控制的使用 在下面讨论 帮助完成这种简化 Spring 能通过接口而不是类促进好的编程习惯 减少编程代价到几乎为 零 Spring 被设计为让使用它创建的应用尽可能少的依赖于他的 APIs 在 Spring 应用中的大多数业务对象没有依赖于 Spring 使用 Spring 构建的应用程序易于单元测试 Spring 能使 EJB 的使用成为一个实现选择 而不是应用架构的必然选择 你能选择用 POJOs 或 local EJBs 来实现业务接口 却不会影响调用代码 Spring 帮助你解决许多问题而无需使用 EJB Spring 能提供一种 EJB 的 替换物 它们适于许多 web 应用 例如 Spring 能使用 AOP 提供声明性事务而 不通过使用 EJB 容器 如果你仅仅需要与单个的数据库打交道 甚至不需要 JTA 实现 Spring 为数据存取提供了一致的框架 不论是使用 JDBC 或 O R mapping 产品 如 Hibernate Spring 确实使你能通过最简单可行的解决办法解决你的问题 这些特性是 有很大价值的 总结起来 Spring 有如下优点 低侵入式设计 代码污染极低 独立于各种应用服务器 可以真正实现 Write Once Run Anywhere 的承 诺 Spring 的 DI 机制降低了业务对象替换的复杂性 Spring 并不完全依赖于 Spring 开发者可自由选用 Spring 框架的部分 或全部 Spring 提供许多功能 在此我将快速地依次展示其各个主要方面 首 先 让我们明确 Spring 范围 尽管 Spring 覆盖了许多方面 但我们已经有清楚 的概念 它什么应该涉及和什么不应该涉及 9 Spring 的主要目的是使 J2EE 易用和促进好编程习惯 Spring 不重新开发已有的东西 因此 在 Spring 中你将发现没有日志记 录的包 没有连接池 没有分布事务调度 这些均有开源项目提供 例如 Commons Logging 用来做所有的日志输出 或 Commons DBCP 用来作数据连接池 或由你 的应用程序服务器提供 因为同样的的原因 我们没有提供 O R mapping 层 对此 已有有好的解决办法如 Hibernate 和 JDO spring Spring 的目标是使已存在的技术更加易用 例如 尽管我们没有底层事务协调处理 但我们提供了一个抽象层覆盖了 JTA 或任何其他的事务策略 Spring 没有直接和其他的开源项目竞争 除 非我们感到我们能提供新的一些东西 例如 象许多开发人员 我们从来没有 为 Struts 高兴过 并且感到在 MVC web framework 中还有改进的余地 在某些 领域 例如轻量级的 IoC 容器和 AOP 框架 Spring 有直接的竞争 但是在这些 领域还没有已经较为流行的解决方案 Spring 在这些区域是开路先锋 Spring 也得益于内在的一致性 所有的开发者都在唱同样的的赞歌 基础想法依然是 Expert One on One J2EE 设计与开发的那些 并且我们已经能够使用一些主要的概念 例如倒置控制 来处理多个领域 Spring 在应用服务器之间是可移植的 当然保证可移植性总是一次挑战 但是我们避免任何特定平台或非标准化 并且 支持在 WebLogic Tomcat Resin JBoss WebSphere 和其他的应用服务器上 的用户 2 4 SQL 数据库技术介绍 2 4 1 数据体系结构数据体系结构 SQL 数据库的数据体系结构基本上是三级结构 但使用术语与传统关系模 型术语不同 在 SQL 中 关系模式 模式 称为 基本表 base table 存储 模式 内模式 称为 存储文件 stored file 子模式 外模式 称为 视图 view 元组称为 行 row 属性称为 列 column 名称对称如 00100009a 2 4 2 SQL 语言组成语言组成 在正式学习 SQL 语言之前 首先让我们对 SQL 语言有一个基本认识 介绍 一下 SQL 语言的组成 10 1 一个 SQL 数据库是表 Table 的集合 它由一个或多个 SQL 模式定义 2 一个 SQL 表由行集构成 一行是列的序列 集合 每列与行对应一个数 据项 3 一个表或者是一个基本表或者是一个视图 基本表是实际存储在数据库 的表 而视图是由若干基本表或其他视图构成的表的定义 4 一个基本表可以跨一个或多个存储文件 一个存储文件也可存放一个或 多个基本表 每个存储文件与外部存储上一个物理文件对应 5 用户可以用 SQL 语句对视图和基本表进行查询等操作 在用户角度来看 视图和基本表是一样的 没有区别 都是关系 表格 6 SQL 用户可以是应用程序 也可以是终端用户 SQL 语句可嵌入在宿主语 言的程序中使用 宿主语言有 FORTRAN COBOL PASCAL PL I C 和 Ada 语言 等 SQL 用户也能作为独立的用户接口 供交互环境下的终端用户使用 2 4 3 操作数据库操作数据库 SQL 包括了所有对数据库的操作 主要是由 4 个部分组成 1 数据定义 这一部分又称为 SQL DDL 定义数据库的逻辑结构 包括 定义数据库 基本表 视图和索引 4 部分 2 数据操纵 这一部分又称为 SQL DML 其中包括数据查询和数据更新 两大类操作 其中数据更新又包括插入 删除和更新三种操作 3 数据控制 对用户访问数据的控制有基本表和视图的授权 完整性规 则的描述 事务控制语句等 4 嵌入式 SQL 语言的使用规定 规定 SQL 语句在宿主语言的程序中使用的 规则 SQL 数据定义功能包括定义数据库 基本表 索引和视图 首先 让我们了解一下 SQL 所提供的基本数据类型 如 00100009b 1 数据库的建立与删除 1 建立数据库 数据库是一个包括了多个基本表的数据集 其语句格式 为 CREATE DATABASE 其它参数 其中 在系 统中必须是唯一的 不能重复 不然将导致数据存取失误 其它参数 因具体 数据库实现系统不同而异 例 要建立项目管理数据库 monitor 其语句应为 CREATE DATABASE monitor 2 数据库的删除 将数据库及其全部内容从系统中删除 其语句格式为 DROP DATABASE 例 删除项目管理数据库 monitor 其语句应为 drop database monitor 11 2 基本表的定义及变更 本身独立存在的表称为基本表 在 SQL 语言中一个关系唯一对应一个基本表 基本表的定义指建立基本关系模式 而变更则是指对数据库中已存在的基本表 进行删除与修改 第三章第三章 系统分析系统分析 3 1 系统的可行性分析 可行性分析是在进行初步调查后所进行的对系统开发必要性和可能性的研 究 所以也称为可行性研究 信息系统也应从技术可行性 经济可行性和社会 可行性三方面来论证 通过长时间的观察与实践 我认为博客网系统的可行性 分析如下 3 1 1 经济可行性分析经济可行性分析 博客网通过我的文章和相册上传等功能模块 吸引更多的浏览者 增加网 站的访问量 提升网站的影响力 不断更新网站信息内容 使网站信息更加多 元化 适合不同的访问群体 通过网站展现个人魅力 愉悦身心 通过与来者 的交流 不断积累经验 吸收新的知识 使网站充满新鲜活力 3 1 2 技术可行性分析技术可行性分析 本系统主要应用 Servlet 技术开发 Servlet 技术带给程序员最大的帮助 是它可以处理客户端传来的 HTTP 请求 并返回一个响应 Servlet 是一个 Java 类 Java 语言能够实现的功能 Servlet 基本上都可以实现 图形界面以外 总的来说 Servlet 技术具有以下特点 1 高效 在服务器上仅有一个 Java 虚拟机在运行 其优势在于当多个来自客户端 的请求进行访问时 Servlet 为每个请求分配一个线程而不是进程 2 方便 Servlet 提供了大量的使用工具例程 例如处理很难完成的 HTML 表单数 据 读取和设置 HTTP 头 处理 Cookie 和跟踪会话等 3 跨平台 Servlet 是用 Java 类编写的 可以在不同的操作系统平台和不同的应用 服务器平台下运行 4 功能强大 在 Servlet 中 许多使用系统 CGI 程序很难完成的任务都可以利用 Servlet 技术轻松地完成 例如 Servlet 能够直接和 Web 服务器交互 而普通 的 CGI 程序则不能 Servlet 还能够在各个程序之间共享数据 使得数据库连 接池之类的功能很容易实现 5 灵活性和扩展性 12 采用 Servlet 开发的 Web 应用程序 由于 Java 类的继承性 构造函数等特 点 应用灵活 可随意扩展 6 共享数据 Servlet 之间可通过共享数据很容易地实现数据库连接池 他能方便的实 现管理用户请求 简化 Session 和获取前一页面信息的操作 而在 CGI 之间通 信则很差 由于每个 CGI 程序的调用都开始一个新的进程 调用间通信通常要 通过文件进行 因而相当缓慢 同一台服务器上的不同 CGI 程序之间的通信也 相当麻烦 7 安全 有些 CGI 版本存在明显的安全弱点 即使是使用最新的标准和 PERL 等语言 系统也没有基本安全框架 而 Java 定义有完整的安全机制 包括 SSL CA 认证 安全政策等规范 3 2 系统需求分析 信息时代的今天 网络也成为人们工作 学习的一部分 不断充实和改善 着人们的生活 在网络中 构建一个个性化的个人博客 可以充分地表达自己 的思想 通过发表文章展示个人才能 抒发个人情感 网友则可以根据主题发 表个人的意见 表达自己的思想 与博主进行思想交流 乐在其中 3 3 功能需求 本系统主要实现网站建设者与访问者之间的相互交流 展现网站建设者的 思想 主要实现如下目标 1 全面展示博客网站的主题思想 2 通过发表 我的文章 表达作者的想法和观点 实现与访问者得相互交流 3 通过上传个人相册 使访问者对建设者有进一步的了解 4 用户可以查看文章 并可以对文章发表意见 5 展现最新的博客列表 方便访问者浏览 6 提供网站统计信息 使访问者了解网站的基本信息 7 对文章信息进行管理 通过选择文章类别名称添加文章内容 并可以查询 修改和删除文章内容 8 对相册信息进行管理 通过选择相册类别名称上传相册图片信息 并可以查 看 修改和删除相册内容 9 可以修改管理员登录信息 第四章第四章 系统设计系统设计 4 1 系统概要 博客网站分为前台和后台 其中 根据博客前台的特点 可以将其中分为 13 博主信息 网络日历 文章查询 公告查询及相册查询等 13 个部分 根据博客 网后台的特点 可将其分为用户设置 公告管理 个人相册管理 博客文章管 理 投票管理 朋友信息管理及博主信息修改 7 个部分 4 2 功能模块 公告管理 博客文章管理 个人相册管理 投票管理 朋友信息管理 用户设置 公告添加 公告设置 相册添加 相册设置 博客文章设置 发表博客文章 文章分类 设置内容添加 投票内容设置 朋友信息添加 朋友信息设置 博主信息修改 博 客 网 后 台 图 4 1 博客网站后台功能结构图 4 3 系统流程图 为了更加清晰地表达系统的业务功能模块 下面给出博客网的系统流程图 对于不同的角色 其所承担的任务也各有不同 流程图也不一样 包括面向用 户的客户端流程图和面向系统管理员的流程图 14 开始 用户登录 用户登 录判断 博客网首页 博客说明查 看 朋友查看 投票 投票结果查看 公告信息查看公告信息详细查 看 文章分类文章查看文章详细查看文章回复 相册查看 邮件联系 博主信息查 看 图 4 2 面向用户的客户端 开始 用户登录 用户登录 是 否为系统管理 员 博客网前台页面 博客网后台页面 博主个人信息 修改 博客文章管理 个人相册管理 朋友信息管理 公告管理 投票管理 用户管理 图 4 3 面向系统管理员 用户注册 15 4 4 设计思想 利用软件开发现有软硬件环境 及先进的管理系统开发方案 从而达到充 分利用现在资源提高系统开发水平和应用效果的目的 系统应该符合软件工程开发的理论 开发方法等开发依据 系统应满足人们工作需要 并达到操作过程中的直观 方便 实用 安全 准确等要求 系统具备数据库维护功能 及时根据用户需求进行数据库的各种操作 系统采用原型 使用模块化程序设计方法 便于系统功能的各种组合和修 改 以及系统的测试与维护 4 5 开发环境 在开发博客网站系统时 需要具备下面的软件环境 服务器端 操作系统 Windows xp Web 服务器 Tomcat 6 0 Java 开发包 JDK1 5 以上 数据库 SQL Server2005 浏览器 IE 分辨率 最佳效果为 1024 768 像素 客户端 4 6 数据库设计 4 6 1 数据库需求分析数据库需求分析 创建博客数据库的第一步是制定实施计划 该计划可以在实现数据库时做 向导 也可以在实现数据库后 用作数据库的功能说明 数据库设计的复杂性 和细节由数据库的应用程序的复杂性 大小及用户使用情况确定 采集信息标识对象创建对象实体 标识每个对象的信息类型标识对象之间的关系 图 4 4 数据库设计的基本步骤 下面将详细介绍数据库设计的基本步骤 16 1 采集信息采集信息 在创建博客数据库之前 必须对博客信息有一个透彻的理解 与博客网中所 涉及的每个人进行交流 以找出他们所做的工作及他们需要从数据库中获得的 内容 这是很重要的 另外 了解该博客系统是否符合实际要求及找出相关系 统的问题 限制和屏蔽也很重要 2 标识对象标识对象 在采集信息的过程中 必须标识将由博客数据库管理的主要对象实体 对象 可以是一个有形的实体 如用户 也可以是一个无形的项目 文章 相册等 通常会有几个主要对象 在标识了这些对象之后 相关的项目就会变清晰 数据库中每个不同的项目都应有一个对应的表 3 创建对象实体创建对象实体 标识了博客系统的对象后 使用该博客系统的一种直观表示方式对这些对象 进行记录是很重要的 在数据库实现期间 可以使用数据库实体作为参考 4 表示每个对象的信息类型表示每个对象的信息类型 标识必须为个对象存储的信息类型 这些信息是对象的表中的列 实际上是 数据表字段的类型 5 表示对象之间的关系表示对象之间的关系 关系数据库的一个优势是其具有联系或关联数据库中的各种项目有关信息的 能力 可以单独地存储独立的数据类型 但数据库可以在必要时组合数据 在 设计过程中 表示对象间的关系需要查看各种表 一确它们逻辑相关的方式及 添加关系列已建立一个表与另一个表间的关系 4 6 2 数据库概念设计数据库概念设计 根据以上对系统所做的需求分析和系统设计 规划出本系统中使用的数据 库实体分别为用户信息实体 公告信息实体 个人相册信息实体 朋友信息实 体 投票信息实体 博客文章信息实体及文章回复实体 下面将列出几个关键 实体的 E R 图 1 用户信息实体 图 4 5 用户信息实体属性 E R 图 用户信息 用户名 密码 姓名性别 E mail 地址 兴趣主页 QQ 号码 管理级别 17 2 个人相册信息实体 个 人 相 册 信 息 相册存放服务器地址 相册描述信息 相册上次时间 图 4 6 个人相册信息实体属性 E R 图 3 博客文章信息实体 文章信息 文章发表时间 文章访问次数文章内容 文章题目 图 4 7 博客文章信息实体属性 E R 图 4 6 3 数据库表的设计数据库表的设计 Tb photo 个人相册信息表 个人相册信息表主要来保存相册信息 表 tb photo 的结构 字段名称数据类型是否为空是否主键默认值说明 idInt 4 nonull自动编号 photoAddressVarchar 50 yesnull相册存放服务器 地址 photoDescript ion Varchar 50 yesnull相册描述信息 photoTimeVarchar 50 yesnull相册上传时间 18 Tb co
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川省巴中市普通高中2023级“零诊”考试化学试题(含答案)
- 2023年度注册公用设备工程师模拟试题带答案详解(综合题)
- 医疗器械安全管理标准解读
- 水利建设年度工作总结
- 2026届天津市河西区新华圣功学校化学九年级第一学期期中统考试题含解析
- 河南省周口沈丘县联考2026届九年级英语第一学期期末联考试题含解析
- 2026届福建省师范大泉州附属中学九上化学期中监测模拟试题含解析
- 脑梗护理个案分享案例
- 2026届广东汕尾甲子镇瀛江学校九年级英语第一学期期末质量检测试题含解析
- 行政秘书入职工作总结
- 分子泵培训教材课件
- 侦检探测器材课件
- 工程项目样板施工技术方案
- 超分子化学-杯芳烃课件
- 2022年医院消防安全知识培训课件
- (完整word)毛坯余量与精度
- 商务英语综合教程第一册ppt课件(完整版)
- DB23∕T 1019-2020 黑龙江省建筑工程资料管理标准
- 无尘车间异物管理及人员教育培训课件
- fy13及on动手实验中文版factorytalk historian基础mi
- 电弧跟踪介绍
评论
0/150
提交评论