毕业设计(论文)基于SSH的校内网系统的设计与实现_第1页
毕业设计(论文)基于SSH的校内网系统的设计与实现_第2页
毕业设计(论文)基于SSH的校内网系统的设计与实现_第3页
毕业设计(论文)基于SSH的校内网系统的设计与实现_第4页
毕业设计(论文)基于SSH的校内网系统的设计与实现_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于 ssh 的校内网系统的设计与实现 院系名称软件学院 姓名 学号20077712804 专业计算机辅助设计 指导教师 2010 年 12 月 7 日 ii 目录 1 引言.4 1.1 研究的背景和意义.4 1.2 论文的组织结构.4 2 系统相关技术.4 2.1struts.4 2.1.1 struts 体系结构.4 2.1.2 struts 框架中的组件.5 2.2 hibernate.7 2.2.1 hibernate 核心接口.8 2.3 spring.8 2.4 ajax.9 2.4.1 几种技术.9 3 系统分析.10 3.1 系统需求分析.10 3.2 系统功能分析.10 3.

2、3 系统功能模块结构图.11 4 数据库设计.12 4.1 数据库概念结构设计.12 4.2 数据库设计.23 5 系统设计与实现.25 5.1 开发工具与环境.25 5.2 各模块设计与实现.26 5.2.1 注册.26 5.2.2 登陆.29 5.2.3 日志.30 5.2.4 个人资料.33 5.2.5 留言.35 5.2.6 相册.36 iii 5.2.7 状态.37 5.2.8 好友.37 5.2.9 分享.38 5.2.10 通知.38 5.2.11 好友访问.38 5.2.12 访问好友.38 5.2.13 安全中心.39 5.2.14 退出.39 5.3 统一编码.39 5.3

3、.1 说明.39 5.3.2 关键代码.39 6 结束语.41 参考文献.42 致 谢 .43 4 1 引言 1 1. .1 1 研研究究的的背背景景和和意意义义 sns:social network service,社交网络服务,依据六度理论,以认识朋友的朋 友为基础,扩展自己的人脉。并且无限扩张自己的人脉,在需要的时候,可以随时 获取一点,得到该人脉的帮助。 sns 网站,就是依据六度理论建立的网站,帮你运营朋友圈的朋友。 校内网给不同身份的人提供了一个全方位的互动交流平台,大大提高了用户之 间的交流效率降低了维护用户之间交流的成本,通过提供发布日志、保存相册、音 乐视频等站内外资源分享等

4、功能搭建了一个功能丰富高效的用户交流互动平台。 1 1. .2 2 论论文文的的组组织织结结构构 论文的第二部分介绍系统相关技术,包括 ssh 三大框架,介绍了 struts、hibernate、spring 三大框架的结构等,另外介绍了 ajax 的各项技术。 论文的第三部分对系统进行需求分析,功能分析,并划分系统模块。 论文的第四部分为系统数据库的设计,从概念设计,逻辑设计方面对数据库。 论文的第五部分为系统具体的设计与实现,包括系统开发环境和工具,系统各模块 的设计和实现,及三大框架的应用体现。 2 系统相关技术 2.1 struts struts 是 apache 基金会 jakart

5、a 项目组的一个 open source 项目,它采用 mvc 模式, 能够很好地帮助 java 开发者利用 j2ee 开发 web 应用。和其他的 java 架构一样,struts 也是面向对象设计,将 mvc 模式分离显示逻辑和业务逻辑的能力发挥得淋漓尽致。 2.1.1 struts 体系结构 让我们从 mvc 角度观察 struts 框架中的组件 框架中三个部分:模型,视窗和控制器。 1 模型 在 struts 框架中,模型分为两个部分: 5 系统的内部状态; 可以改变状态的操作(事务逻辑)。 内部状态通常由一组 actionform javabean 表示。根据设计或应用程序复杂度的不

6、 同,这些 bean 可以是自包含的并具有持续的状态,或只在需要时才获得数据(从某个 数据库)。 大型应用程序通常在方法内部封装事务逻辑(操作),这些方法可以被拥有状态 信息的 bean 调用。比如购物车 bean,它拥有用户购买商品的信息,可能还有 checkout()方法用来检查用户的信用卡,并向仓库发定货信息。 小型程序中,操作可能会被内嵌在 action 类,它是 struts 框架中控制器角色的一 部分。当逻辑简单时这个方法很适合。 建议用户将事务逻辑(要做什么)与 action 类所扮演的角色(决定做什么)分开。 2 视窗 由 jsp 建立,struts 包含扩展自定义标签库,可以

7、简化创建完全国际化用户界面的 过程。 3 控制器 struts 中,基本的控制器组件是 actionservle 类中的实例 servlet,实际使用的 servlet 在配置文件中由一组映射(由 actionmapping 类进行描述)进行定义。 2.1.2 struts 框架中的组件 框架中所使用的组件: 1 actionservlet 控制器 框架中的控制器组件是有 org.apache.struts.action.actionservlet 类实现的,这个类是 javax.servlet.http.httpservlet 类的扩展。 struts controller 基本功能是: (

8、1) 截获用户的 http 请求 。 (2) 把这个请求映射到相应的 action 类,如果这是此类收到的第一个请求,将初始 化实例并缓存。 (3) 创建或发现一个 actionform bean 实例(看配置文件是否定义),然后将请求 过程移植到 bean。 (4) 调用 action 实例的 perform()方法并将 actioform bean,action mapping 对象, request 和 response 对象传给它。 (5) perform 返回一个 actionforword 对象,此对象连接到相应的 jsp 页面。 2 actionclass 包含事务逻辑 6 ac

9、tion 类真正实现应用程序的事务逻辑,它们负责处理请求。在收到请求后, actionservlet 会: 为这个请求选择适当的 action 如果需要,创建 action 的一个实例 调用 action 的 perform()方法 如果 actionservlet 不能找到有效的映射,它会调用默认的 action 类(在配置文件 中定义)。如果找到了 actionservlet 将适当的 actionmapping 类转发给 action,这个 action 使用 actionmapping 找到本地转发,然后获得并设置 actionmapping 属性。根据 servlet 的环境和被覆盖

10、的 perform()方法的签名,actionservlet 也会传送 servletrequest 对象或 httpservletrequest 对象。 3 actionform 显示模块数据 框架假设用户在应用程序中为每个表单都创建了一个 actionform bean,对于每个 在 struts-config.xml 文件中定义的 bean,框架在调用 action 类的 perform()方法之前会 进行以下操作: 在相关联的关键字下,它检查用于适当类的 bean 实例的用户会话,如果在会话中 没有可用的 bean,它就会自动创建一个新的 bean 并添加到用户的会话中。 对于请求中每

11、个与 bean 属性名称对应的参数,action 调用相应的设置方法。 当 action perform()被调用时,最新的 actionform bean 传送给它,参数值就可以立 即使用了。 actionform 类扩展 org.apache.struts.action.actionform 类,程序开发人员创建的 bean 能够包含额外的属性,而且 actionservlet 可能使用反射(允许从已加载的对象中 回收信息)访问它。 actionform 类提供了另一种处理错误的手段,提供两个方法: public actionerrors validate(actionmappin map

12、ping, servletrequest request) public actionerrors validate(actionmappin mapping, httpservletrequest request) 你应该在自己的 bean 里覆盖 validate()方法,并在配置文件里设置元素的 validate 为 true。在 actionservlet 调用 action 类前,它会调用 validate(),如果返回的 actionerrors 不是 null,则 actinform 会根据错误关键字将 actionerrors 存储在请求属 性列表中。 如果返回的不是 null

13、,而且长度大于 0,则根据错误关键字将实例存储在请求的属 性列表中,然后 actionservlet 将响应转发到配置文件元素的 input 属性所指向 的目标。 7 如果需要执行特定的数据有效性检查,最好在 action 类中进行这个操作,而不是 在 actionform 类中进行。 方法 reset()可将 bean 的属性恢复到默认值: public void reset(actionmapping mapping,httpservletrequest request) public void reset(actionmapping mapping,servletrequest requ

14、est) 典型的 actionfrom bean 只有属性的设置与读取方法(getxxx),而没有实现事务 逻辑的方法。只有简单的输入检查逻辑,使用的目的是为了存储用户在相关表单中输 入的最新数据,以便可以将同一网页进行再生,同时提供一组错误信息,这样就可以 让用户修改不正确的输入数据。而真正对数据有效性进行检查的是 action 类或适当的 事务逻辑 bean。 4 actionmapping 帮助控制器将请求映射到操作 将特定请求映射到特定 action 的相关信息存储在 actionmapping 中,actionservelt 将 actionmapping 传送到 action 类的

15、 perform()方法,action 将使用 actionmapping 的 findforward()方法,此方法返回一个指定名称的 actionforward,这样 action 就完成了 本地转发。若没有找到具体的 actionforward,就返回一个 null。 5 actionforward 用来指示操作转移的对象 目的是控制器将 action 类的处理结果转发至目的地。 action 类获得 actionforward 实例的句柄,然后可用三种方法返回 actionservlet, 所以我们可以这样使用 findforward(): actionservlet 根据名称获取一个

16、全局转发 actionmappin 实例被传送到 perform()方法,并根据名称找到一个本地转发 6 actionerror 用来存储和回收错误 struts 提供了两个类来处理错误:actionerrors 和 actionerror,它们都扩展 org.apache.struts.action。actionerrors 保存着 actionerror 对象的集合,其中每一个代表 了独立的错误信息。每个 actionerror 都包含了关键字,能够映射到资源文件中存储的 错误信息,而这个资源文件是在 actionservlet 初始化参数中指定的。 7 struts 标记库 可以减轻开发

17、显示层次的工作 2.2 hibernate hibernate 是一个开放源代码的对象关系映射框架,它对 jdbc 进行了非常轻量级 的对象封装,使得 java 程序员可以随心所欲的使用对象编程思维来操纵数据库。 hibernate 可以应用在任何使用 jdbc 的场合,既可以在 java 的客户端程序使用,也可 8 以在 servlet/jsp 的 web 应用中使用,最具革命意义的是,hibernate 可以在应用 ejb 的 j2ee 架构中取代 cmp,完成数据持久化的重任。 2.2.1 hibernate 核心接口 hibernate 的核心接口一共有 5 个,分别为: sessio

18、n、sessionfactory、transaction、query 和 configuration。这 5 个核心接口在任何 开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务 控制。下面对这五个核心接口分别加以介绍。 1 session 接口: session 接口负责执行被持久化对象的 crud 操作(crud 的任务 是完成与数据库的交流,包含了很多常见的 sql 语句。)。但需要注意的是 session 对 象是非线程安全的。同时,hibernate 的 session 不同于 jsp 应用中的 httpsession。这里 当使用 session 这个术语时

19、,其实指的是 hibernate 中的 session,而以后会将 httpsesion 对象称为用户 session。 2 sessionfactory 接口: sessionfactory 接口负责初始化 hibernate。它充当数据存 储源的代理,并负责创建 session 对象。这里用到了工厂模式。 需要注意的是 sesionfactory 并不是轻量级的,因为一般情况下,一个项目通常只 需要一个 sessionfactory 就够,当需要操作多个数据库时,可以为每个数据库指定一个 sessionfactory。 3 configuration 接口:configuration 接口

20、负责配置并启动 hibernate,创建 sessionfactory 对象。在 hibernate 的启动的过程中,configuration 类的实例首先定位映 射文档位置、读取配置,然后创建 sessionfactory 对象。 4 transaction 接口:transaction 接口负责事务相关的操作。它是可选的,开发人 员也可以设计编写自己的底层事务处理代码。 5 query 和 criteria 接口:query 和 criteria 接口负责执行各种数据库查询。它可 以使用 hql 语言或 sql 语句两种表达方式 2. .3 spring 1 目的:解决企业应用开发的复杂

21、性 2 功能:使用基本的 javabean 代替 ejb,并提供了更多的企业应用功能 3 范围:任何 java 应用 ,简单来说,spring 是一个轻量级的控制反转(ioc)和面 向切面(aop)的容器框架。 4 轻量从大小与开销两方面而言 spring 都是轻量的。完整的 spring 框架可以 在一个大小只有 1mb 多的 jar 文件里发布。并且 spring 所需的处理开销也是微不足 9 道的。此外,spring 是非侵入式的:典型地,spring 应用中的对象不依赖于 spring 的 特定类。 5 控制反转spring 通过一种称作控制反转(ioc)的技术促进了松耦合。当应 用了

22、 ioc,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己 创建或者查找依赖对象。你可以认为 ioc 与 jndi 相反不是对象从容器中查找依赖, 而是容器在对象初始化时不等对象请求就主动将依赖传递给它。 6 面向切面spring 提供了面向切面编程的丰富支持,允许通过分离应用的业 务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的 开发。应用对象只实现它们应该做的完成业务逻辑仅此而已。它们并不负责 (甚至是意识)其它的系统级关注点,例如日志或事务支持。 7 容器spring 包含并管理应用对象的配置和生命周期,在这个意义上它是

23、一 种容器,你可以配置你的每个 bean 如何被创建基于一个可配置原型(prototype), 你的 bean 可以创建一个单独的实例或者每次需要时都生成一个新的实例以及它们 是如何相互关联的。然而,spring 不应该被混同于传统的重量级的 ejb 容器,它们经 常是庞大与笨重的,难以使用。 8 框架spring 可以将简单的组件配置、组合成为复杂的应用。在 spring 中, 应用对象被声明式地组合,典型地是在一个 xml 文件里。spring 也提供了很多基础功 能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。 2. .4 ajax ajax 即“asynchronous

24、javascript and xml”(异步 javascript 和 xml),ajax 并 非缩写词,而是由 jesse james gaiiett 创造的名词,是指一种创建交互式网页应用的网 页开发技术。这个术语源自描述从基于网页的 web 应用到基于数据的应用的转换。在 基于数据的应用中,用户需求的数据如联系人列表,可以从独立于实际网页的服务端取 得并且可以被动态地写入网页中,给缓慢的 web 应用体验着色使之像桌面应用一样。 2.4.1 几种技术 1 javascript 名字所示,ajax 的概念中最重要而最易被忽视的是它也是一种 javascript 编程语 言。javascri

25、pt 是一种粘合剂使 ajax 应用的各部分集成在一起。在大部分时间, javascript 通常被服务端开发人员认为是一种企业级应用不需要使用的东西应该尽力避 免。这种观点来自以前编写 javascript 代码的经历:繁杂而又易出错的语言。类似的, 它也被认为将应用逻辑任意地散布在服务端和客户端中,这使得问题很难被发现而且代 码很难重用。在 ajax 中 javascript 主要被用来传递用户界面上的数据到服务端并返回 10 结果。xmlhttprequest 对象用来响应通过 http 传递的数据,一旦数据返回到客户端 就可以立刻使用 dom 将数据放到网面上。 2 xmlhttpre

26、quest xmlhttprequest 对象在大部分浏览器上已经实现而且拥有一个简单的接口允许数 据从客户端传递到服务端,但并不会打断用户当前的操作。使用 xmlhttprequest 传送 的数据可以是任何格式,虽然从名字上建议是 xml 格式的数据。 开发人员应该已经熟悉了许多其他 xml 相关的技术。xpath 可以访问 xml 文档 中的数据,但理解 xml dom 是必须的。类似的,xslt 是最简单而快速的从 xml 数 据生成 html 或 xml 的方式。许多开发人员已经熟悉 xpath 和 xslt,因此 ajax 选 择 xml 作为数据交换格式是有意义的。xslt 可以

27、被用在客户端和服务端,它能够减 少大量的用 javascript 编写的应用逻辑。 3 css 为了正确的浏览 ajax 应用,css 是一种 ajax 开发人员所需要的重要武器。css 提供了从内容中分离应用样式和设计的机制。虽然 css 在 ajax 应用中扮演至关重要 的角色,但它也是构建跨浏览器应用的一大阻碍,因为不同的浏览器厂商支持各种不同 的 css 级别。 4 服务器端 但不像在客户端,在服务端 ajax 应用还是使用建立在如 java,.net 和 php 语言基 础上机制;并没有改变这个领域中的主要方式。 3 系统分析 3 3. .1 1 系系统统需需求求分分析析 本系统针对

28、校内网的实际需求,通过具体的需求分析,而设计出来的。本系统采用 ssh(struts-hibernate-spring)架构进行设计和开发,建设了 b/s 模式的三层体系结构。 采用 myeclipse 作为主要的开发工具,sql server 2005 作为后台数据库,tomcat 作为 web 服务器。本系统还适当地使用了 web2.0 技术-ajax,用异步传输的方式来增强用户 体验。用户可以进行注册、登录、留言及寻找好友等操作。 3 3. .2 2 系系统统功功能能分分析析 1 注册功能 用户可通过唯一账号在完成基本信息(密码、生日、性别等)填写后,注册为校内网 会员。方可使用校内网提

29、供的功能。 11 2 登陆功能 校内网注册用户可凭唯一账号和密码登陆校内网,以使用其提供的功能。 3 个人资料 用户可编辑个人资料,上传个人头像。 4 日志 用户可创建日志分类,发表日志,查看、编辑和删除已发表日志,查看日志已阅读 数,评论数及评论,可对日志发表评论。 5 相册 用户可创建相册,上传相片,浏览相片,对相片添加描述,对相片进行评论。 6 留言 用户可发表留言,查看留言,查看留言回复。 7 状态留言 用户可发表状态留言,查看状态留言及其回复。 8 好友 用户可查看好友列表,根据好友姓名,学校,工作单位等信息搜索好友,可对特定 人请求加为好友。 9 通知 用户可查看最新通知,如好友请

30、求消息,未查看留言,未查看状态回复,未查看日 志、相册和分享的评论。 10 分享 用户可分享好友的相册,日志,可查看自己的分享。 11 好友访问 用户可查看最近访问者,查看已访问人数。 12 安全中心 用户可修改现有密码,创建或修改密保问题及答案,用户可在此找回密码。 13 访问好友 用户可访问好友主页,可浏览好友相册、日志及分享,并可分享及评论;可查看好 友状态,并对状态进行评论;可给好友留言,并对好友留言进行回复。 14 退出 用户在完成各项操作后可选择退出系统。 3 3. .3 3 系系统统功功能能模模块块结结构构图图 通过以上对系统功能的分析,可对系统功能进行模块划分,系统功能模块结构

31、图如 图 3-1 所示。 12 。 校内网 学 日 志 管 理 课 个 人 资 料 注 好 友 帮 通 知 通 用 户 注 册 教 相 册 管 理 信 状 态 毕 留 言 通 用 户 登 陆 课 分 享 帮 好 友 访 问 帮 访 问 好 友 帮 安 全 中 心 帮 退 出 图 3-1 系统功能模块结构图 4 数据库设计 4 4. .1 1 数数据据库库设设计计 1 ren(表 4-1) ren 表用于存放注册用户的账号,密码,姓名,性别,生日,家乡,所在地,头像 路径等基本信息,以及学校信息,工作信息,兴趣爱好,联系方式等。 表 4-1 ren表 列名数据类型长度可否为空描述备注 u_idi

32、ntnot null标识列主键 u_accountnvarchar20not null账号唯一 u_passnvarchar20not null密码 u_namenvarchar20not null姓名 u_birthnvarchar23not null生日 u_sexbitnot null性别 u_addreint故乡外键 u_homeint所在地外键 u_head_imgnvarchar50头像路径 u_gradeint等级 13 u_famousint好友访问量 u_work_unitnvarchar工作单位 u_work_positionnvarchar职位 u_work_entry_

33、timenvarchar入职时间 u_work_tradeint行业外键 u_collint大学外键 u_coll_deptint院系外键 u_coll_entry_timeint入学年份外键 u_highint高中 u_high_entry_yearint入学年份外键 u_high_class_firint高一班级 u_high_class_secint高二班级 u_high_class_thiint高三班级 u_techint中专技校 u_tech_entry_yearint入学年份外键 u_juniint初中 u_juni_entry_yearint入学年份外键 u_elemint小学

34、u_elem_entry_yearint入学年份外键 u_qqnvarchar20qq 号码 u_msnnvarchar20msn 号码 u_telephonenvarchar20联系方式 u_websitenvarchar20个人网站 u_secu_qnvarchar20密保问题 u_secu_anvarchar20密保答案 u_hobbynvarcharmax兴趣爱好 u_musicnvarcharmax喜爱音乐 14 u_movienvarcharmax喜爱电影 u_gamenvarcharmax喜爱游戏 u_cartoonnvarcharmax喜爱动漫 u_sportnvarcharm

35、ax喜爱运动 u_booknvarcharmax喜爱书籍 u_reg_datedatetime注册时间 2 blog(表 4-2) blog 表用于存放注册用户所写的日志信息,包括日志标题,日志内容,编辑日志时 间,日志所属分类以及日志所属人。 表 4-2 blog表 列名数据类型长度可否为空描述备注 blog_idintnot null标识列主键 blog_uintnot null日志所输人外键 blog_subjectnvarchar50not null日志题目 blog_contentnvarcharmaxnot null日志内容 blog_timedatetimenot null创建时

36、间 blog_cateintnot null日志分类外键 blog_read_countintnot null日志阅读数 3 blog_category(表 4-3) blog_category 表用于存放注册用户所写的日志的分类,用户可自己添加分类。 表 4-3 blog_category表 列名数据类型长度可否为空描述备注 blog_cate_idintnot null标识列主键 blog_cate_namenvarchar20not null分类名 blog_cate_uint所属人外键 4 blog_reply(表 4-4) 15 blog_reply 表用于存放注册用户所写的日志的回

37、复,包括回复者,回复内容,回复 时间,所属日志,状态。 表 4-4 blog_reply表 列名数据类型长度可否为空描述备注 brep_idintnot null标识列主键 brep _uintnot null回复者外键 brep_blogintnot null所属日志外键 brep _contentnvarcharmaxnot null回复内容 brep _timedatetimenot null回复时间 brep _statusbitnot null查看状态 5 city(表 4-5) city 表用于存储城市列表,包括城市名及所属省份。 表 4-5 city表 列名数据类型长度可否为空描

38、述备注 city_idintnot null标识列主键 city_namenvarchar20not null城市名 city_proint所属省份外键 6 college(表 4-6) college 表用于存储大学列表,包括大学名及所在省市。 表 4-6 college表 列名数据类型长度可否为空描述备注 coll_idintnot null标识列主键 coll _namenvarchar20not null大学名 coll _proint所在省市外键 7 department(表 4-7) department 表用于存储大学院系列表。 表 4-7 department表 16 列名数据

39、类型长度可否为空描述备注 dept_idintnot null标识列主键 dept_namenvarchar50not null院系名 8 coll_dept(表 4-8) coll_dept 表用于存储大学与院系的映射。 表 4-8 coll_dept表 列名数据类型长度可否为空描述备注 coll_dept_idintnot null标识列主键 dept_idintnot null院系外键 coll_idintnot null大学外键 9 highschool(表 4-9) highschool 表用于存储高中列表,包括高中名及所在省市。 表 4-9 highschool表 列名数据类型长度

40、可否为空描述备注 high_idintnot null标识列主键 high_namenvarchar50not null高中名 high_provintnot null所在省市外键 10 tech_seco_school(表 4-10) tech_seco_school 表用于存储中专技校列表,包括中专技校名及所在省市。 表 4-10 tech_seco_school表 列名数据类型长度可否为空描述备注 tech_idintnot null标识列主键 tech _namenvarchar50not null中专技校名 tech _provintnot null所在省市外键 11 juni_hi

41、ghschool(表 4-11) juni_highschool 表用于存储初中列表,包括初中名及所在省市。 17 表 4-11 juni_highschool表 列名数据类型长度可否为空描述备注 juni_idintnot null标识列主键 juni _namenvarchar50not null初中名 juni _provintnot null所在省市外键 12 elementary_school(表 4-12) elementary_school 表用于存储小学列表,包括小学名及所在省市。 表 4-12 elementary_school表 列名数据类型长度可否为空描述备注 elem_

42、idintnot null标识列主键 elem _namenvarchar50not null小学名 elem _provintnot null所在省市外键 13 message(表 4-13) message 表用于存储留言列表,包括留言人,留言对象,留言内容,留言时间,留 言状态。 表 4-13 message表 列名数据类型长度可否为空描述备注 mess_idintnot null标识列主键 mess_uintnot null留言者外键 mess_rece_uintnot null留言对象外键 mess_contentnvarcharmaxnot null留言内容 mess_timeda

43、tetimenot null留言时间 mess_statusbitnot null查看状态 14 mess_reply(表 4-14) 18 mess_reply 表用于存储留言回复列表,包括回复者,所属留言 id,回复内容,回复时 间,回复状态。 表 4-14 mess_reply表 列名数据类型长度可否为空描述备注 mrep_idintnot null标识列主键 mrep _uintnot null回复者外键 mrep_messintnot null所属留言外键 mrep _contentnvarcharmaxnot null回复内容 mrep _timedatetimenot null回

44、复时间 mrep _statusbitnot null查看状态 15 province(表 4-15) province 表用于存储省份列表。 19 表 4-15 province表 列名数据类型长度可否为空描述备注 prov_idintnot null标识列主键 prov_namenvarchar20not null省市名 16 trade(表 4-16) trade 表用于存储行业列表。 表 4-16 trade表 列名数据类型长度可否为空描述备注 trade_idintnot null标识列主键 trade_namenvarchar20not null行业名 17 year(表 4-17

45、) year 表用于存储年份列表。 表 4-17 year表 列名数据类型长度可否为空描述备注 year_idintnot null标识列主键 year_namenvarchar20not null年份 18 status(表 4-18) status 表用于存储状态留言列表,包括状态所属人,状态留言内容,留言时间。 表 4-18 status表 列名数据类型长度可否为空描述备注 stat_idintnot null标识列主键 stat _uintnot null状态发表者外键 stat _contentnvarcharmaxnot null状态内容 stat _timedatetimenot

46、 null发表时间 19 status_reply(表 4-19) 20 status_reply 表用于存储状态留言回复列表,包括回复者,所属状态留言 id,回复内 容,回复时间,回复状态。 表 4-19 status_reply表 列名数据类型长度可否为空描述备注 srep_idintnot null标识列主键 srep _uintnot null状态回复者外键 srep_statintnot null所属状态外键 srep _contentnvarcharmaxnot null回复内容 srep _timedatetimenot null回复时间 srep _statusbitnot n

47、ull查看状态 20 friend(表 4-20) friend 表用于存储好友的映射。 表 4-20 friend表 列名数据类型长度可否为空描述备注 friend_idintnot null标识列主键 friend_u_firintnot null用户 1外键 friend_u_secintnot null用户 2外键 friend_statusbitnot null好友状态 21 friend_request(表 4-21) friend_request 表用于存储好友的请求,包括发送请求者,请求对象,请求信息,请 求时间。 表 4-21 friend_request表 列名数据类型长度

48、可否为空描述备注 freq_idintnot null标识列主键 freq _orintnot null请求者外键 freq _objintnot null请求对象外键 freq _messnvarchar50not null请求信息 21 freq_timedatetimenot null请求时间 22 photo(表 4-22) photo 表用于存放注册用户所上传的相片信息,包括相片路径,相片描述,上传相 片时间,相片所属相册以及相片所属人。 表 4-22 photo表 列名数据类型长度可否为空描述备注 photo_idintnot null标识列主键 photo _uintnot nu

49、ll相片所属者外键 photo _srcnvarchar50not null相片路径 photo _describenvarcharmaxnot null相片描述 photo _upload_timedatetimenot null上传时间 photo _cateintnot null所属相册外键 23 photo_category(表 4-23) photo_category 表用于存放注册用户所上传的相片的分类,用户可自己添加分类。 表 4-23 photo_category表 列名数据类型长度可否为空描述备注 photo_cate_idintnot null标识列主键 photo _ca

50、te_namenvarchar20not null相册名 photo _cate_uint所属者外键 24 photo_reply(表 4-24) photo_reply 表用于存放注册用户所上传的相片的回复,包括回复者,回复内容,回 复时间,状态。 表 4-24 photo_reply表 列名数据类型长度可否为空描述备注 prep_idintnot null标识列主键 prep _uintnot null回复者外键 prep_photointnot null所属相片外键 22 prep _contentnvarcharmaxnot null回复内容 prep _timedatetimenot

51、 null回复时间 prep _statusbitnot null查看状态 25 share(表 4-25) share 表用于存储分享的日志或相册。 表 4-25 share表 列名数据类型长度可否为空描述备注 share_idintnot null标识列主键 share _uintnot null分享者外键 share _objintnot null分享对象外键 share _typeintnot null分享类型 share_timedatetimenot null分享时间 26 share_reply(表 4-26) share_reply 表用于存放注册用户所分享日志或相册的回复,包

52、括回复者,回复内容, 回复时间,状态。 表 4-26 share_reply表 列名数据类型长度可否为空描述备注 srep_idintnot null标识列主键 srep _uintnot null分享回复者外键 srep_shareintnot null所属分享外键 srep _contentnvarcharmaxnot null回复内容 srep _timedatetimenot null回复时间 srep _statusbitnot null查看状态 27 visit(表 4-27) visit 表用于存放用户访问好友的时间。 23 表 4-27 visit表 列名数据类型长度可否为空描

53、述备注 visit_idintnot null标识列主键 visit _orintnot null访问者外键 visit _objintnot null访问对象外键 visit _timedatetimenot null访问时间 4.2 数数据据库库概概念念结结构构设设计计 从用户角度进行视图设计,本系统采用 er 模型来表述数据模型。er 模型如图 4- 1,图 4-2,图 4-3,图 4-4 所示。 图 4-1 er 图 1 24 图 4-2 er 图 2 图 4-3 er 图 3 25 图 4-4 er 图 4 5 系统设计与实现 5 5. .1 1 开开发发工工具具与与环环境境 本系统

54、采用 myeclipse7.5 作为系统的前台开发环境,sql server 2005 作为后台数据 库开发,tomcat6.0 作为 web 服务器。 1 开发工具:myeclipse7.5 myeclipse 企业级工作平台(myeclipse enterprise workbench ,简称 myeclipse)是 对 eclipse ide 的扩展,利用它我们可以在数据库和 javaee 的开发、发布,以及应用程 序服务器的整合方面极大的提高工作效率。它是功能丰富的 javaee 集成开发环境,包 括了完备的编码、调试、测试和发布功能,完整支持 html, struts, jsf, c

55、ss, javascript, sql, hibernate。 2 后台数据库:sql server 2005 sql server 2005 enterprise edition(32 位和 64 位) enterprise edition 达到了支持超大型企业进行联机事务处理(oltp)、高度复杂 的数据分析、数据仓库系统和网站所需的性能水平。enterprise edition 的全面商业智能 和分析能力及其高可用性功能(如故障转移群集),使它可以处理大多数关键业务的 企业工作负荷。enterprise edition 是最全面的 sql server 版本,是超大型企业的理想 选择,能

56、够满足最复杂的要求。该版本还推出了一种适用于 32 位或 64 位平台的 120 天 evaluation edition。 3 web 服务器:tomcat6.0 26 tomcat 是 apache 软件基金会(apache software foundation)的 jakarta 项目中的一 个核心项目,由 apache、sun 和其他一些公司及个人共同开发而成。由于有了 sun 的参 与和支持,最新的 servlet 和 jsp 规范总是能在 tomcat 中得到体现,tomcat 6 支持最新 的 servlet 2.5 和 jsp 2.1 规范。因为 tomcat 技术先进、性能

57、稳定,而且免费,因而深受 java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的 web 应用服 务器。 5 5. .2 2 各各模模块块设设计计与与实实现现 5.2.1 注册 1 说明 注册模块要求用户输入有效信息,包括账号,密码,姓名,性别,生日及验证码, 通过 javascript 进行有效性验证,其中账号通过 ajax 判断是否已存在。若用户输入数据 不合要求,则在光标离开文本框时返回错误信息,提示用户修改。 各项信息填写符合要求后,点击注册即执行操作,完成注册。 2 注册界面如图 5-1。 27 图 5-1 注册界面图 3 关键代码 部分 javascript 验证代

58、码: function checkaccount() var accounttip = document.getelementbyid(accounttip); var account = document.reg.account.value; accounttip.innerhtml=; accounttip.classname=checkdivstyle0; var isaccount = true; 28 if(account.length 0 accounttip.classname=checkdivstyle2; return false; if(account.length 5 f

59、or(i = 0; i= 0 if(isaccount = false) accounttip.innerhtml=请输入6-10位字母或数字; accounttip.classname=checkdivstyle2; return false; else accounttip.innerhtml=yes; return true; return false; function haolejiaowo(isexist) var accounttip = document.getelementbyid(accounttip); if(isexist = 1) accounttip.innerht

60、ml=此账号已经存在; accounttip.classname=checkdivstyle2; return; 29 else if(isexist = 0) 5.2.2 登陆 1 说明 登陆模块要求用户输入账号和密码,通过判断转入用户主页或返回登陆页面。若 用户忘记密码,可点击“忘记密码?”转到安全中心通过密保问题和密保答案找回密 码。若用户未注册,可在此转入注册页面。 2 登陆界面如图 5-2 所示。 图 5-2 登陆界面图 3 关键代码 页面代码: loginaction 代码: public actionforward execute(actionmapping mapping, a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论