本科毕业设计-塔里木旅游网的设计和实现.doc
本科毕业设计(论文)成 果 材 料( 2014 届 )题 目: 塔里木旅游网的设计和实现 专 业: 班 级: 姓 名: 学 号: 指导教师: 职 称: 完成日期: 2摘 要塔里木盆地具有丰富的旅游资源,有很多风景优美的景点。但是传统的旅游宣传模式严重制约了旅游业的发展。随着互联网技术的发展,利用网络来进行旅游资源的宣传,不失为一种强有力的措施。为了顺应社会发展趋势,塔里木旅游网站的建设也就成了一项重要的工作。正是基于有这样的需求,我们利用成熟的SSH框架,使用JAVA、JSP、JS等流行的开发语言,结合微软公司发布的SQLSERVER 2008 R2数据库,开发了一套集成有动态的景区信息发布和展示,风景优美的热门旅游线路的分享,天气提醒等一系列功能的塔里木旅游网站。本文将从软件设计的角度,从前期的需求调研开始,到需求分析,技术方案选型,网站设计,编码,到后期的测试和维护,系统地、详细地叙述塔里木旅游网站的详细设计和开发过程。关键字:塔里木旅游网;SSH框架;软件设计;详细设计IAbstractTarim 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 designII目录摘 要IABSTRACTII1 绪论31.1 课题背景与意义31.2 旅游业现状分析31.3 塔里木旅游网站开发目的及意义41.4 本章小结52 系统需求分析62.1 可行性分析62.2 功能需求分析62.3 系统模块划分62.4 数据库需求分析72.5 本章小结73 系统概要设计83.1 技术方案选型83.2 系统概念结构设计113.3 数据库逻辑结构设计123.4 系统结构设计123.5本章小结134 系统详细设计144.1 系统功能模块的划分144.2系统流程图164.3数据库表结构174.4 系统部分模块源代码194.6 本章小结415系统测试425.1系统测试和结论425.2 本章小结456 总结46致 谢47参考文献481 绪论1.1 课题背景与意义近几年来信息技术的快速发展给传统的旅游业带来了很大的冲击。在过去的传统旅游中,信息的不发达和落后,已经是越来越不能够满足消费者的要求了,把旅游业进行信息化的改革的呼声已经越来越高。那么是什么是旅游业的信息化呢?一般说来是利用现代的计算机技术,信息技术等相关的高手段及现代的传播媒体资源、旅游信息资源、旅游生产要素等资源进行深层次的管理、分配、组合、加工、传播、销售,以促进传统旅游业向现代旅游业的发展,加快旅游业的发展,提高旅游业的生产效率等。塔里木盆地的旅游资源非常丰富,但是旅游业的信息化基础建设一直是比较滞后的。如何快速合理的开发丰富的旅游资源,管理纵多的旅游信息,以及强化旅游质量和意识,吸引海内外的广大的游客,更好的为旅客提供满意的服务显得很重要。所以要开发一个旅游服务的网站系统,是广大的群众和国内外旅游者所期待的。在网络技术发展到今天,随着WEB2.0时代的到来,JAVA、JSP、AJAX等技术逐渐成熟,使得开发一个现代具有互联网等相关功能的旅游信息系统不再需要重复耗费巨大的财力和物力,在有效整合现有 web 服务的基础上,就能够在较短的时间内开发出功能完善的、适合于不同地区的旅游信息系统了。旅游信息主要是利用现代计算机技术,通信技术和其他高科技手段和现代传媒技术,对旅游资源、交通资源、地理资源等进行深层次的挖掘,组合加工,资源整合,改造传统旅游促进现代旅游业,加快现代旅游业的发展步伐,提高旅游业的生产力。 从安全性和易维护性考虑,选择了WEB实现技术,简单的说,就是将系统做成一种B/S模式,可以让用户通过浏览器直接访问位于服务器上的试题以及对系统进行远程维护,避免了C/S模式中的安装调试困难,需要专门的技术人员维护等困难。1.2 旅游业现状分析目前有许多中型的旅游管理部门仍依靠原始的人工方式采用电子文档、电子表格等(例如WORD、EXCEL,或者简单的ACCESS数据库)来对旅游信息进行管理,大部分旅行社也无自己的旅游网站,无法在现在这个网络时代接受客户的网上预定。随着业务的不断扩展,旅行社业务操作中涉及的各种收费情况、客户情况以及旅游线路情况越来越复杂,业务操作人员若仅靠手工方式处理处理大量资料,则遗漏信息的现象更容易发生,同时也可能带来出错率的增长以及大量资源的浪费和闲置等问题。因此,只有加强对旅游部门信息资源的整合、统一管理,才能使行业更加合理、高效地运转。现行的旅游信息管理模式的问题主要体现在如下几个方面: (1)各类旅游信息查询速度慢,工作强度大。旅游信息中牵涉到游客资料、导游信息、费用、线路、景点、酒店等等大量的资料,用人工方式进行整理汇总时,速度慢、工作繁琐、易出错。 (2)各类资源之间调配难度大。由于信息面广,信息量大,因此要对其中某些资源进行统一管理、调配是需要花费大量的人工。 (3)相当一部分资源缺少一定的保护,处于不安全的状态,许多信息容易泄露。 (4)对于客户的服务要求反应慢。基于上面的原因,对于客户提出的服务要求,势必不能做出快捷的反应。 (5)缺少服务质量反馈的统一管理和对于旅行的宝贵经验不能有效的分享。1.3 塔里木旅游网站开发目的及意义塔里木盆地的旅游资源非常丰富,但是旅游业的信息化基础建设一直是比较滞后。究其主要原因就是在网络信息高度发达的现代社会中,仍采用旅行社推广活动、纸质媒体宣传等传统的旅游营销模式。没有专门的网站、微博等当前比较先进的宣传模式。为了改变这一现状,就需要顺应时代发展的潮流,有针对性的对塔里木地区的丰富旅游资源进行在线展示。让人们拿起手机、电脑就能感受到塔里木盆地优美风景的召唤。旅游性质的网站、旅游电子商务网站,从互联网络开始,到已经小具规模的今天,已经从单一的景点静态页的介绍发展到多元化的局面。从一定程度上来说,旅游业信息化的发展,基本朝向三个大的方面,一是介绍性服务网站,其中包含旅游景点的介绍,旅行团的介绍和周边衣食住行的攻略介绍等。二是服务在线预定网站,它基本上于多家旅游窗口为媒介,通过强强联合来发展自身,游客可以注册后,直接在网上预定机票、酒店、景点等信息。即使在家里,也可以将行程从动身到回返安排得稳妥,更加方便了民众的需求,深受欢迎。与此同时,也可以检验一下自己在四年以来的学习成果,为不如工作岗位积累一些系统开发的经验。1.4 本章小结本章从分析塔里木盆地旅游业信息化建设的现状开始,综合现在互联网上的旅游业信息化发展的现状和动态,以及结合未来旅游也信息化发展的方向,总结了信息化建设对旅游业发展的影响,提出了旅游业的信息化建设的重要性和必要性。2 系统需求分析2.1 可行性分析实用性原则:旅游网站建设成功,可以方便的展示旅游资源,民众也能方便的利用手中的资源,方便的查看旅游资讯,不再受到时间、空间、天气等诸多外接因素的限制。同时还可以方便大众分享旅游经验,为其他人提供借鉴,打消旅游之前的不必要的顾虑,提升了旅游业的发展。经济性原则:旅游网站的建设,可以方便、快捷、全面的展示丰富多彩的旅游资源,可利用图文、视频等各种形象的手段展示旅游资源,打破了传统宣传模式的限制。建成之后,可以减少传统宣传手段的人力物力的投入,而且,现在已经具备了十分成熟的网站开发技术,有丰富的集成插件资源,使得网站开发的成本大幅度降低。所以旅游网站的开发可以大幅度降低旅游宣传和展示的投入。扩充性原则:系统的整体规划及框架设计是具可扩充性的,系统在设计开发中充分考虑了移植、扩展的问题。这是每个系统都要考虑的重要问题。分层,细化模块可以很好的解决将来系统扩展中不改变基本架构的同时增加功能。前台页面的设计能保证系统在更新后不会破坏系统的整体结构。在技术上来说,使用现在十分流行和成熟的SPRING+HIBERNATE+STRUCTS框架,采用JAVA+JSPJS软件开发语言来开发一个网站系统,已经具备了十分成熟的技术,也已经有了相当数量的和规模的前例。在开发难度上,系统安全性的考虑上,都符合相关的标准。2.2 功能需求分析在经过发现、求精、建摸、规格说明和复审这一套流程下来,从宏观角度调查、分析用户所面临的问题,我们对系统的功能有了一个初步的规划,确定了塔里木旅游网的基本功能属性,主要是以新闻信息发布为主,配合旅游游客的经验分享等。要进行新闻发布,就牵涉到用户信息的维护,用户所在部门的维护,权限的维护。2.3 系统模块划分根据以上的需求分析,对模块进行划分1:用户管理模块2:新闻信息发布模块3:用户权限划分模块1:在用户模块当中,可以灵活地,分权限管理用户的所有信息,包括用户的角色,部门,所拥有的菜单权限等等;2:新闻信息发布模块:用户登录进系统之后,可以根据自己所拥有的权限,在相关的新闻板块中发布新闻。 3:用户权限划分模块:在这个模块当中,有权限的用户可以控制所有用户所拥有的权限,通过权限划分,控制每个用户自己能做的事情。2.4 数据库需求分析 针对以上的功能分析,对数据库进行初步分析,认为数据库需要有下列表结构:(1) 用户信息,存储所有用户的信息;(2) 部门信息,存储用户部门的信息(根据数据库设计第二范式,把用户信息和部门信息分开存放);(3) 权限信息:及角色信息,存放用户的角色;(4) 菜单信息:存放所有的菜单信息;(5) 角色和菜单的关联:存放哪些角色可以有哪些菜单;(6) 角色和人员的关联:存放哪些人具有哪些角色;(7) 新闻信息:存放所有发布的新闻。2.5 本章小结 本章主要从塔里木旅游网的可行性分析入手,分析了技术、经济等可行性之后,得出此系统可以实现的结论之后,再通过问卷和访谈的形式,对系统的潜在用户进行了调查,得出了系统的基本模块的功能。在此基础上,再通过建模,得出了数据库的基本需求。3 系统概要设计3.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 。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框架(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 就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory 。 Configuration 接口:Configuration 接口负责配置并启动Hibernate ,创建SessionFactory 对象。在Hibernate 的启动的过程中,Configuration 类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory 对象。 Transaction 接口:Transaction 接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。 Query 和Criteria 接口:Query 和Criteria 接口负责执行各种数据库查询。它可以使用HQL 语言或SQL 语句两种表达方式。3.2 系统概念结构设计根据前面所作的需求分析本系统的实体及其属性如下:用户 (用户名,密码,关联的部门,关联的权限)部门 (编号,名称,职责,上级部门,下级部门)权限 (角色名称,角色类别,角色说明)菜单 (菜单编号,菜单链接,上级菜单,菜单名称)新闻 (标题,内容,发布时间,发布人等)实体之间的E-R关系图如下所示:图3-1系统E-R图3.3 数据库逻辑结构设计 本系统数据库名暂命名为TarimTravel。根据需求分析设计了如图2-2所示的数据库结构。在数据库中建立了相关的表结构,其中系统数据对象由系统自动产生,用户数据对象和管理员数据对象是由设计人员根据需要设计。图3-2 数据库结构图3.4 系统结构设计 本系统分为后台数据库系统和前台网站系统两部分。后台作为数据控制,前台作为数据显示。后台数据库TarimTravel主要包括7个数据表。a) 存储用户信息的userinfo;b) 存储部门信息的department;c) 存储角色信息的role;d) 存储发布新闻的信息的news;e) 存储存储新闻类别的webtype;f) 存储权限和菜单关系的roleformenu;g) 存储用户权限的roleforuser;前台ASP网站系统结构包括:a) jy文件夹中的jsp文件夹中存放的是外网显示的所有页面;b) WEB-INF中主要是关于网站的各种配置文件,以及框架中需要的jar包文件;c) Widget文件夹中是网站需要的各种中间件;d) CSS子目录下存放层叠样式表文件,规范网页的总体风格。3.5本章小结本章在前一章的基础上,简要的设计出了系统的大概功能模块,数据库需要的表,各个表之间的关系,以及系统的大概功能模块和代码的初步结构规划。4 系统详细设计4.1 系统功能模块的划分4.1.1前台功能模块图旅游网站本站首页旅游景点旅游地图景点展示旅游新闻旅游新闻图4-1 前台功能模块图4.1.2 系统后台功能模块图管理员后台登录部门管理新闻管理用户管理权限管理图4-2 后台功能模块图4.1.3 用户管理模块图用户管理包括用户添加,用户修改,用户删除等功能。用户管理功能模块图如图4-2所示。用户管理用户添加用户的删除用户删除图4-3用户管理模块图4.1.4 部门管理模块图试卷管理模块主要是对试卷进行添加、删除、修改。部门管理部门添加部门修改部门删除图4-4部门管理模块图4.1.5角色管理模块图学生管理模块主要是对学生进行查询、删除,可以对学生的成绩情况进行查看。角色管理角色添加角色修改角色删除给角色分菜单图4-5角色管理模块图4.1.6 新闻管理模块图新闻管理子模块通过对可以通过对新闻类别的维护,然后在相应的新闻类型下面发布相关的新闻,是外网展示相关新闻的数据源。本模块共分为添加新闻、删除新闻、新闻修改以及新闻类别维护四个功能模块。新闻管理新闻添加新闻修改新闻删除新闻类别维护图4-6系统成绩管理模块图4.2系统流程图4.2.1 用户注册流程图此模块是添加新的用户,填写用户个人基本信息,包括姓名、性别等,设定个人的原始密码,并添加到用户信息库中。图4-7系统注册流程图4.2.2 用户登录流程图该模块包括login.jsp文件。如果用户要使用为注册用户提供的功能,那么在使用之前必须登录。用户只要输入用户名、密码就可以了。若用户输入的以上两项与数据库中保存的相符,则表明用户登录成功,可以开放全部前台子系统;如果不符,则登录失败。模块执行流程如图4-8所示。其中管理员、用户登录模块执行流程类似。图4-8系统用户登录流程图4.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 数据表结构字段名字段类型类型说明字段含义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字符型排序4.3.7部门表:department数据表结构如表4-2所示表 4-2 department 数据表结构字段名字段类型类型说明字段含义idint整型ID,自动编号DEPALLNAMEvarchar字符型部门名称DEPNOvarchar字符型部门编号DEPTYPEvarchar字符型部门类型FIDvarchar字符型上级部门DEPFUNCTIONvarchar字符型部门职能TELVarchar字符型部门电话4.3.8 数据库关系图图4-9数据库关系图4.4 系统部分模块源代码4.4.1系统注册登录模块源代码(一)页面jsp代码<% page language="java" pageEncoding="UTF-8"%><%page contentType="text/html; charset=GBK"%><!DOCTYPE html PUBLIC "-/W3C/DTD XHTML 1.0 Transitional/EN" "http:/www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><meta charset="utf-8"><title>塔里木旅游网</title><link rel="stylesheet" href="/jy/jsp/css/public.css" type="text/css"></link><link rel="stylesheet" href="/jy/jsp/css/main.css" type="text/css"></link><link rel="stylesheet" href="/jy/jsp/css/column.css" type="text/css"></link></head><body><jsp:include page="/jy/jsp/include/top.jsp"></jsp:include> <div id="main"><!-main begin-><div class="pubbox"><div class="login page" style="width:342px; height:190px; border:#a00000 1px solid; margin:20px auto; padding:20px 0;"><h2 style="line-height:30px;">用户登录</h2><form action="/webAction!login.action" method="post" name="loginForm"><center><table><tr><td>用户名:</td><td><input type="text" id="txtUname" name="account" size="20" /></td></tr><tr><td>密 码:</td><td><input type="password" id="pwdPassword" name="password" size="20" /></td></tr><tr><td colspan="2" style="text-align:center;"><input type="submit" id="btnLogin" value="登 陆" onclick="return check();"/><input type="button" id="btnLogin" value="注 册" onclick="window.location.href='/jy/jsp/registCon.jsp'"/></td></tr></table></center></form> </div><div class="c15"></div></div> </div> <jsp:include page="/jy/jsp/include/bottom.jsp"></jsp:include><script type="text/javascript">function check()if(document.getElementById("txtUname").value="")alert("请输入用户名!");return false;if(document.getElementById("pwdPassword").value="")alert("请输入密码!");return false;return true;</script></body></html>(二)后台处理代码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();return yes();4.4.2用户维护模块源代码(一)页面jsp代码<%page contentType="text/html; charset=GBK"%><% taglib prefix="s" uri="/struts-tags"%><% taglib uri="/WEB-INF/mytag.tld" prefix="my"%><%String path = request.getContextPath();String basePath = request.getScheme() + ":/" + request.getServerName() + ":" + request.getServerPort() + path + "/"%><jsp:include