资源描述
北京化工大学北方学院毕业设计(论文)诚信申明本人申明:我所呈交的本科毕业设计(论文)是本人在导师指导下对四年专业知识而进行的研究工作及全面的总结。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中创新处不包含其他人已经发表或撰写过的研究成果,也不包含为获得北京化工大学或其它教育机构的学位或证书而已经使用过的材料。与我一同完成毕业设计(论文)的同学对本课题所做的任何贡献均已在文中做了明确的说明并表示了谢意。若有不实之处,本人承担一切相关责任。本人签名: 年 月 日高校迎新工作服务管理系统的设计与实现院用户模块、一卡通用户模块摘要高校迎新工作服务管理系统是一个基于Internet,采用B/S(Browser/Server,浏览器/服务器模式)模式,并根据现有的迎新管理系统的现状而设计开发的服务于高校开展迎新工作的信息化平台。论文首先介绍了高校迎新工作服务管理系统的现状及开发背景,然后论述了系统的设计目标,系统需求和总体设计方案,较详细的论述了系统的详细设计和实现。本文以JAVA为开发技术,实现了一个迎新管理系统。该迎新管理系统分为管理员部分、学院(部门)最高权限用户部分、学院内迎新负责人(学院超级管理员)部分。系统实现了学院(部门)管理、学院内工作人员管理、新生院系报到管理、新生班主任指定、新生一卡通发放管理等功能;系统将以上功能进行拆分,使用户根据权限的不同,各施其职。在设计方面,系统采用B/S三层结构,同时使用JAVAWEB技术进行动态页面的设计,从系统的安全性和代码的可重用性方面考虑,运用SSH框架进行程序开发。后台数据库选用SQLServer2005数据库。关键词: B/S结构JSPSSHSQLServer2005高校管理系统The Design and Implementation of University Enroll System Academy module , Card center moduleAbstractThe management system serving the freshmen is a information platform. The platform , which is designed and developed according to the existing management system, is based on the Internet, and it uses the B/S (Browser/Server, the Browser/Server mode) mode.Firstly, the paper introduces the present situation and development background of colleges and universities management system. Secondly , the paper discusses the goal , demand and the overall design of this system, then it gives a description of the details and the implementation.This paper introduces a new management system which uses JAVA as the development technology. The new management system is divided into administrator part, the supreme authority user of the college (department), the internal officer of the college who is responsible for freshmen (super administrator of the college). The system has many functions, including the college (department) management, personnel management, freshmen enrolling management, head teacher designated and one-card issued management. The system will split above functions, and the user will do their work with different permissions. In the design, the system adopts B/S three layer structure, use at the same time JAVAWEB technology of dynamic pages design, from the security of the system and code reusability into consideration, use SSH framework for program development. The backend database choose SQLServer2005 databaseIn terms of design, the system adopts B/S three layer structure, while using the JAVAWEB technology in dynamic page design. Considering the security of the system and the reusability of code, the system use SSH framework for program development. Background database of the system choose SQLServer2005 database.Key words: B/S JSP SSH SQLServer2005 University Management System 目录前言1第1章概述2第1.1节系统说明3第1.2节系统特点3第1.3节系统功能简介4第2章开发环境介绍6第2.1节JSP简介6第2.2节Struts架构技术简介7第2.3节MVC简介11第2.4节SSH框架介绍15第2.5节系统数据库介绍19第2.6节系统运行环境配置21第3章总体设计22第3.1节开发目标22第3.2节功能分析23第3.3节系统结构分析24第3.4节系统E-R图25第3.5节系统用例图26第4章数据库设计29第4.1节数据表的介绍29第4.2节用户模块设计概述32第5章详细设计34第5.1节系统设计及界面34第5.2节系统代码设计38总结40参考文献44致谢45VII前言随着Internet国际互联网的发展,越来越多的高校开始注重信息化对高校内部事务的管理及办事效率发展的有利作用,和对高校管理起到的至关重要性。基于Internet的信息服务,已经成为现代高校一项不可缺少的内容。很多高校都已不满足于纸制化办公及庸散的管理方式。高校需要的是一个功能强大的,能提供完善的管理方式、高速的信息传达速度及精确的信息的信息管理和事务处理系统。随着科技发展和社会进步,尤其是计算机大范围的普及,计算机应用逐渐由海量数据处理转向大规模的事务处理和对工作流的管理,这就产生了以台式计算机为核心,以数据库管理系统为开发环境的管理信息系统,以及在大规模的事务处理和对工作流的管理等方面的应用。开发高校迎新服务管理系统能够使高校迎新工作管理更加规范化、合理化、高效化。能够为高校在迎新工作中节约大量时间和人力物力。JSP是一种网络服务器端编程环境。JSP已经成为开发信息化平台的重要而快速、有效的工具。JSP强大的功能使之成为一种优秀的服务器技术。随着网络技术的日益成熟,JSP技术在网络编程中也变得越来越重要。所以,在我们的毕业设计中,我们采用了JSP作为开发工具,构建了一个能实现高校迎新的工作管理平台高校迎新工作服务管理系统。该系统能系统各级权限用户的管理、新生报到数据的管理、校内院校、班级、专业等信息的管理;能够实现新生分部门进行报到、一卡通发放、分配班级、宿舍等功能。基上体现了一个高校迎新的工作流程及管理方式。通过这次的毕业设计,我了解了目前流行的电子信息化平台构成和运作原理,掌握了用JavaWeb构建动态系统的相关知识和技术原理,锻炼了自己的动手实践能力。更重要的是,通过这次的毕业设计,我培养出了刻苦钻研的学习精神和严肃认真的学习态度,这对我以后的学习和工作有很大的益处。在这次毕业设计过程中,我得到了指导老师的悉心指导和同组成员的通力合作,在此,我对他们表示衷心的感谢!第1章概述随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对各种信息进行管理,具有着手工管理所无法比拟的优点,其中常见的就是高校迎新工作的流程进行管理,因此高校迎新工作服务管理系统就应运而生了。高校迎新工作服务管理系统的用户包括系统管理员、部门(院系)管理员、学院迎负责人、迎新工作人员。系统管理员负责系统部门(院系)管理员的管理工作,如院系管理员的基本信息的录入、修改、删除等操作;部门(院系)管理员主要负责自己所属部门下的用户管理工作,学院迎新负责人则是由部门(院系)管理员指定,其职责是为院系分配书记、辅导员、工作人员等角色的工作,拥有院系统内所有角色的所有角色功能。经过调研与分析,高校迎新工作服务管理系统主要应具有以下功能:(1)系统管理员管理系统管理员管理包括系统管理员的查询、录入、修改与删除等功能。(2)部门(院系)管理员管理部门(院系)管理员管理包括部门(院系)管理员的查询、录入、修改与删除等功能。(3)学院迎新负责人功能学院迎新负责人功能包括对院系统内所有工作人员的管理,本院新生信息查询(新生基本信息查询、新生报到情况信息查询、新生班主任指定功能等迎新功能)。(4)一卡通负责人功能一卡通负责人功能所有新生信息的查询,一卡通部门工作人员信息管理、一卡通发放等迎新功能。(5)一卡通中心工作人员功能一卡通中心工作人员功能包括本院新生信息查询、一卡通发放等迎新功能。(6)院系书记功能院系书记功能包括本院新生信息查询、新生班主任分配,辅导员分配、新生报到情况查询。(7)院系辅导员功能院系辅导员功能包括对本院系新生信息查询,本院系新生报到情况查询,分配宿舍等功能。(8)系统用户操作日志系统用户操作日志包括记录系统所有用户登陆的时间、退出的时间以及其登陆的IP信息。(9)用户密码修改用户密码修改为登陆的用户提供密码修改功能。第1.1节系统说明本系统是一个高校迎新工作服务管理系统,可以为各类用户提供方便的在线信息查询、管理,符合目前国内流行的管理平台模式。用户可以在系统中完成迎新工作等一系列流程操作;管理员可以通过部门管理员等管理功能来对系统进行维护更新、对高校迎新工作服务信息管理调控。第1.2节系统特点(1)本系统完全基于Web技术,只要能连接Internet,就能访问本系统。(2)采用SSH加SQLServer2005开发,具有管理方便,代码简单易懂,体积小巧的特点。(3)可以完全通过网页登录管理系统,维护方便。(4)各种功能模块独立性强,可以根据需要任意组合。(5)具有清新简洁方便的界面,操作简单。(6)支持所有的Windows系列操作系统。(7)支持主流浏览器。第1.3节系统功能简介1.3.1基本功能(1)用户登陆。(2)数据录入。(3)数据查询。(4)数据修改。(5)数据删除。(6)退出系统。1.3.2高级功能系统功能关系图如图1.1所示。(1)系统用户管理。管理员可以对系统用户进行增、删、改、查等操作。(2)新生信息查询。用户可以查询登陆者所属部门(院系)的新生,对新生信息管理。(3)新生院系报到。对于前来报到的学生,只需要调出其基础信息,则可以进行报到处理。(4)新生班主任指定。院系书记为本院系新生指定班主任。(5)新生一卡通领取。一卡通中心工作人员对前来领取一卡通的新生进行一卡通的发放。(6)个人信息修改。登陆后的用户可以修改个人信息。图1.1系统功能关系图第2章开发环境介绍第2.1节JSP简介Java Server Pages(JSP)技术,已成为Web软件开发者们最喜爱的工具。通过JSP,开发者们设计动态网页时可以不必了解其他项目的知识,同时,Web开发者们可以用一个可扩展的标签机制去增强软件成分后台能力。 在延伸发展的过程中通过Java的一致性方法提供更多的支持,以发展支持多种语言的应用软件。Java Server Pages标准标签库规定,在其他的函数中,可以把标签定位成适合自己使用的格式。由上可以看出,本文首先简短地介绍Java Server Pages的技术,这样可以你更好地了解如何利用这些去解决国际化的问题。稍后我讨论的几个关键问题在于发展基于多种语言Web应用,并说明如何解决这些问题通过Java Server Pages,如编码的特性、格式和和对它的分析。 (1)Java Server Pages的技术 Java Server Pages(和一些相关的技术)的构成了Web应用层。 通过JSP,设计者们在网络上能创造动态网页、交互、商业逻辑、数据库和其他一些服务。 网页开发者们利用的JSP技术是由HTML,XML或其他内容有静态XML式的标签,连接软件库的基本软件,以及典型的Java程序语言编写的。 Java技术,尤其重要的是,JavaBeans组件架构(作为通用JSP衔接Java的接口)、Java数据库连接(JDBC)连接SQL数据库,供各种XML库来处理。编辑JSP本身就是把Java代码的编译成Servlets执行。 Servlets是Web服务器的扩展,现已编入相关的服务器,因此执行速度比Scripting语言快。 Servlets直接地用Java语言进行编程并且和JSP页语言常常在一起使用,Servlets充当管理员的角色而JSP作为应用程序的的视图。JavaServer和后台的Servlet处理技术提供了广泛的支持和响应HTTP请求信息以及维修通过Cookies或URL重写。1 使用JSP技术的一个重要原因是,它使网页作者和应用开发工作者们分开。当它是可以直接嵌入到JSP页声明Java时,开发者们已经认识到这是目前最好的选择,避免标签习惯。 (2)Java Server Pages标准标签库 Java Server Pages标准标签库 (JSTL)包含几个方面的习惯行为包括在JSP中常用的功能。标签库借鉴的经验,它的许多方面都取得了发展自己的库,并提供了标准接口,可以依赖的应用软件,他们独立于服务器运行。2除了传统的标签外,JSTL还引入了语言表达,这使在JSP页中进一步降低scripting语言表达,并且标签库有效地限制在JSP网页中使用scripting和标签库。 强化语言文字的表达,并能抑制scripting,已经被并入了JSP2.0规格,因此JSTL只有在JSP1.2中才需要使用只是它们。 2传统的标签主要涉及的领域是: 可变操控。在“核心”库中的一些行动让你定义变量在各种变数范围(页,请求,会议,和应用),除去它们,或使之成为新产生的一页。3 流量控制。“核心”库中的一些行为提供基于流量控制结构-例如引起条件反应的和迭代器-必须消除scripting语言嵌入代码。 URL有关的行动。“核心”库中的一些行为,让JSP入口的内容界定URL,重写URL的形式从内部对外部形式(这可能包括收集资料,追踪信息),或以不同的方式网页。 4XML处理。“XML”库的行为包括分解XML文件并且提取使用XPath表示,基于流量控制XPath表示,用XSLT格式来转换。 进入相关数据库。“SQL”库的一些行为允许Web应用程序去执行简单SQL查询和更新。 在设计基于多种语言的Web应用程序时,你必须首先决定如何确定用户的语言和喜好,如何选择符合这些规定,本节首先介绍了Web应用的外部环境和必须处理的条件。5第2.2节Struts架构技术简介Struts最早是作为Apache Jakarta项目的组成部分问世运作。项目的创立者希望通过对该项目的研究,改进和提高Java Server Pages、Servlet、标签库以及面向对象的技术水准。Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。它的目的是为了减少在运用MVC设计模型来开发Web应用的时间。你仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点,使开发者能更深入的了解其内部实现机制。除此之外,Struts的优点主要集中体现在两个方面:Taglib和页面导航。Taglib是Struts的标记库,灵活动用,能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。关于页面导航,我认为那将是今后的一个发展方向,事实上,这样做,使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。6MVC即Model-View-Controller的缩写,是一种常用的设计模式。MVC 减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。Struts 是MVC的一种实现,它将 Servlet和 JSP 标记(属于 J2EE 规范)用作实现的一部分。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。Struts的工作原理如图2.1所示。图2.1Struts的工作原理Struts框架具有组件的模块化,灵活性和重用性的优点,同时简化了基于MVC的Web应用程序的开发。本章详细讨论Struts架构,我们将看到Struts是如何清晰地区分控制,事务逻辑和外观,从而简化了开发应用程序过程的。我们还将介绍Struts提供的类如何使得开发工作更加简单,这些类包括控制程序流程的类、实现和执行程序事务逻辑的类和自定义的标记库使得创建和验证HTML表单更加容易。 (1)Struts体系结构让我们从MVC角度观察Struts框架中的组件框架中三个部分:模型、视窗和控制器。 模型。在Struts框架中,模型分为两个部分,即系统的内部状态和可以改变状态的操作(事务逻辑),如图2.2所示。 Struts-config.xmlActionForm客户浏览器控制器ActionServlet模型JavaBeanAction视图JSP2.请求填充Form Bean3.将Http请求分发至5.转发Http请求6.Http响应图2.2Struts的工作原理内部状态通常由一组ActinForm JavaBean表示。根据设计或应用程序复杂度的不同,这些Bean可以是自包含的并具有持续的状态,或只在需要时才获得数据(从某个数据库)。7大型应用程序通常在方法内部封装事务逻辑(操作),这些方法可以被拥有状态信息的Bean调用。比如购物车Bean,它拥有用户购买商品的信息,可能还有checkOut()方法用来检查用户的信用卡,并向仓库发定货信息。 小型程序中,操作可能会被内嵌在Action类,它是Struts框架中控制器角色的一部分。当逻辑简单时这个方法很适合。 建议用户将事务逻辑(要做什么)与Action类所扮演的角色(决定做什么)分开。视图。视图由JSP建立,Struts包含扩展自定义标签库,可以简化创建完全国际化用户界面的过程。控制器。Struts中,基本的控制器组件是ActionServlet类中的实例Servelt,实际使用的Servlet在配置文件中由一组映射(由ActionMapping类进行描述)进行定义。(2)Struts框架中所使用的组件Struts框架中所使用的组件包括ActionServlet(控制器)、ActionClass(事务逻辑)、ActionForm(显示模块)、ActionMapping(请求映射)、ActionForward(操作转移)、ActionError(存储和回收错误),详细情况如表2.1所示。8 表2.1Struts包含组件表ActionServlet控制器ActionClass包含事务逻辑ActionForm显示模块数据ActionMapping帮助控制器将请求映射到操作ActionForward用来指示操作转移的对象ActionError用来存储和回收错误Struts标记库可以减轻开发显示层次的工作Struts的MVC图如图 2.3所示。图2.3Struts的MVC图第2.3节MVC简介MVC是三个单词的缩写,分别为:模型(Model)、视图(View)和控制Controller)。 MVC模式的目的就是实现Web系统的职能分工。Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现。View层用于与用户的交互,通常用JSP来实现。 Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。9(1)MVC与模板概念的理解MVC(Model View Controller):模型(Model)视图(View)控制器(Controller),如图2.4所示。 图2.4MVC模型图MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据你可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。 模型视图控制器(MVC)是Xerox PARC在八十年代为编程语言Smalltalk80发明的一种软件设计模式,至今已被广泛使用。最近几年被推荐为Oracle旗下Sun公司Java EE平台的设计模式,并且受到越来越多的使用 ColdFusion 和 PHP 的开发者的欢迎。10(2)MVC如何工作MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。视图。视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Macromedia Flash和象XHTML,XML/XSL,XML等一些标识语言。如何处理应用程序的界面变得越来越有挑战性,MVC一个大的好处是它能为你的应用程序处理很多不同的视图,在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。模型。模型表示学校数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用象EJB和ColdFusion Components这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。控制器。控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。11(3)为什么要使用MVC大部分Web应用程序都是用像ASP,PHP,或者CFML这样的过程化(自PHP5.0版本后已全面支持面向对象模型)语言来创建的。它们将像数据库查询语句这样的数据层代码和像HTML这样的表示层代码混在一起。经验比较丰富的开发者会将数据从表示层分离开来,但这通常不是很容易做到的,它需要精心的计划和不断的尝试。MVC从根本上强制性的将它们分开。尽管构造MVC应用程序需要一些额外的工作,但是它给我们带来的好处是毋庸置疑的。 首先,最重要的一点是多个视图能共享一个模型,现在需要用越来越多的方式来访问你的应用程序。对此,其中一个解决之道是使用MVC,无论你的用户想要Flash界面或是 WAP 界面;用一个模型就能处理它们。由于你已经将数据和业务规则从表示层分开,所以你可以最大化的重用你的代码了。 由于模型返回的数据没有进行格式化,所以同样的构件能被不同界面使用。例如,很多数据可能用HTML来表示,但是它们也有可能要用Adobe Flash和WAP来表示。模型也有状态管理和数据持久性处理的功能。例如,基于会话的购物车和电子商务过程也能被Flash网站或者无线联网的应用程序所重用。 因为模型是自包含的,并且与控制器和视图相分离,所以很容易改变你的应用程序的数据层和业务规则。如果你想把你的数据库从Mysql移植到Oracle,或者改变你的基于RDBMS数据源到LDAP,只需改变你的模型即可。一旦你正确的实现了模型,不管你的数据来自数据库或是LDAP服务器,视图将会正确的显示它们。由于运用MVC的应用程序的三个部件是相互独立,改变其中一个不会影响其它两个,所以依据这种设计思想你能构造良好的松耦合的构件。 对我来说,控制器也提供了一个好处,就是可以使用控制器来联接不同的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段。给定一些可重用的模型和视图,控制器可以根据用户的需求选择模型进行处理,然后选择视图将处理结果显示给用户。12(4)MVC的优点低耦合性。视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。 高重用性和可适用性。随着技术的不断进步,现在需要用越来越多的方式来访问应用程序。MVC模式允许你使用各种不同样式的视图来访问同一个服务器端的代码。它包括任何WEB(HTTP)浏览器或者无线浏览器(wap),比如,用户可以通过电脑也可通过手机来订购某样产品,虽然订购的方式不一样,但处理订购产品的方式是一样的。由于模型返回的数据没有进行格式化,所以同样的构件能被不同的界面使用。例如,很多数据可能用HTML来表示,但是也有可能用WAP来表示,而这些表示所需要的命令是改变视图层的实现方式,而控制层和模型层无需做任何改变。 较低的生命周期成本。MVC使开发和维护用户接口的技术含量降低。 快速的部署。使用MVC模式使开发时间得到相当大的缩减,它使程序员(Java开发人员)集中精力于业务逻辑,界面程序员(HTML和JSP开发人员)集中精力于表现形式上。 可维护性。分离视图层和业务逻辑层也使得WEB应用更易于维护和修改。 有利于软件工程化管理。由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化管理程序代码。13 (5)MVC的缺点MVC的缺点是由于它没有明确的定义,所以完全理解MVC并不是很容易。使用MVC需要精心的计划,由于它的内部原理比较复杂,所以需要花费一些时间去思考。 你将不得不花费相当可观的时间去考虑如何将MVC运用到你的应用程序,同时由于模型和视图要严格的分离,这样也给调试应用程序带来了一定的困难。每个构件在使用之前都需要经过彻底的测试。一旦你的构件经过了测试,你就可以毫无顾忌的重用它们了。 根据开发者经验,由于开发者将一个应用程序分成了三个部件,所以使用MVC同时也意味着你将要管理比以前更多的文件,这一点是显而易见的。这样好像我们的工作量增加了,但是请记住这比起它所能带给我们的好处是不值一提。 MVC并不适合小型甚至中等规模的应用程序,花费大量时间将MVC应用到规模并不是很大的应用程序通常会得不偿失。 MVC设计模式是一个很好创建软件的途径,它所提倡的一些原则,像内容和显示互相分离可能比较好理解。但是如果你要隔离模型、视图和控制器的构件,你可能需要重新思考你的应用程序,尤其是应用程序的构架方面。如果你肯接受MVC,并且有能力应付它所带来的额外的工作和复杂性,MVC将会使你的软件在健壮性,代码重用和结构方面上一个新的台阶。第2.4节SSH框架介绍2.4.1 SSH组成传输层协议 SSH-TRANS,提供了服务器认证,保密性及完整性。此外它有时还提供压缩功能。 SSH-TRANS 通常运行在 TCP/IP连接上,也可能用于其它可靠数据流上。SSH-TRANS提供了强力的加密技术、密码主机认证及完整性保护。该协议中的认证基于主机,并且该协议不执行用户认证。更高层的用户认证协议可以设计为在此协议之上。 用户认证协议 SSH-USERAUTH,用于向服务器提供客户端用户鉴别功能。它运行在传输层协议SSH-TRANS上面。当SSH-USERAUTH开始后,它从低层协议那里接收会话标识符(从第一次密钥交换中的交换哈希H)。会话标识符唯一标识此会话并且适用于标记以证明私钥的所有权。SSH-USERAUTH也需要知道低层协议是否提供保密性保护。 连接协议SSH-CONNECT,将多个加密隧道分成逻辑通道。它运行在用户认证协议上。它提供了交互式登录话路、远程命令执行、转发 TCP/IP 连接和转发 X11 连接。142.4.2 SSH的结构SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.x和2.x。 用SSH 2.x的客户程序是不能连接到SSH 1.x的服务程序上去的。OpenSSH 2.x同时支持SSH 1.x和2.x。 服务端是一个守护进程(Daemon),他在后台运行并响应来自客户端的连接请求。服务端一般是sshd进程,提供了对远程连接的处理,一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接。客户端包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序。 他们的工作机制大致是本地的客户端发送一个连接请求到远程的服务端,服务端检查申请的包和IP地址再发送密钥给SSH的客户端,本地再将密钥发回给服务端,自此连接建立。SSH 1.x和SSH 2.x在连接协议上有一些差异。一旦建立一个安全传输层连接,客户机就发送一个服务请求。当用户认证完成之后,会发送第二个服务请求。这样就允许新定义的协议可以与上述协议共存。连接协议提供了用途广泛的各种通道,有标准的方法用于建立安全交互式会话外壳和转发(“隧道技术”)专有 TCP/IP 端口和 X11 连接。 SSH被设计成为工作于自己的基础之上而不利用超级服务器(inetd),虽然可以通过inetd上的tcpd来运行SSH进程,但是这完全没有必要。启动SSH服务器后,sshd运行起来并在默认的22端口进行监听(你可以用 # ps -waux | grep sshd 来查看sshd是否已经被正确的运行了)如果不是通过inetd启动的SSH,那么SSH就将一直等待连接请求。当请求到来的时候SSH守护进程会产生一个子进程,该子进程进行这次的连接处理。SSH在J2EE项目中表示了3种框架,即Spring + Struts +Hibernate。 Struts对应Model,View和Controller都提供了对应的组件。Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,它由Rod Johnson创建。它是为了解决学校应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,可以应用在任何使用JDBC的场合,可以在Servlet/JSP的Web应用中使用,也可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。152.4.3 Spring简介(1)简介简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。使用Spring的目的是解决应用开发的复杂性,Spring的功能是使用基本的JavaBean代替EJB,并提供了更多的应用功能 ,Spring的使用范围是任何Java应用。 (2)Spring的特点轻量。从大小与开销两方面而言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中的各种模块提供了基础支持。2.4.3 Hibernate介绍(1)简介Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。 (2)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语句两种表达方式。第2.5节系统数据库介绍2.5.1 数据库的概念数据库是以数据(数据就是对客观事物的符号表示,是存储在计算机中的模拟客观事物的一系列信息。对于计算机科学而言,数据的含义极为广泛,凡是可存储的信息,如文本、图象、声音等都可以通过二进制编码而形成数据)为对象,指为了满足某种特定应用的需要,按照一定的数据模型在计算机系统中组织、存储和使用数据的数据集合。数据库系统是管理大量的、持久的、可靠的和共享的数据的工具。数据库有以下特点:(1)集成性。数据有两层含义,一个是数据本身,一个是数据之间的关系。集成就是指把数据集中到一起来,按照一定的结构形式进行存储,并通过一系列的机制约束数据 之间的关系,避免数据重复或不合要求。(2)量大性。数据库中存放的数据量一般都比较庞大,不能同时在内存中全部调用,而只能通过外部存储器存储,通常使用大容量的可移动磁盘或硬盘等设备。(3)共享性。指多个不同的用户,为了不同的目的,可以使用不同的语言,通过不同的方式,访问同一个数据库,而访问的范围、可执行的操作会有所区别。数据库系统会提供相应的机制,保证这种共享在有序的条件下进行,可以避免因为同步而造成的错误。(4)持久性。一般来说,数据库中是数据都需要长期保存。在管理平台系统中,Web提供了与客户进行通信联络的有效手段,得用Web技术,可实现Web服务器与数据库系统的连接,完成对数据的处理与查询。用户可以通过操作简单易学的浏览器来查询处理所需要的各种数据。实现Web服务器与数据库的连接最主要的方法之一:是利用中间件技术在两者之间建立连接和通信,如CGI和JSP应用编程接口。Web服务器通过调用CGI程序实现与Web浏览器的交互,即CGI程序接受浏览器发给Web服务器的信息,进行处理后,将相应结果再送给Web服务器,通过Web服务器将信息传送给浏览器。但CGI程序在响应速度和资源利用等方面有较大局限性,客户端每请求一个CGI程序,服务器便打开一个进程,当请求的数量较大时容易引起“瓶颈”现象。因此,开发人员常利用JSP编程来扩展服务器功能,JSP程序占用系统资源少,运行效率较高,但它的编程较CGI程序更为复杂。162.5.2 “结构化查询语言”(SQL)简介“结构化查询语言”(SQL)是数据库的标准语言。在Active Sever Pages 中,无论何时你要访问一个数据库,你就要使用SQL语言。因此,掌握好SQL对JSP编程是非常重要的。所有SQL数据库中的数据都存储在表中。一个表由行和列组成。这种语言被设计为不允许你按照某种特定的顺序来取出记录,因为这样做会降低数据库取记录的效率。使用SQL,你只能按查询条件来读取记录。当你执行一个SQL查询时,通过使用包括逻辑运算符的查询条件,你可以得到一个记录列表。此时查询结果是来自一个或多个表。SQL查询的句法非常简单。假设有一个名为“email_table” 的表,包含名字和地址两个字段,要得到Bill Gates 的email地址,你可以使用下面的查询: select email from email_table where name=”Bill Gates”;SELECT语句的结构看起来很直观。如果你请一个朋友从一个表中为你选择一组记录,你也许以非常相似的方式提出你的要求。在SQL SELECT语句中,你“SELECT特定的列FROM一个表WHERE某些列满足一个特定的条件”。SQL中的常用语句:(1)添加语句:向表中添加一个新记录:INSERT INTO 表名称 VALUES (值1, 值2,.)(2)删除语句:从表中删除一条或多条语句:DELETE FROM 表名称 WHERE 列名称 = 值(3)更新记录:更改表中已经存在的一条记录或多条记录:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值(4)用select查询记录insert table(first_column,second_column) select another_first_column,another_sencond_columnfrom anothertable where another_first_column=”copy me”这条语句从anothertable拷贝记录到 table中,只有 anothertable中字段为another_first_column的值为copy me的记录被拷贝。第2.6节系统运行环境配置操作系统:Windows 9X、Windows NT Workstation/Server 4.0以上、Windows 2000 Server/Professional、Windows XP Professional。CPU:没有很高的要求,只要能够顺利运行Windows系列操作系统就可以了。当然,CPU的处理速度越快,运行JSP代码的效率越高。内存:最低配置128MB,建议使用256MB以上内存,如果使用Windows 2000或Windows XP建议使用256MB以上内存。硬盘空间:至少需要50MB以上的硬盘空间来安装所需的组件。第3章总体设计第3.1节开发目标 本系统的目标就是实现新生入校报到的全过程。其功能如下:(1)用户登录验证密码功能 为了系统的安全起见,用户在登录系统时不仅需要正确的用户名和密码,并且要和权限对应上方才让其登录。 (2)新生院系报到 实现新生院系报到,院系工作人员使用院系迎新负责人分配的帐户进行登录,登录后可以查询属于本院系的新生信息,当新生前来报到时,只需要根据新生的名称、准考证号等关键字进行查询,得到学生记录后即可对新生进行报到处理,并记录到新生报到表中。(3)新生班主任指定 院系书记登录后可查询属于本院系的新生信息,可以对新生进行指定班主任操作,此时查询出来的班主任也是根据登录书记的所属院系来查询本院系的班主任,对学生进行班主任指定操作,并记录到新生基础信息表中。(4)新生一卡通领取一卡通中心工作人员可查询全校所有新生的信息,并对前来领取一卡通的新生进行一卡通发放工作,并记录其一卡通领取情况到新生报到表。(5)新生报到情况查询所有登录的人员可以对某一新生记录进行报到情况查看操作(6)新生基础信息查询所有登录人员可以对某一新生记录进行基础信息查看操作(7)用户权限本系统用户等级较一般管理系统复杂,本系统的所有操作都是视用户的权限而定。第3.2节功能分析根据系统功能的要求,该迎新服务管理系统总体分为以下功能。(1)管理员高级功能管理员高级功能包括系统用户管理、日志管理、部门(院系)用户管理、密码修改等功能。(2)部门(院系)管理员功能部门(院系)管理员可以分配本院系下的各种用户帐号和密码。(3)院系级用户院系拥有本院系统最高权限,可操作本院系所有用户,可以查询新生信息等。在本系统中,用户管理模块的功能比较简单。在系统初始化时,有一个默认的“系统管理员”用户admin,由我手动添加到数据库中。admin用户可以创建其他的用户信息;普通用户则可以修改自己注册信息和密码。用户管理功能模块的关系如图3.1所示。修改自身的密码高校迎新工作服务管理创建、修改用户信息删除用户信息修改自身的密码创建、改自身的信息图3.1户管理功能模块关系图第3.3节系统结构分析3.3.1 逻辑结构高校迎新工作服务管理系统的特点就是利用Browser/Server(B/S)结构,提供了一个网络管理平台,让用户只要上网就可以实现平台的管理、信息的查询等功能。系统的优势在于系统简单、功能强大、扩展能力良好以及能够方便的跨地域操作等性能。系统的网络应用原理示意图如图3.2所示。Internet用户Internet迎新服务管理系统系统服务器后台数据库图3.2系统的网络应用原理示意图3.3.2 物理结构系统实现的物理结构如图3.3所示。浏览器浏览器WEB服务器数据服务器浏览器图3.3系统实现的物理结构如图第3.4节系统E-R图3.4.1 用户实体E-R图部门(院系)管理员的E-R图如图3.4所示。部门(院系)管理员序号所属部门用户名密码图3.4部门(院系)管理员的E-R图院系级用户的E-R图如图3.5所示。院系级用户序号用户类别所属部门用户编号密码
展开阅读全文