




已阅读5页,还剩47页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本本科科毕毕业业 设设计计(论论文文 ) 成成 果果 材材 料料 ( 2014 届届 ) 题 目: 塔里木旅游网的设计和实现 专 业: 班 级: 姓 名: 学 号: 指导教师: 职 称: 完成日期: I 摘摘 要要 塔里木盆地具有丰富的旅游资源,有很多风景优美的景点。但是传统的旅游宣传模 式严重制约了旅游业的发展。随着互联网技术的发展,利用网络来进行旅游资源的宣传, 不失为一种强有力的措施。为了顺应社会发展趋势,塔里木旅游网站的建设也就成了一 项重要的工作。 正是基于有这样的需求,我们利用成熟的 SSH 框架,使用 JAVA、JSP、JS 等流行的 开发语言,结合微软公司发布的 SQLSERVER 2008 R2 数据库,开发了一套集成有动态的 景区信息发布和展示,风景优美的热门旅游线路的分享,天气提醒等一系列功能的塔里 木旅游网站。 本文将从软件设计的角度,从前期的需求调研开始,到需求分析,技术方案选型, 网站设计,编码,到后期的测试和维护,系统地、详细地叙述塔里木旅游网站的详细设 计和开发过程。 关键字:关键字:塔里木旅游网;SSH 框架;软件设计;详细设计 II Abstract Tarim Basin is rich in tourism resources, there are many scenic spots in it. But the traditional tourism promotion pattern seriously restricted the tourism industry. With the development of Internet technology, to make use of tourism resources network propaganda, is a powerful measure. In order to conform to the trend of social development, the construction of the tourism website has become an important work. It is based on such demand, we use maturity framework which named SSH, and we use JAVA, JSP, JS and other popular development languages, combined with the Microsoft Corp released the SQLSERVER 2008 R2 database, developed a set of Integrated Publication and display of dynamic information of the scenic spots, beautiful scenery of the popular tourist routes to share, a series of function of weather alert the Tarim tourism website. This article from the perspective of software design, from the early beginning of the requirement investigation, requirement analysis, scheme selection, design, coding, testing and maintenance of late, the system, detailed design and development in detail the process of the Tarim tourism website. KeyWords: the Tarim tourism website;framework of SSH; software design; detail design 1 目录 摘摘 要要.I ABSTRACT .II 1 绪论绪论 3 1.1 课题背景与意义.3 1.2 旅游业现状分析.3 1.3 塔里木旅游网站开发目的及意义.4 1.4 本章小结.5 2 2 系统需求分析系统需求分析 6 2.1 可行性分析.6 2.2 功能需求分析.6 2.3 系统模块划分.6 2.4 数据库需求分析.7 2.5 本章小结.7 3 3 系统概要设计系统概要设计 8 3.1 技术方案选型.8 3.2 系统概念结构设计.11 3.3 数据库逻辑结构设计.12 3.4 系统结构设计.12 3.5 本章小结13 4 4 系统详细设计系统详细设计 14 4.1 系统功能模块的划分.14 4.2 系统流程图16 4.3 数据库表结构17 4.4 系统部分模块源代码.19 4.6 本章小结.41 5 5 系统测试系统测试 .42 5.1 系统测试和结论42 2 5.2 本章小结.45 6 6 总结总结 46 致致 谢谢 47 参考文献参考文献 48 3 1 绪论绪论 1.11.1 课题背景课题背景与意义与意义 近几年来信息技术的快速发展给传统的旅游业带来了很大的冲击。在过去的传统旅 游中,信息的不发达和落后,已经是越来越不能够满足消费者的要求了,把旅游业进行 信息化的改革的呼声已经越来越高。那么是什么是旅游业的信息化呢?一般说来是利用 现代的计算机技术,信息技术等相关的高手段及现代的传播媒体资源、旅游信息资源、 旅游生产要素等资源进行深层次的管理、分配、组合、加工、传播、销售,以促进传统 旅游业向现代旅游业的发展,加快旅游业的发展,提高旅游业的生产效率等。 塔里木盆地的旅游资源非常丰富,但是旅游业的信息化基础建设一直是比较滞后的。 如何快速合理的开发丰富的旅游资源,管理纵多的旅游信息,以及强化旅游质量和意识, 吸引海内外的广大的游客,更好的为旅客提供满意的服务显得很重要。所以要开发一个 旅游服务的网站系统,是广大的群众和国内外旅游者所期待的。在网络技术发展到今天, 随着 WEB2.0 时代的到来,JAVA、JSP、AJAX 等技术逐渐成熟,使得开发一个现代具有互 联网等相关功能的旅游信息系统不再需要重复耗费巨大的财力和物力,在有效整合现有 web 服务的基础上,就能够在较短的时间内开发出功能完善的、适合于不同地区的旅游 信息系统了。旅游信息主要是利用现代计算机技术,通信技术和其他高科技手段和现代 传媒技术,对旅游资源、交通资源、地理资源等进行深层次的挖掘,组合加工,资源整 合,改造传统旅游促进现代旅游业,加快现代旅游业的发展步伐,提高旅游业的生产力。 从安全性和易维护性考虑,选择了 WEB 实现技术,简单的说,就是将系统做成一种 B/S 模式,可以让用户通过浏览器直接访问位于服务器上的试题以及对系统进行远程维护, 避免了 C/S 模式中的安装调试困难,需要专门的技术人员维护等困难。 1.21.2 旅游业旅游业现状分析现状分析 目前有许多中型的旅游管理部门仍依靠原始的人工方式采用电子文档、电子表格等 (例如 WORD、EXCEL,或者简单的 ACCESS 数据库)来对旅游信息进行管理,大部分旅行 社也无自己的旅游网站,无法在现在这个网络时代接受客户的网上预定。随着业务的不 断扩展,旅行社业务操作中涉及的各种收费情况、客户情况以及旅游线路情况越来越复 4 杂,业务操作人员若仅靠手工方式处理处理大量资料,则遗漏信息的现象更容易发生, 同时也可能带来出错率的增长以及大量资源的浪费和闲置等问题。因此,只有加强对旅 游部门信息资源的整合、统一管理,才能使行业更加合理、高效地运转。现行的旅游信 息管理模式的问题主要体现在如下几个方面: (1)各类旅游信息查询速度慢,工作强度大。旅游信息中牵涉到游客资料、导游信息、 费用、线路、景点、酒店等等大量的资料,用人工方式进行整理汇总时,速度慢、工作 繁琐、易出错。 (2)各类资源之间调配难度大。由于信息面广,信息量大,因此要对其中某些资源进 行统一管理、调配是需要花费大量的人工。 (3)相当一部分资源缺少一定的保护,处于不安全的状态,许多信息容易泄露。 (4)对于客户的服务要求反应慢。基于上面的原因,对于客户提出的服务要求,势必 不能做出快捷的反应。 (5)缺少服务质量反馈的统一管理和对于旅行的宝贵经验不能有效的分享。 1.31.3 塔里木旅游网站塔里木旅游网站开发目的及意义开发目的及意义 塔里木盆地的旅游资源非常丰富,但是旅游业的信息化基础建设一直是比较滞后。 究其主要原因就是在网络信息高度发达的现代社会中,仍采用旅行社推广活动、纸质媒 体宣传等传统的旅游营销模式。没有专门的网站、微博等当前比较先进的宣传模式。为 了改变这一现状,就需要顺应时代发展的潮流,有针对性的对塔里木地区的丰富旅游资 源进行在线展示。让人们拿起手机、电脑就能感受到塔里木盆地优美风景的召唤。 旅游性质的网站、旅游电子商务网站,从互联网络开始,到已经小具规模的今天, 已经从单一的景点静态页的介绍发展到多元化的局面。从一定程度上来说,旅游业信息 化的发展,基本朝向三个大的方面,一是介绍性服务网站,其中包含旅游景点的介绍, 旅行团的介绍和周边衣食住行的攻略介绍等。二是服务在线预定网站,它基本上于多家 旅游窗口为媒介,通过强强联合来发展自身,游客可以注册后,直接在网上预定机票、 酒店、景点等信息。即使在家里,也可以将行程从动身到回返安排得稳妥,更加方便了 民众的需求,深受欢迎。 与此同时,也可以检验一下自己在四年以来的学习成果,为不如工作岗位积累一些 系统开发的经验。 5 1.4.4 本章小结本章小结 本章从分析塔里木盆地旅游业信息化建设的现状开始,综合现在互联网上的旅游业信 息化发展的现状和动态,以及结合未来旅游也信息化发展的方向,总结了信息化建设对 旅游业发展的影响,提出了旅游业的信息化建设的重要性和必要性。 6 2 2 系统需求分析系统需求分析 2.2.1 1 可行性分析可行性分析 实用性原则:旅游网站建设成功,可以方便的展示旅游资源,民众也能方便的利用 手中的资源,方便的查看旅游资讯,不再受到时间、空间、天气等诸多外接因素的限制。 同时还可以方便大众分享旅游经验,为其他人提供借鉴,打消旅游之前的不必要的顾虑, 提升了旅游业的发展。 经济性原则:旅游网站的建设,可以方便、快捷、全面的展示丰富多彩的旅游资源, 可利用图文、视频等各种形象的手段展示旅游资源,打破了传统宣传模式的限制。建成 之后,可以减少传统宣传手段的人力物力的投入,而且,现在已经具备了十分成熟的网 站开发技术,有丰富的集成插件资源,使得网站开发的成本大幅度降低。所以旅游网站 的开发可以大幅度降低旅游宣传和展示的投入。 扩充性原则:系统的整体规划及框架设计是具可扩充性的,系统在设计开发中充分 考虑了移植、扩展的问题。这是每个系统都要考虑的重要问题。分层,细化模块可以很 好的解决将来系统扩展中不改变基本架构的同时增加功能。前台页面的设计能保证系统 在更新后不会破坏系统的整体结构。 在技术上来说,使用现在十分流行和成熟的 SPRING+HIBERNATE+STRUCTS 框架, 采用 JAVA+JSPJS 软件开发语言来开发一个网站系统,已经具备了十分成熟的技术, 也已经有了相当数量的和规模的前例。在开发难度上,系统安全性的考虑上,都符合相 关的标准。 2 2.2.2 功能需求分析功能需求分析 在经过发现、求精、建摸、规格说明和复审这一套流程下来,从宏观角度调查、分 析用户所面临的问题,我们对系统的功能有了一个初步的规划,确定了塔里木旅游网的 基本功能属性,主要是以新闻信息发布为主,配合旅游游客的经验分享等。要进行新闻 发布,就牵涉到用户信息的维护,用户所在部门的维护,权限的维护。 2 2.3.3 系统模块划分系统模块划分 根据以上的需求分析,对模块进行划分 1:用户管理模块 2:新闻信息发布模块 3: 7 用户权限划分模块 1:在用户模块当中,可以灵活地,分权限管理用户的所有信息,包括用户的角色, 部门,所拥有的菜单权限等等; 2:新闻信息发布模块:用户登录进系统之后,可以根据自己所拥有的权限,在相关 的新闻板块中发布新闻。 3:用户权限划分模块:在这个模块当中,有权限的用户可以控制所有用户所拥有的 权限,通过权限划分,控制每个用户自己能做的事情。 2.2.4 4 数据库需求分析数据库需求分析 针对以上的功能分析,对数据库进行初步分析,认为数据库需要有下列表结构: (1) 用户信息,存储所有用户的信息; (2) 部门信息,存储用户部门的信息(根据数据库设计第二范式,把用户信息和 部门信息分开存放) ; (3) 权限信息:及角色信息,存放用户的角色; (4) 菜单信息:存放所有的菜单信息; (5) 角色和菜单的关联:存放哪些角色可以有哪些菜单; (6) 角色和人员的关联:存放哪些人具有哪些角色; (7) 新闻信息:存放所有发布的新闻。 2.52.5 本章小结本章小结 本章主要从塔里木旅游网的可行性分析入手,分析了技术、经济等可行性之后,得出 此系统可以实现的结论之后,再通过问卷和访谈的形式,对系统的潜在用户进行了调查, 得出了系统的基本模块的功能。在此基础上,再通过建模,得出了数据库的基本需求。 8 3 3 系统概要设计系统概要设计 3.13.1 技术方案选型技术方案选型 通过自己掌握的技术和对现行 B/S 架构的 WEB 系统的主流语言的综合考虑,选择了 以下技术方案。 (1)Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架 的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应 用程序开发提供集成的框架。Spring 框架的功能可以用在任何 J2EE 服务器中,大多数 功能也适用于不受管理的环境。Spring 的核心要点是:支持不绑定到特定 J2EE 服务的 可重用业务和数据访问对象。这样的对象可以在不同 J2EE 环境(WEB 或 EJB )、独立 应用程序、测试环境之间重用。 图 3-1 Spring 架构 组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模 块联合实现。每个模块的功能如下: 核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory ,它是工厂模式的实现。BeanFactory 使用控制反转 (IOC ) 模式将应用 程序的配置和依赖性规范与实际的应用程序代码 分开。 Spring 上下文:Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。 Spring 上下文包括企业服务,例如 JNDI 、EJB、电子邮件、国际化、校验和调度功能。 Spring AOP : 通过配置管理特性,Spring AOP 模块直接将面向方面的编程 功能集 成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP 9 。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP ,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。 Spring DAO :JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理 异常处理和不同数据库 供应商抛出的错误消息。异常层次结构简化了错误处理,并且极 大地降低了需要编写 的异常代码数量(例如打开和关闭连接)。Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。 Spring ORM :Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系 工具,其中包括 JDO 、Hibernate 和 iBatis SQLMap 。所有这些都遵从 Spring 的通用事 务和 DAO 异常层次结构。 (2)structs2 框架:Struts 2 相对于 Struts 1.X ,将实现用户业务逻辑(Action )同 Servlet API 分离开,这种分离机制,是采用了拦截器或者拦截器栈(拦截器链)。拦截 器是 Struts 2 的核心内容之一。 Struts 2 内建了多个拦截器和拦截器栈(由多个拦截器形成的拦截器链),将用户的 Web 请求进行拦截处理,从而提供了更加丰富的功能,例如数据类型转换、国际化、文 件上传等。 图 3-2 structs2 框架 10 (3)Hibernate 框架:Hibernate 是一个开放源代码 的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思 维来操纵数据库。Hibernate 可以应用在任何使用 JDBC 的场合,既可以在 Java 的客户 端程序使用,也可以在 Servlet/JSP 的 Web 应用中使用,最具革命 意义的是,Hibernate 可以在应用 EJB 的 J2EE 架构中取代 CMP ,完成数据持久化的重任。 图 3-3 Hibernate 框架 Hibernate 的核心接口一共有 5 个,分别为:Session 、SessionFactory 、Transaction 、Query 和 Configuration 。这 5 个核心接口在任何开发中都会用到。 通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这五个 核心接口分别加以介绍。 Session 接口:Session 接口负责执行被持久化对象的 CRUD 操作(CRUD 的任务是完 成与数据库的交流,包含了很多常见的 SQL 语句。) 。但需要注意的是 Session 对象是 非线程安全的。同时,Hibernate 的 session 不同于 JSP 应用中的 HttpSession 。这里 当使用 session 这个术语时,其实指的是 Hibernate 中的 session ,而 以后会将 HttpSesion 对象称为用户 session 。 SessionFactory 接口:SessionFactory 接口负责初 始化 Hibernate 。它充当数据 存储源的代理,并负责创建 Session 对象。这里用到了工厂模式。需要注意的是 SessionFactory 并不是轻量级的,因为一般情况下,一个项目通常只需要一个 SessionFactory 就够,当需要操作多个数据库时,可以为每个数据库指定一个 11 SessionFactory 。 Configuration 接口:Configuration 接口负责配置并启动 Hibernate ,创建 SessionFactory 对象。在 Hibernate 的启动的过程中,Configuration 类的实例首先定 位映射文档位置、读取配置,然后创建 SessionFactory 对象。 Transaction 接口:Transaction 接口负责事务相关的操作。它是可选的,开发人员 也可以设计编写自己的底层事务处理代码。 Query 和 Criteria 接口:Query 和 Criteria 接口负责执行各种数据库查询。它可 以使用 HQL 语言或 SQL 语句两种表达方式。 3.23.2 系统系统概念结构设计概念结构设计 根据前面所作的需求分析本系统的实体及其属性如下: 用户 (用户名,密码,关联的部门,关联的权限) 部门 (编号,名称,职责,上级部门,下级部门) 权限 (角色名称,角色类别,角色说明) 菜单 (菜单编号,菜单链接,上级菜单,菜单名称) 新闻 (标题,内容,发布时间,发布人等) 实体之间的 E-R 关系图如下所示: 图 3-1 系统 E-R 图 12 3.33.3 数据库逻辑结构设计数据库逻辑结构设计 本系统数据库名暂命名为 TarimTravel。根据需求分析设计了如图 2-2 所示的数据 库结构。在数据库中建立了相关的表结构,其中系统数据对象由系统自动产生,用户数据 对象和管理员数据对象是由设计人员根据需要设计。 图 3-2 数据库结构图 3 3.4.4 系统结构设计系统结构设计 本系统分为后台数据库系统和前台网站系统两部分。后台作为数据控制,前台作 为数据显示。后台数据库TarimTravel主要包括7个数据表。 a) 存储用户信息的userinfo; b) 存储部门信息的department; c) 存储角色信息的role; d) 存储发布新闻的信息的news; e) 存储存储新闻类别的webtype; f) 存储权限和菜单关系的roleformenu; 13 g) 存储用户权限的roleforuser; 前台ASP网站系统结构包括: a) jy文件夹中的jsp文件夹中存放的是外网显示的所有页面; b) WEB-INF中主要是关于网站的各种配置文件,以及框架中需要的jar包文件; c) Widget文件夹中是网站需要的各种中间件; d) CSS子目录下存放层叠样式表文件,规范网页的总体风格。 3 3.5.5 本章小结本章小结 本章在前一章的基础上,简要的设计出了系统的大概功能模块,数据库需要的表, 各个表之间的关系,以及系统的大概功能模块和代码的初步结构规划。 14 4 4 系统详细设计系统详细设计 4.14.1 系统功能模块的划分系统功能模块的划分 4.1.1 前台功能模块图 旅游网站 本站首页 旅游景点 旅游地图 景点展示 旅游新闻 旅游新闻 图 4-1 前台功能模块图 4.1.2 系统后台功能模块图 管理员后台登录 部门管理 新闻管理 用户管理 权限管理 图 4-2 后台功能模块图 4.1.3 用户管理模块图 用户管理包括用户添加,用户修改,用户删除等功能。用户管理功能模块图如图 4-2 所示。 15 用户管理 用户添加用户的删除用户删除 图 4-3 用户管理模块图 4.1.4 部门管理模块图 试卷管理模块主要是对试卷进行添加、删除、修改。 部门管理 部门添加部门修改部门删除 图 4-4 部门管理模块图 4.1.5 角色管理模块图 学生管理模块主要是对学生进行查询、删除,可以对学生的成绩情况进行查看。 角色管理 角色添加角色修改角色删除给角色分菜单 图 4-5 角色管理模块图 4.1.6 新闻管理模块图 新闻管理子模块通过对可以通过对新闻类别的维护,然后在相应的新闻类型下面发 布相关的新闻,是外网展示相关新闻的数据源。 本模块共分为添加新闻、删除新闻、新闻修改以及新闻类别维护四个功能模块。 16 新闻管理 新闻添加新闻修改新闻删除新闻类别维护 图 4-6 系统成绩管理模块图 4.24.2 系统流程图系统流程图 4.2.1 用户注册流程图 此模块是添加新的用户,填写用户个人基本信息,包括姓名、性别等,设定个人的 原始密码,并添加到用户信息库中。 图 4-7 系统注册流程图 4.2.2 用户登录流程图 该模块包括 login.jsp 文件。如果用户要使用为注册用户提供的功能,那么在使用之前 必须登录。用户只要输入用户名、密码就可以了。若用户输入的以上两项与数据库中保 存的相符,则表明用户登录成功,可以开放全部前台子系统;如果不符,则登录失败。 模块执行流程如图 4-8 所示。其中管理员、用户登录模块执行流程类似。 17 图 4-8 系统用户登录流程图 4.34.3 数据库表结构数据库表结构 4.3.1 用户信息表:userinfo 数据表结构如表 4-1 所示 表 4-1 userinfo 数据表结构 字段名字段类型类型说明字段含义 idint整型ID,自动编号 帐号varchar字符型用户名 密码varchar字符型口令 部门varchar字符型关联部门 科室varchar字符型用户所在科室 姓名varchar字符型用户真实姓名 性别varchar字符型用户性别 手机varchar字符型用户联系方式 4.3.2 菜单表:menu 数据表结构如表 4-2 所示 表 4-2 menu 数据表结构 字段名字段类型类型说明字段含义 18 idint整型ID,自动编号 菜单名称varchar字符型菜单名称 上级菜单varchar字符型上级菜单 菜单链接varchar字符型菜单链接 菜单状态varchar字符型菜单状态 菜单类别varchar字符型菜单类别 排序字段Varchar字符型排序字段 4.3.3 角色表:role 表 4-3 所示 表 3-3 role 数据表结构 字段名字段类型类型说明字段含义 idint整型ID,自动编号 ROLENAMEvarchar字符型角色名字 ROLETYPEvarchar字符型角色类型 ROLETYPENAMEvarchar字符型类型名称 REMARKvarchar字符型备注 4.3.4 角色关联用户表:roleforuser 数据表结构如表 4-4 所示 表 4-4 roleforuser 数据表结构 字段名字段类型类型说明字段含义 idint整型ID,自动编号 ROLEIDvarchar字符型角色编号 USERIDvarchar字符型用户编号 4.3.5 角色关联菜单表:roleforrmenu 数据表结构如表 4-5 所示 表 4-5 roleforrmenu 数据表结构 字段名字段类型类型说明字段含义 idint整型ID,自动编号 MENUIDvarchar字符型菜单编号 ROLEIDvarchar字符型角色编号 4.3.6 新闻表:news 数据表结构如表 4-6 所示 表 3-6 news 数据表结构 字段名字段类型类型说明字段含义 idint整型ID,自动编号 TITLEvarchar字符型题目 CONTENTvarchar字符型内容 FILEIDvarchar字符型关联的附件编号 ISSHOWvarchar字符型是否在外网显示 LEVELvarchar字符型新闻优先级别 MYTYPEvarchar字符型新闻类别 ORDERBYvarchar字符型排序 19 4.3.7 部门表:department 数据表结构如表 4-2 所示 表 4-2 department 数据表结构 字段名字段类型类型说明字段含义 idint整型ID,自动编号 DEPALLNAMEvarchar字符型部门名称 DEPNOvarchar字符型部门编号 DEPTYPEvarchar字符型部门类型 FIDvarchar字符型上级部门 DEPFUNCTIONvarchar字符型部门职能 TELVarchar字符型部门电话 4.3.8 数据库关系图 图 4-9 数据库关系图 4.44.4 系统部分模块源代码系统部分模块源代码 4.4.1 系统注册登录模块源代码 (一)页面 jsp 代码 塔里木旅游网 用户登录 用户名: 密 码: function check() 21 if(document.getElementById(“txtUname“).value=“) alert(“请输入用户名!“); return false; if(document.getElementById(“pwdPassword“).value=“) alert(“请输入密码!“); return false; return true; (二)后台处理代码 public String login() throws Exception UserInfoVO vo = null;/ 用户信息 UserInfoVO vo2 = null;/ 登录信息 try vo2 = form.getUserVO(); if (vo2.getLoginName() = null | vo2.getPassword() = null) form.setViewmsg(“请重新登录!“); form.setGotopage(“/jy/login/index.jsp“); else String str = Common.MD5Encrypt(vo2.getPassword(); vo2.setPassword(str.trim(); vo2.setEnabled(“0“);/ 登陆的用户必须是启用的 vo2.setJctype(“0“); vo = userService.getUser(vo2); if (Common.isnull(vo) form.setViewmsg(“用户名或者密码不存在!“); return no(); vo.setLoginDateTime(DateHelper.getNowDate(DateHelper.DATETIME); vo.setSystemtype(vo2.getSystemtype(); HttpSession session = this.servletRequest.getSession(); session.setMaxInactiveInterval(-1); session.removeAttribute(“userinfo“); session.setAttribute(“userinfo“, vo); catch (Exception e) e.printStackTrace(); throw e; setLogin(); 22 return yes(); 4.4.2 用户维护模块源代码 (一)页面 jsp 代码 “ / tr height: 30px; var isExtendsValidate = true;/如果要试用扩展表单验证的话,该属性一定要申明 function extendsValidate() if($(#pass1).val()=$(#pass2).val() if(validateSql(“select count(id) from USERINFO where loginname=“+$(#userVO_loginName).val()+“)=0)/匹配成功 $(#userVO_loginName).validate_callback(null,“sucess“); else/匹配失败 $(#userVO_loginName).validate_callback(“登录名已存在“,“failed“); return false; else $(#pass1).validate_callback(null,“failed“); $(#pass2).validate_callback(null,“failed“); return false; 23 新增用户 登 陆 名: 用户姓名: 密 码: * 24 密码确认: * 所属科室: 排 序: 性 别: 手机号码: 角 色: 25 保 存 返 回 function toback() window.location.href=“/user!listUser.action?isrf=1 (二)后台处理代码 public String saveUser() throws Exception UserInfoVO vo = form.getUserVO(); try vo.setPassword(Common.MD5Encrypt(vo.getPassword(); userService.saveUser(vo); form.setViewmsg(“保存成功!“); catch (Exception e) e.printStackTrace(); throw e; return action(); 26 public String saveUser(UserInfoVO vo) throws Exception UserInfoPO po = new UserInfoPO(); List rolelist = vo.getRolelist(); RoleForUserPO rpo = null; try MyBeanUtils.copyProperties(po, vo); userDao.save(po); if (!Common.isnull(rolelist) / 添加用户的角色 for (RoleVO rvo : rolelist) rpo = new RoleForUserPO(); rpo.setRoleid(rvo.getPid(); rpo.setUserid(po.getPid(); userDao.save(rpo); catch (Exception e) throw e; return po.getPid(); 4.4.3 部门管理模块源代码 (一)页面 jsp 代码 “ / 27 tr height: 30px; 新增部门 部门编码: 部门名称: 28 部门电话: 排 序: 部门类型: 部门职能: 保 存 29 (二)后台处理 java 代码 /* * 新增部门、科室 */ public String saveDep() throws Exception DepartmentVO vo = form.getDepVO(); try depService.saveDep(vo); form.setViewmsg(“保存成功“); catch (Exception e) e.printStackTrace(); throw e; return yes(); public void saveDep(DepartmentVO vo) throws Exception DepartmentPO po = new DepartmentPO(); try MyBeanUtils.copyProperties(po, vo); /* 如果增加的是科室则添加科室包括父级单位的全名 */ if (“0“.equals(po.getDeptype() DepartmentPO temppo = (DepartmentPO) depDao.findBypid( DepartmentPO.class, po.getFid(); po .setDepAllName(temppo.getDepAllName() + “/“ + po.getDepname(); /* 如果是科室,部门编号等于父级单位的部门编号 */ DepartmentPO fdep = (DepartmentPO) depDao.findBypid( DepartmentPO.class, po.getFid(); po.setParentDepId(fdep.getParentDepId(); /* 所有父级单位的PID组合 */ po.setParents(Common.delNullString(temppo.getParents() + “,“ + temppo.getPid(); else if (“1“.equals(po.getDeptype() /* 如果是部门,则allname为他自己 */ po.setDepAllName(po.getDepname(); /* 如果是部门,则部门编号是他自己的PID */ po.setParentDepId(po.getPid(); po.setParents(“); depDao.save(po); 30 / 重新排序 List orderList = null; if (“1“.equals(po.getDeptype() /* 同级单位排序 */ orderList = (List) depDao.listPo( DepartmentPO.class, “orderby“, “deptype“, po .getDeptype(); else if (“0“.equals(po.getDeptype() /* 同级单位排序 */ orderList = (List) depDao.listPo( DepartmentPO.class, “orderby“, “fid“, po.getFid(); /* 同级单位排序 */ this.updateDepOrder(orderList); catch (Exception e) throw e; 4.4.4 角色管理模块源代码 (1)为角色添加用户的 jsp 代码 31 返回 function sub1() var ckids = roleleft.document.getElementsByName(“ckids“); var flg = false; for(var i=0;i (二)为角色添加菜单 JSP 代码 list = (ArrayList) request.getAttribute(“list“); % 34 d1 = new dTree(d1,delmenu); d1.config.folderLinks=true; /id, pid, name, url, title, target, icon, iconOpen, open d1.add(,); document.write(d1); 35 4.4.5 发布新闻模块源代码 (一)发布新闻的 JSP 代码 新增新闻 36 标题: 重要程度: 文章来源: 发布时间: “ readonly=“true“ / 前台显示: 标题图片: 37 “预览 有效时间: 至 优先显示级别: 类别: 类别: 38 所属地区: 附件上传: 上传内容: 39 内容: function toback() window.location.href=“/news!listNews.action?isrf=1 function lookimg() var fileid = document.all(“newsVO.fileid“); cknewsimg(fileid.value); function ckform() if(cksubmit() document.getElementById(“newsVO_content“).value=eWebEditor.getHTML(); return true; return false; function isedit(v) if(v=“0“) 40 document.all.edit.style.display=“block“; document.all.word.style.display=“none“; else document.all.edit.style.display=“none“; document.all.word.style.display=“block“; (二)后台处理代码 /* * 新增 */ public String saveNews() throws Exception NewsVO vo = form.getNewsVO(); try vo.setRecorduser(super.userid); vo.setRecorddep(super.depid); String newsid = newsService.saveNews(vo); /* 在线编辑器里面的附件单独关联 */ List webeditorFileidList = (List) servletRequest .getSession().getAttribute(“webeditorFileidList“); if (webeditorFileidList != null servletRequest.getSession().removeAttribute( “webeditorFileidList“); form.setViewmsg(“保存成功!“); catch (Exception e) e.printStackTrace(); throw e; return action(); /* * 保存 */ Transactional public String saveNews(NewsVO newsVO) throws Exception 41 String pid = “; try NewsPO newsPO = (NewsPO)newsDao.findByfield(NewsPO.class, “title“, newsVO.getTitle(); if (Common.isnull(newsVO.getTimestart() newsVO.setTimestart(“0000-00-00“); if (Common.isnull(newsVO.getTimeend() newsVO.setTimeend(“9999-99-99“); if(newsPO=null) newsPO = new NewsPO(); MyBeanCopier.copyProperties(newsPO, newsVO); newsDao.save(newsPO); pid = newsPO.getPid(); List list = newsVO.getListfiles(); if (!Common.isnull(newsVO.getListfiles() for (UpFilesVO fvo : list) NewsFilePO po = new NewsFilePO(); po.setFileid(fvo.getPid(); po.setNewsid(pid); newsDao.save(po); else newsVO.setId(newsPO.getId(); newsVO.setPid(newsPO.getPid(); MyBeanCopier.copyProperties(newsPO, newsVO); newsDao.update(newsPO); pid = newsPO.getPid(); catch (Exception e) e.printStackTrace(); throw e; return pid; 4.64.6 本章小结本章小结 本章在前面概要设计的基础上,通过对系统的功能模块的划分以及用户的逻辑操纵 42 流程上入手,设计了具体的数据库和相关的编码工作,初步实现了在线习题系统的所有 功能,完成了塔里木旅游网的绝大部分工作。 43 5 5 系
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年无机电子材料项目建议书
- 2025年GPS汽车定位、监控报警、调度系统项目发展计划
- 数字化教育资源对教学效果的影响研究
- 2025届河南省荥阳高中高二物理第二学期期末质量检测模拟试题含解析
- 企业内部培训中的智慧教育平台应用
- 智慧安防在校园公共空间的应用探讨
- 教育技术创新的探索与实践培育卓越人才
- 中职数学异面直线课件
- 教育心理学的跨领域应用与创新实践
- 教育科技企业的质量保障与竞争力提升
- 模拟电子技术基础知到章节答案智慧树2023年兰州石化职业技术大学
- JJF 1915-2021倾角仪校准规范
- GA/T 1310-2016法庭科学笔迹鉴定意见规范
- 2023年本科招生考试
- 新入职护士培训考试试题及答案
- 《消防安全技术实务》课本完整版
- 北师大版七年级数学下册 与信息技术相融合的数学教学案例 教案
- 钝针穿刺法临床应用护理
- 水产养殖行业报告
- 锅炉MFT供电回路的分析
- 公共基础知识辅导课件
评论
0/150
提交评论