版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
太原理工大学毕业设计(论文)用纸引言随着计算机科学与技术的迅速发展,计算机技术已经渗透到了社会的每一个角落,随之带来的高效率、高性能计算机软件推动了其他各个行业的技术更新和科技革命。人类社会正从工业社会迈向信息社会,信息技术是当代最具潜力的新的生产力,信息资源是国民经济和社会发展的战略资源,信息化水平已成为国家现代化和综合国力的重要标志。全球信息化不仅对我国的经济和社会产生了广泛而深刻的影响,而且给信息产业带来了难得的发展机遇。努力把我国建设成为现代化国家的经济形式模式,就必须加快信息化建设步伐。信息管理系统就是我们常说的MIS(ManagementInformationSystem),在强调管理,强调信息的现代社会中它变得越来越普及。MIS是一门新的学科,它跨越了若干个领域,比如管理科学、系统科学,运筹学、统计学以及计算机科学。在这些学科的基础上,形成信息收集和加工的方法,从而形成一个纵横交织的系统。设计与实现这个教师信息管理系统的目的是高校对教师信息的管理工作效率得到提高。课题背景、研究目的及意义1.1.1课题背景在JSP出现以前开发一个能够和用户交互并实时检索数据库的Web应用程序是一件非常繁琐的事情,系统的管理者需要花费很大精力去创建和维护它,而且在以往的方式下,应用的开发效率是极其低下的。即使是单个页面布局的微小变动,往往都需要重新设计页面的源代码。而随着JSP技术的推出,开发Web应用就成了一件轻松的事情,即使是初学者也只用简单的语句就可以开发出一个完整的应用。更重要的是此次软件设计开发也让自己得到实践中的锻炼。1.1.2课题发展前景及趋势⑴JSP技术的前景和趋势本课题是采用JSP技术进行开发的教师信息管理系统,随着近些年Internet的飞速发展,传统的提供静态网页的Web服务已经无法满足广大Internet用户的需求,动态网页技术随之诞生,如ASP、PHP、JSP等,其中JSP由于具备“一次编写,随处运行(WriteOnce,RunAnywhere)”的特点,在WEB应用开发中得到了广泛的应用。应用JSP技术开发教师信息管理系统能够使JSP在网络技术中的性能得到淋漓尽致的发挥,调查研究表明,大多数教师信息管理软件的主要问题是受阻基于机构内部的管理的,脱离了与广大教职工的联系,它变的孤立而且功能受限,一个脱离了广大客户的管理系统,就必将在未来的市场中无用武之地。更与现今的常用的软件开发模式B/S模式背道而驰,加之这样JSP技术可以支持多种运行平台,运行速度快,难易程度低,扩展性安全性好,数据库支持多等特点,为设计者、使用者和维护者提供了方便。⑵教师信息管理对Internet/Intranet的需求的发展趋势教师信息管理系统与互联网的结合,正成为现今发展的焦点问题之一。因为随着机构规模的扩大和业务信息交流量的增大,教师信息管理已不再满足于简单的文件共享方式,而是追求一种更灵活、更方便的数据共享策略,这便是机构将自身以数据库为核心的MIS系统从客户机/服务器模式向Internet/Intranet的系统架构转变的原因。另外,随着机构自身在不断的发展,尤其大型机构的国际化发展已成为必然,一些客户和业务点可能是跨地区、甚至是跨国界的,因此,在数据传递、信息共享和发布时,Internet成为这些跨地域用户的必然选择,可以是客户足不出户就能享受服务,通过Internet网拉近了客户和机构之间联系,机构无形中牢牢抓住了广大客源,在激烈的市场竞争,占有了自己的一席之地,通过基于WEB的机构管理系统对客户的信息做科学的管理,能够提供一种对教师信息管理的大量数据做出汇总的多层次的快速灵活的查询、分析及报表制作手段。因此,教师信息管理迫切需求的是一个基于Internet网又能进行机构内部管理的综合管理系统,并能及时为机构管理各种管理提供服务。如何将管理支持系统与Internet/Intranet技术有机地结合起来,提供基于Web、集查询、报表、已经成为一个重要课题。1.2课题内容简介本课题解决的问题是如何通过设计一个切实可行的软件系统来解决教师信息管理目前存在的一系列问题。该课题是基于Windows7的操作系统,后台数据库采用SqlServer2008,前端使用JSP进行开发。本软件编写的目标是为教职工的管理设计的教师信息管理系统。该系统应具有教师信息显示功能,材料、工作情况、简历及通知通告情况添加、保存、修改、删除功能等在具有权限的情况下,本设计按照功能模块分为以下几个模块;(1)系统具有简洁大方的页面,使用简便,友好的错误操作提示(2)管理员用户具有教师信息管理、消息新闻上传、工作记录等功能(3)教师用户具有个人信息管理、资料下载、工作记录提交等功能(4)具有较强的安全性,避免用户的恶意操作1.3课题调研及可行性分析1.3.1课题调研深入教师人群进行交流和调查,满足教师最大需要。深入机构实地调研,到高校与主要负责人询问相关细节,包括业务流程、数据流分析、实地情况等。上网搜索相关内容,参看其他一些教师信息管理软件,从中学习借签。1.3.2可行性分析(1)技术可行性硬件方面,我们目前拥有了计算机硬件配备,有了Windows7操作系统的运行环境,提供了WindowsXP的工作平台,安装了开发软件,包括运行平台的、数据库的和各类编程工具的,在编程环境上提供了可靠的支持,为系统的开发提供了必要的技术保障。我们开发的这个系统就是采用B/S的3层结构模式,Browser/Web/DataBase。此系统用JSP开发,JSP作为一种Web实现技术,它的效率是很高的。这一点正好符合了本系统所要求的实时性。另外它可以方便的连接各种数据库,像Oracle8/8i/9i数据库,SqlServer7.0/2000数据库,DB2数据库等等,这样可以根据需要进行移植。另外作为Java平台的一部分,JSP拥有Java语言“一次编写,各处运行”的特点。几乎所有平台都支持Java,JSP+JavaBeans几乎可以在所有平台下通行无阻。从一个平台移植到另外一个平台,JSP和JavaBeans甚至不用重新编译,因为Java字节码都是标准的与平台无关的。又随着越来越多的服务器供应商将JSP支持添加到他们的产品中,这样一来用JSP做成的这套系统可以轻松移植到其它平台来运行。所以用JSP来开发是完全可行的。同时,JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。JavaScript的一个重要功能就是面向对象的功能,通过基于对象的程序设计,可以用更直观、模块化和可重复使用的方式进行程序开发。在HTML基础上,使用Javascript可以开发交互式Web网页。Javascript的出现使得网页和用户之间实现了一种实时性的、动态的、交互性的关系,使网页包含更多活跃的元素和更加精彩的内容。在本系统中很多地方使用了javascript技术,比如说,检验用户输入数据的有效性,是否重复,是否为空等等。(2)经济可行性系统开发所需的费用是比较低的,由于系统并不复杂,其运行费用也不会占用很多资金,同时无须费用,用户直接就可通过浏览器使用,并且可以预见系统完成后可以给单位带来较大的作用。所带来的效益远远大于系统软件的开发成本,譬如:可以进行低投入的大范围的经营活动,增加经营者与客户的交流,对项目都可以进行有效而方便的管理。因此在经济上完全可行。(3)操作可行性本系统操作简单,输入信息页面大多数都是下拉框的选择形式,在某些页面,信息可以自动生成,无需输入,时间的输入也是用的日历控件,操作简便,对操作人员的要求很低,只需对WINDOWS操作熟练,加之对本系统的操作稍加培训即可工作,而且本系统可视性非常好,所以在技术上不会有很大难度。(4)法律可行性开发本系统的过程未触及任何法律上的问题,遵守国际国内上通用的法则,采用的软件也均为正版,因此在法律上也是可行的。综上所述,开发一个教师信息管理系统与人工记录的方式相比具有速度更快,操作更准确,节省开支等有利之处,因此,建立一个教师信息管理系统是必要可行的。2系统需求分析2.1系统功能分析本系统以教师信息管理为主要目标,提供一个信息更新快捷,管理方便,功能设置合理的教师信息管理解决方案。系统总体目标如下:使教师信息管理更加科学化;提供必要的工作管理功能;提供灵活方便的操作;节约管理成本提高管理效率;提供必要的权限管理;为学校考核教师的工作情况提供必要的数据支持。本软件编写的目标是为教职工的基本信息,简历信息及工作情况,设计教师信息管理系统。该系统应具有教师信息信息显示功能,基本信息,简历信息及工作情况添加、保存、修改、删除功能等。根据不同权限的考虑,(1)系统总体架构:根据系统功能需求,系统功能及对数据库的操作都在服务器端完成,而用户在浏览器端的操作都送到服务器端处理。(2)教师管理:当教师登录后,显示该教职工的信息首页,并为其显示相应的基本信息。(3)管理员管理:将教职工的相应信息存入数据库中;教职工的基本信息和其它信息。2.2业务流程图在开发机构综合管理系统前期,必须掌握整个教师信息管理的业务流程,这样才能有条不紊的进行系统设计。业务流程图(transactionflowdiagram,简称TFD),
就是用一些规定的符号及连接来表示某个具体的业务处理过程。在对系统的组织结构和功能进行分析时,需从一个实际业务流程的角度将系统调查中有关该业务流程的资料都串起来作进一步的分析。业务流程图是一种描述系统内各单位、人员之间业务关系、作业顺序和管理信息流向的图表,利用它可以帮助分析人员找出业务流程中的不合理流向,它是物理模型。业务流程分析可以帮助我们了解该业务的具体处理过程,发现和处理系统的调查工作中的错误和疏漏,修改和删除原系统的不合理部分,在新系统基础上优化业务处理流程。业务流程图描述的是完整的业务流程,以业务处理过程为中心,一般没有数据的概念。业务流程图的绘制是按照业务的实际处理步骤和过程进行的。业务流程图是一种系统分析人员都懂的共同语言,用来描述系统组织结构、业务流程。业务流程图如图2-1所示。基本信息基本信息管理员未分配账号分配登陆系统分配过的账号查询查询删除添加修改发布保存所有用户所有被操作的信息被自动写入数据库图2-1业务流程图2.3数据字典数据字典是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程。数据项即数据表,数据表是进行数据访问与存取的工具。对于任何一个数据库应用系统,它的数据处理的工具和对象均是数据表,界面是一种对内部数据进行控制的手段,因此系统中各种各样的界面制作的目的,就是通过界面中的控件实现对数据表中的数据进行查询、操纵、定义、控制,因此需要设计各种需要的数据表。例如存放材料信息的数据字典如表2-1所示。表2-1存放材料信息的数据字典字段名字段类型约束或索引描述ClIdint(8)PKauto_increment材料信息号ClNamevarchar(16)notnull材料名称ClShowvarchar(200)notnull材料说明ClDocvarchar(32)notnull相关文件3系统设计3.1系统开发与运行环境确定3.1.1系统开发⑴此系统是基于Windows7网络环境的数据库管理,后台数据库采用SqlServer2008数据库,前端使用MyEclipse10进行开发。⑵开发系统中数据库设计是为了适应教师信息管理的需要。在系统设计过程中,为了保证程序能正常运行且符合生产管理的要求,本人根据机构的一些实际情况进行设计。⑶开发过程是在指导老师和同学的帮助下结合自己的实际水平,借阅图书馆大量资料后而进行的。3.1.2系统开发环境此系统是基于Windows7网络环境,后台数据库采用SqlServer2008,前端使用MyEclipse10进行开发。SQLServer是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。SQLServer近年来不断更新版本,1996年,Microsoft推出了SQLServer6.5版本;1998年,SQLServer7.0版本和用户见面;SQLSERVER2005是Microsoft公司于2005年推出的版本。SQLServer特点:(1)真正的读者机/服务器体系结构。(2)图形化用户界面,使系统管理和数据库管理更加直观、简单。(3)丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。(4)SQLServer与WindowsNT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等。SQLServer也可以很好地与MicrosoftBackOffice产品集成。(5)具有很好的伸缩性,可跨越从运行Windows95/98的膝上型电脑到运行Windows2000的大型多处理器等多种平台使用。(6)对Web技术的支持,使用户能够很容易地将数据库中的数据发布到Web页面上。(7)SQLServer提供数据仓库功能,这个功能只在Oracle和其他更昂贵的DBMS中才有。3.1.3系统运行环境简介⑴性能要求系统的性能要求通常指系统需要的存储容量以及后援存储,重新启动和安全性,运行效率等方面的考虑。本系统是以MyEclipse为前台,SqlServer2008为后台数据库,因此要求系统运行在:Windows7系统运行时对数据的保密性要求不高对一般的数据不要求进行加密。此外,对其它软件几乎没有依赖性,程序健壮性较好。⑵运行需求本系统是由JSP+SqlServer2008开发的,因此系统必须满足如下条件才能正常运行:1.硬件要求:酷睿2CPU、1024M内存或更高。2.操作系统:WindowsXPWindows7或者以上版本。3.脚本解释器:安装IE6.0或者以上版本4.安装JDK(Java集成开发工具包)。5.安装Tomcat服务器。6.安装MyEclipse10。7.数据库:SqlServer20088.权限要求:对SqlServer2008数据库具有建表、备份的权限⑶其他需求本系统有较好的可维护性、可靠性、可理解性、效率。易于用户理解和操作。可维护性包括了可读性、可修改性、可测试性、等含义。可靠性通常包括正确性和健壮性。开发过程中,在各种矛盾的目标之间作权衡,并在一定的限制的条件下(经费、时间、可用的软、硬件资源等),使上述各方面最大限度的得到满足。3.2数据库的设计与分析计算机信息系统以数据库为核心,在数据库管理系统的支持下,进行信息的收集、整理、存储、检索、更新、加工、统计和传播等操作。数据库已经成为现在信息系统等计算机系统的基础与核心部分。数据库设计的好坏直接影响到整个系统的质量和效率。数据库的设计一般经过规划。需求分析、概念设计、逻辑设计、物理设计5个步骤。3.2.1数据库的概念结构设计概念设计是指在数据分析的基础上自底向上的建立整个系统的数据库概念结构,从用户的角度进行视图设计,然后将视图集成,最后对集成的结构分析优化得到最后结果。数据库的概念结构设计采用实体—联系(E-R)模型设计方法。E-R模型法的组成元素有:实体、属性、联系,E-R模型用E-R图表示,是提示用户工作环境中所涉及的事物,属性则是对实体特性的描述。概念设计的目标是产生反映企业组织信息要求的数据库概念结构,即概念模式。概念模式是独立于数据库逻辑结构,独立于支持数据库的DBMS,不依赖于计算机系统的,根据以上对数据库的需求分析,并结合系统概念模型的特点及建立方法,建立E-R模型图。例如管理员E-R图如图3-1所示。图3-1E-R图3.2.2数据库的逻辑结构设计我们知道,数据库概念模型独立于任何特定的数据库管理系统,因此,需要根据具体使用的数据库管理系统的特点进行转换。即转化为按计算机观点处理的逻辑关系模型,E-R模型向关系数据库模型转换应遵循下列原则:*每一个实体要转换成一个关系*所有的主键必须定义非空(NOTNULL)*对于二元联系应按照一对多、弱对实、一对一、多对多等联系来定义外键。根据E-R模型,教师信息管理系统建立了以下逻辑数据结构,下面是各数据表的详细说明。(1)教师信息表主要是记录了教师的基本信息。表结构如表3-1所示。表3-1教师信息表(t_daoshi)列名数据类型长度允许空是否主键说明idint4否是IDgonghaovarchar50否否教师号xingmingvarchar50否否姓名xingbievarchar50否否性别nianlingvarchar20否否年龄shengrivarchar20否否出生日期gongzuovarchar50否否工作时间zhuanyevarchar50否否专业zhaopianvarchar50否否照片beizhuvarchar50否否备注信息(2)管理员信息表主要记录了管理员的账号信息,包括用户名和密码,表结构如表3-2所示。表3-2管理员信息表(t_admin)列名数据类型长度允许空是否主键说明userIdint4否是编号userNamevarchar50否否用户名userPwvarchar50否否密码材料信息表主要记录了上传材料的名称、说明和存放地址的信息,表结构如表3-3所示。表3-3材料信息表(t-cailiao)列名数据类型长度允许空是否主键说明clNamevarchar50否否材料名称clIDint4否是材料编号clShowvarchar50否否材料说明clUrlvarchar50否否相关文件(存放地址)消息信息表主要记录上传消息的标题、类别、作者、发布人以及发布时间的信息,表结构如表3-4所示。表3-4消息信息表(t-xiaoxi)列名数据类型长度允许空是否主键说明xxIdint4否是编号xxNamevarchar50否否标题xxClassvarchar50否否类别xxAuthervarchar50否否作者xxPubvarchar50否否发布人xxTimedate8否否发布时间工作情况表主要记录教师的工作时间及完成情况等信息,表结构如表3-5所示。表3-5工作情况表(t-qingkuang)列名数据类型长度允许空是否主键说明qkIdint4否是编号qkNamevarchar50否否工作情况记录内容qkTeachervarchar50否否工作情况记录导师qkTimedate8否否记录时间3.2.3数据库的连接原理采用JDBC连接数据库的方式,只需在工程中导入对应数据库的jar包,就可以方便的对数据库进行连接,在程序中,用Class.forName()方法来加载驱动程序,在用DriverManager的getConnection()方法就可以创建一个数据库连接。程序采用的是DAO模式来操作数据库,DAO(DataAccessObject,数据访问对象),是Java编程中的一种经典模式,已被广泛应用,也是J2EE架构中持久层框架的基础知识,基于分层次式的软件架构来实现对数据库的访问操作。DAO模式的主要思想就是从抽象数据源获取与操纵数据的方法。抽象数据的含义就是编写应用程序的程序员不必关心数据库的物理位置,已经是何种数据库,只需使用封装数据库中表示记录的数据对象即可。其思想如图3-2所示。封装使用封装使用DataSourceDataAccessObjectBusinessObjectDataSourceDataAccessObjectBusinessObject创建/使用获取/修改创建/使用获取/修改DataTransferObjectDataTransferObject图3-2DAO模式类图图中BussinessObject是业务对象,是使用DAO模式的客户端;DataTransferObject数据传输对象,在应用程序不同层次之间传输对象,在一个分布式应用程序中,通常可以提高整理的性能;DataObjectAcces数据输入/输出对象封装了对数据源的一些基本操作;DataSource指的是数据源。可以从图中看出,DAO模式分离了业务逻辑和数据罗即将,是的编写的软件具有良好的层次式体系结构。本系统为了方便数据库的操作,主要使用DBContent的对象来接一个数据库(建立一个类DBContent),代码如下:publicDBContent(){ StringCLASSFORNAME="com.MySql.jdbc.Driver";//连接数据库的驱动 Stringurl="jdbc:MySql://localhost:3306/jzggl"; Stringuser="root";//连接数据库的用户名 Stringpassword="root";//连接数据库的密码 try{ Class.forName(CLASSFORNAME); con=DriverManager.getConnection(url,user,password);//加载数据库的驱动 stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); } catch(Exceptionex){ ex.printStackTrace(); } } 在程序需要连接数据库的地方,只需要生成一个DBConnet的对象,就可以对数据库进行连接并操作。3.2.4中文乱码问题处理在程序中经常会遇到中文乱码的情况,如果手动的在servlet和jsp页面进行设置,相当麻烦。因此,在程序的开始就写了一个过滤器SetCharacterEncodingFilter。在web.xml中配置:<filter><filter-name>SetCharacterEncodingFilter</filter-name><filter-class>myweb.util.filter.SetCharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>gb2312</param-value></init-param></filter><filter-mapping><filter-name>SetCharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern>//*表示工程下所有的页面都会有此过滤器的处理</filter-mapping>对应的SetCharacterEncodingFilter.java文件中的重要代码,在初始化init()方法中定义:publicvoidinit(FilterConfigfilterConfig)throwsServletException{ this.filterConfig=filterConfig;this.encoding=filterConfig.getInitParameter("encoding");Stringvalue=filterConfig.getInitParameter("ignore");}在工具包util包中同样定义了DataFormate类来处理字符转换:publicstaticStringtoUni(StringgbStr){StringuniStr="";/*把字符串转换成uincode编码*/if(gbStr==null){gbStr="";}try{byte[]tempByte=gbStr.getBytes("GB2312");uniStr=newString(tempByte,"ISO8859_1");}catch(Exceptionex){}returnuniStr;}/*把字符串转换成Utf8编码*/publicstaticStringtoUtf8String(Strings){StringBuffersb=newStringBuffer();for(inti=0;i<s.length();i++){charc=s.charAt(i);if(c>=0&&c<=255){sb.append(c);}else{byte[]b;try{b=Character.toString(c).getBytes("utf-8");}catch(Exceptionex){System.out.println(ex);b=newbyte[0];}for(intj=0;j<b.length;j++){intk=b[j];if(k<0){k+=256;}sb.append("%"+Integer.toHexString(k).toUpperCase());}} returnsb.toString();}3.3功能模块图系统有两种登录权限,每种权限有两大类功能,具体功能模块如图3-3所示。图3-3功能模块图3.4处理流程设计3.4.1系统操作流程图在登陆页面输入用户名、密码和权限,通过后台检查,显示错误重新登录,显示正确直接进入权限的主功能页面,进行一系列操作和数据库保存后退出。系统操作流程图如图3-4所示。开始错误信息系统主界面开始错误信息系统主界面系统登录界面系统登录界面系统管理系统管理输入用户名及密码输入用户名及密码检查检查密码错误 F密码错误 T密码正确密码正确功能界面功能界面终止功能处理终止功能处理图3-4系统操作流程图3.4.2数据增加流程添加信息时,编号字段由系统自动生成,且不能修改,其他信息由用户输入,之后对数据进行合法判断,合法则写入保存至数据库,不合法则重新输入数据。数据增加流程图如图3-5所示。图3-5数据增加流程图3.4.3数据修改流程在修改信息时,先选中一条待修改的记录,然后直接输入数据,判断合法性,合法则保存至数据库,不合法重新输入。数据修改流程图如图3-6所示。图3-6数据修改流程图3.4.4数据删除流程当用户选定一条记录时,单击删除按钮,会提示用户是否确定删除,然后删除数据库相关内容。数据删除流程图如图3-7所示。图3-7数据删除流程图4模块设计与实现在管理信息系统的生命周期中,仅过了需求分析、系统设计等阶段之后,便开始了系统实施阶段。在系统分析和设计阶段,系统开发工作主要是集中在逻辑、功能和技术设计上,系统实施阶段要继承此前面各个阶段的工作成果,将技术设计转化为物理实现,因此系统实施的成果是系统分析和设计阶段的结晶。4.1前台模块设计管理员用户登陆模块,用html+jsp实现,通过javascrip做页面验证,java程序做后台验证,保证信息安全可靠。登陆界面如图4-1所示。图4-1登陆界面4.2后台模块设计4.2.1管理员登陆在用户登录界面,在用户名对应的文本框中输入用户名,在密码对应的文本框中输入密码,如果用户名和密码同时与数据库中的用户名和密码相对应,点击“确定”后进入系统的主界面。如果输入的信息不正确,则给出提示。输入:用户名和密码。处理:校检字符的有效性。用户要登录本系统需要提供用户名和密码,在这里就是要检验用户是否满足输入的要求,即检验用户名和密码文本框是否为空,若为空,则提示用户输入用户名和密码。检验用户名是否存在或密码是否正确,即是否存在用户输入的用户名,并且密码是否正确。输出:登录成功,进入用户的系统使用资源页面,不成功则显示错误信息页面。publicStringlogin(StringuserName,StringuserPw,intuserType){ try { Thread.sleep(700); }catch(InterruptedExceptione) { //TODOAuto-generatedcatchblock e.printStackTrace(); } Stringresult="no"; if(userType==0)//系统管理员登陆 { Stringsql="fromTAdminwhereuserName=?anduserPw=?"; Object[]con={userName,userPw}; ListadminList=adminDAO.getHibernateTemplate().find(sql,con); if(adminList.size()==0) { result="no"; } else { WebContextctx=WebContextFactory.get(); HttpSessionsession=ctx.getSession(); TAdminadmin=(TAdmin)adminList.get(0); session.setAttribute("userType",0); session.setAttribute("admin",admin); result="yes"; } } if(userType==1) { } if(userType==2) { } returnresult; }4.2.2教师信息管理功能描述:此模块要实现对教师信息信息的管理功能。(1)添加教师信息信息操作: 点击添加教师信息信息按钮,输入需要添加教师信息的内容。内容包括教师信息的标题、内容、文档。 检验用户输入的教师信息的标题、内容、上传文档是否符合教师信息数据库表中字段定义。若不符合则提示输入有误。 提示用户信息添加成功。 更新用户数据库表的信息。(2)修改教师信息信息 点击修改教师信息信息按钮。内容包括教师信息的标题、内容、上传文档。 检验用户输入的教师信息的标题、内容、上传文档是否符合用户数据库表中字段定义。若不符合则提示输入有误。 如果用记录存在,进行修改操作,输入新的字段,并根据用户数据库表中对应字段的定义检查输入是否合法,如果输入有错误则进行提示。 如果输入正确,执行(UPDATE)SQL语句,更新用户教师信息数据库表中该用户所对应的记录。 提示用户信息添加成功。 更新用户数据库表的信息。界面如图4-2所示。图4-2档案信息界面在每个jsp页面将会对相关用户进行拦截操作,这样可以提高安全性,防止用户不经过登陆页面而进入任何子菜单页面:if(session.getAttribute("user")==null){out.print("<script>alert('请先登录!');window.open('../index.jsp','_self')</script>"); }4.2.3教师基本信息管理功能描述:管理员输入教师相关正确信息后点击录入按钮,如果是没有输入完整的信息,都会给出相应的错误提示,不能录入成功。输入数据都通过form表单中定义的方法onsubmit="returncheckForm()"来检查,checkForm()函数中是各种的校验输入数据的方式。界面如图4-3所示。图4-3基本信息管理界面4.2.4教师管理功能描述:管理员点击左侧的菜单“教师管理”,页面跳转到做教师界面,调用后台的servlet类查询所有教师的信息。程序效果图如图4-4所示。图4-4教师管理界面教师管理关键代码:publicvoidjihuayuanAdd(HttpServletRequestreq,HttpServletResponseres)publicvoidjiaoshiDel(HttpServletRequestreq,HttpServletResponseres) { intid=Integer.parseInt(req.getParameter("id")); Stringdel="yes"; Stringsql="updatet_jiaoshisetdel=?whereid=?"; Object[]params={del,id}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","教师信息删除成功!"); req.setAttribute("path","jiaoshi?type=jiaoshiMana"); StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res); } publicvoidjiaoshiUpd(HttpServletRequestreq,HttpServletResponseres) { intid=Integer.parseInt(req.getParameter("id")); Stringgonghao=req.getParameter("gonghao"); Stringxingming=req.getParameter("xingming"); Stringxingbie=req.getParameter("xingbie"); Stringnianling=req.getParameter("nianling"); Stringshengri=req.getParameter("shengri"); Stringgongzuo=req.getParameter("gongzuo"); Stringzhuanye=req.getParameter("zhuanye"); Stringzhaopian=req.getParameter("zhaopian"); Stringbeizhu=req.getParameter("beizhu"); Stringsql="updatet_jiaoshisetgonghao=?,xingming=?,xingbie=?,nianling=?,shengri=?,gongzuo=?,zhuanye=?,zhaopian=?,beizhu=?whereid=?"; Object[]params={gonghao,xingming,xingbie,nianling,shengri,gongzuo,zhuanye,zhaopian,beizhu,id}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","教师信息修改成功!"); req.setAttribute("path","jiaoshi?type=jiaoshiMana"); StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res); } publicvoidjiaoshiAdd(HttpServletRequestreq,HttpServletResponseres) { Stringgonghao=req.getParameter("gonghao"); Stringxingming=req.getParameter("xingming"); Stringxingbie=req.getParameter("xingbie"); Stringnianling=req.getParameter("nianling"); Stringshengri=req.getParameter("shengri"); Stringgongzuo=req.getParameter("gongzuo"); Stringzhuanye=req.getParameter("zhuanye"); Stringzhaopian=req.getParameter("zhaopian"); Stringbeizhu=req.getParameter("beizhu"); Stringdel="no"; Stringsql="insertintot_jiaoshi(gonghao,xingming,xingbie,nianling,shengri,gongzuo,zhuanye,zhaopian,beizhu,del)"+ "values(?,?,?,?,?,?,?,?,?,?)"; Object[]params={gonghao,xingming,xingbie,nianling,shengri,gongzuo,zhuanye,zhaopian,beizhu,del}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","教师信息添加成功!"); req.setAttribute("path","jiaoshi?type=jiaoshiMana"); StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res); } publicvoidjiaoshiMana(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException { ListjiaoshiList=newArrayList(); Stringsql="select*fromt_jiaoshiwheredel='no'"; Object[]params={}; DBmydb=newDB(); try { mydb.doPstm(sql,params); ResultSetrs=mydb.getRs(); while(rs.next()) { TJiaoshijiaoshi=newTJiaoshi(); jiaoshi.setId(rs.getInt("id")); jiaoshi.setGonghao(rs.getString("gonghao")); jiaoshi.setXingming(rs.getString("xingming")); jiaoshi.setXingbie(rs.getString("xingbie")); jiaoshi.setNianling(rs.getString("nianling")); jiaoshi.setShengri(rs.getString("shengri")); jiaoshi.setGongzuo(rs.getString("gongzuo")); jiaoshi.setZhuanye(rs.getString("zhuanye")); jiaoshi.setZhaopian(rs.getString("zhaopian")); jiaoshi.setBeizhu(rs.getString("beizhu")); jiaoshiList.add(jiaoshi); } rs.close(); } catch(Exceptione) { e.printStackTrace(); } mydb.closed(); req.setAttribute("jiaoshiList",jiaoshiList); req.getRequestDispatcher("admin/jiaoshi/jiaoshiMana.jsp").forward(req,res); }4.2.5安全退出系统功能描述:点击注销按钮回到系统的登陆界面。关键代码:主要是通过javascript语句来实现,item_word[8][4]="退出系统";item_link[8][4]="javascript:window.open('../index.jsp','_self')";5系统测试5.1系统测试目的与意义系统测试是管理信息系统开发周期中一个十分重要而漫长的的阶段。其重要性体现在他是保证系统质量与可靠性的最后关口,是对整个系统开发过程包括系统分析、系统设计和系统实现的最终审查。系统测试的任务是尽可能彻底的检查出程序中的错误,提高软件系统的可靠性,其目的是检验系统“做得怎样”。这这阶段又可以分为三个步骤:模块测试,测试每个模块的程序是否正确;组装测试,测试模块之间的接口是否正确;确认测试,测试整个软件系统是否满足用户功能和性能的要求。测试发现问题之后要经过调试找出错误原因和位置,然后进行改正。是基于系统整体需求说明书的黑盒测试,应覆盖系统随偶联合的部件,系统测试是正对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出需求规格不符合或与之矛盾的地方。5.1测试过程在测试之初,由于将数据库中的数据是随便输入,没有实用性,为了使系统更加完善,在系统测试的过程中,本系统将一开始编程随便输入的数据全部清理后,输入了一些有效的测试数据,这样可以更真实的反映系统的功能实现情况。这样不断发现问题,经过反复的测试、调试,把问题一个个的解决,最终系统可以正常运行。5.1.1主页面的登录模块测试测试流程:(1)打开系统首页,输入错误的登录信息(2)登录(3)输入正确的登录信息(4)登录(5)测试结果表5-1登录模块测试用例模块名称测试用例预期结果实际结果是否通过登录模块用户名:null密码:null弹出错误提示,请输入用户名登陆失败,提示请输入用户名通过登录模块用户名:m1密码:null弹出错误提示,请输入密码失败,提示输入密码通过登录模块用户名:m1密码:1弹出错误提示,用户名或者密码错误登陆失败,提示用户名或者密码错误通过5.1.2其他错误在程序设计实现的过程中不可避免的会产生各种难以预料的错误,如书写错误、传值类型不一致、参数传递问题等等。这些都需要通过细心的检测与不断的调试才能够排除。比如在servlet路径配置时因粗心错误导致运行导致所报错误,如图5-1所示:图5-1由于servlet路径配置错误,运行时的提示6系统评价6.1系统主要功能、特色/优点介绍6.1.1系统主要功能本课题主要是解决教师信息管理系统的日常管理中所涉及到的基本信息,目标是使教师信息管理系统在管理上做到数据的信息化、快速化和网络化。本系统主要包括系统管理、教师信息管理等模块。6.1.2系统的特色/优点介绍⑴本系统根据教师信息管理中的实际需求和需要进行设计和开发的。⑵数据库管理系统采用SqlServer2008,前台采用JSP开发,系统的应用规模可以根据用户的需要由管理随时做出调整和更新。⑶模块分工明确,模块功能强大,基本符合实际需求,可以为机构所使用,而不是凭空的一个架子,推广性和实用性都比较高。⑷有机结合计算机自动处理与人工处理,使其在实际应用中更加的高效。⑸系统主界面设计素朴,给人一种清新的感觉,功能介绍明了,用户不需要指导就可以方便的了解到自己想要的信息。⑹本系统因为采用JSP技术开发,所以安全性好,可靠性高。⑺另外JSP技术的可扩充性好,发展潜力大。所以可以应用于多种系统平台。6.2系统存在的不足与改进方案6.2.1系统存在不足系统不足:由于本学期因为身体原因耽误了很多时间,时间非常仓促,所以本系统还不是太完善,功能还不是很强大。具体的说,项目管理方面可以更加详细,主要是实现教师简历信息管理、材料信息管理等功能,另外数据库中的表字段信息量不足,有些还是空的我会在有空的时候添加上去。因为模块是由框架组成,所以局限于框架的有些界面功能不能正常显示。这些问题有的是自己考虑的,有的是老师给我提的宝贵意见,我会认真吸取。6.2.2改进方案对于此系统要从美观、功能和技术上三个方面做重点改进。美观方面当然是提高审美观点,尽可能做到界面美观,可视化并且要方便管理人员使用;功能方面要扩大此系统的功能,以前没有时间实现的将来完善;技术方面的改进表现在系统虽然基本上实现了功能要求,但很多方面还没有考虑仔细,有些问题上考虑的比较笼统,可能跟实际有所偏差,这个问题会在了解更多的机构运营方式之后得到改进,因为整个系统没有原始的模版参考,网上利用Jsp开发的教师信息管理系统根本也根本没有,模块设计的雏形都是出自自己之手,也会存在不完善、不科学的因素。我们会在以后的工作中积累更多经验,完善自己。6.3毕业设计心得体会毕业设计即将完成了,我的答辩也即将来临,面对这大学最后一次考试,此时的心情相当的复杂,既有毕业设计完成的高兴,也有即将离开大学生活的失落和惆怅,但无论怎样,我想毕业设计这一环节对我来说意义最大,因为它检验了我大学所学知识的掌握情况。在这一阶段里我发现了自己的不足,也努力弥补了自己的不足。时光飞逝,转眼的工夫,已是到了毕业季节,最初面对毕业设计的时候,居然不知道自己怎么做,在计算机专业知识方面,所学过的编程语言到是不少,但是将所学到的理论知识应用于实际时,我却一头雾水,因为觉得自己好象什么都没有掌握,似乎每门功课的学习都是为了应付期末考试,并没有真正深入的涉及到某一门语言的学习上,总是学了一门,随着课程的结束也便放弃一门。最终,为了真正锻炼自己,我选择了JSP语言来进行软件设计。这是一次相当大的挑战,JSP具有动态显示和良好的扩展性等特点,功能十分强大。起初的几个月内我也强烈感觉到自身的不足,感觉真的无从下手。最后的时刻是不允许退缩的,只能硬着头皮上了,从最开始到处翻阅资料,到中期的调试代码,到最后的美化界面,无不充斥了我的辛勤汗水。在毕业设计过程中,我也得到了同学们的无私帮助,设计阶段,同学们都很忙,然而在这个时候还能够得到同学的无私帮助,让我深切感受到同学之间的友情是多么的真挚,他们用真挚的关怀打动我了,也使我的毕业设计能够顺利进行。计算机软件开发是一个讲究团队合作的工作,毕业设计虽然不是什么大的不得了的系统,但是我仍然感受到了团队的力量是多么的强大。同学的友谊是多么的深厚,老师关怀是多么的温暖。结论本次毕业设计将我大学四年所学的软件工程理论知识用到了具体的实践中去,深化了理论知识,同时也锻炼了动手实践能力。在这段日子里,我查阅了许多有关教师管理信息系统的资料,翻阅了许多JSP的书籍,结合自己的经验,详细调查了教师管理的工作内容与细节,开发设计了这个教师信息管理系统,虽然企业每个学期都会有相应课程的课程设计和实训来作为动手练习训练,不过在本次毕业设计具体的实践的时候还是遇到了很多小问题,比如说在jsp页面将输入框设为不可用是添加属性readonly=“true”,而我在实际编程中却错写成disable=“true”,这样直接导致了request对象取不到数据,调试了程序很久才发现request对象获得的返回值一直是空,之前一直以为是代码哪里出了问题,总是在查源程序的逻辑。这些虽然都是小问题,但是由于不细心在具体实践中却浪费了不少时间,看来平时还是要多多实践才是。在系统的开发过程中,我运用到了B/S三层结构技术和自己在平时学习中掌握的一些技术,通过这些技术的实现,整个系统的性能得到了大大的提高。这些技术都在论文中做了比较详细的介绍。本系统还存在许多的缺陷和不足之处,比如很多细节上做的还不行,有些功能模块还应再加强。希望在以后的时间里,我可以把这些缺陷都弥补过来,进一步完善系统。随着毕业设计的基本完成,我的大学生活也即将画上一个句号,然而毕业设计这段生活经历在我的内心留下了深刻的记忆,从上学期末的软件生产实习开始,我们基本上就算踏上了毕业设计日程,在这半年多的时间里,经历了很多很多,最后都挺过来了,现在回头想想,真的挺不容易,也确实从毕业设计过程中,学习到了很多的东西,有了自己亲手开发系统的经历,自己的自信心也增强了很多,大学几年的理论学习,自身的实践经验相对较少,通过这次毕业设计,我的经验得到了积累,在即将来临的毕业设计答辩中,我会好好准备,认真对待大学生涯的最后一次考试。争取为我的大学生涯画上一个完整的句号。总结设计,展望未来,在即将踏入社会之际,感慨良多,也许以后我可能不从事计算机软件的开发,或者根本就不从事与计算机有关的工作,但是,大学的锻炼和成长是我今生非常宝贵的财富,这些财富都会在我将来的工作和学习中起到关键的作用,学习的知识固然重要,但更重要的是学习的方法和学习的过程,这可能是一生都需要不断改进,就要毕业了,伤感充斥了内心,希望我的同学们都能找到自己满意的工作,也希望我的老师们身体健康,工作顺利。当我走出校门的那一天,会用悲痛转化力量,投入到将来的工作中,也许会默默无闻,但在大学的记忆将永远陪伴我前进!致谢在毕业论文结束,毕业设计完成之际,我要感谢很多人。首先,我要感谢我们的指导老师,我们这个课题在一开始选定时,李老师就给了我们很多意见和建议。最终我们敲定了现在的课题。可以毫不掩饰的说,指导老师是我在大学中见到的最负责任的老师。我还要感谢在设计过程中给过我帮助的同组的其他同学。在开发初期,可以说我对JSP还只是比较肤浅的认识,在同学们热心地帮助下,才使我走上了设计的正轨,在技术上给我很多的帮助和指导,只要我有困难向他们提出,他们都会认真的向我解答。在此,我要对他们表示我衷心的感谢。另外,我们还要感谢班主任老师和系主任老师,对我的关心从始至终。是他们给我们提供了如此良好的学习和设计环境,使我们能够全心全意地投入设计工作。最后我要感谢我的爸爸妈妈,没有他们坚强的后盾,我不可能拥有今天的这一切,更不可能完成学业。其实,要感谢人的真的很多很多,虽然不能一一列举,但是我会永远记住你们,随后向所有帮助过我的人道一声:“你们辛苦了,谢谢大家!”参考文献张奇、李建松、卫建伟.VisualC#数据库项目案例导航[M].北京:清华大学出版社,2005.余金山、林慧.SQLServer2000/2005数据库开发实例入门与提高[M].北京:电子工业出版社,2005.沈军.基于ASP.NET2.0技术的Web数据库多层架构设计与实现[J].电子测量技术,2008,31(2):76-79.王静冬、贺涛、谢献平、王博.基于ASP.NET和SQLServer的网络教学平台的设计与实现[J].有线电视技术,2008,15(3):93-94.朱强、赖云灵.基于B/S结构的二级学院研究生学位信息管理系统[J].现代计算机:下半月版,2007,2:91-93.季修峰.ASP.NET开发疑难200问[M].北京:人民邮电出版社,2004.KimWimpsett.BeginningASP.NET2.0inC#2005[M].MatthewMacDonald,2006.RebeccaM.Riordan.MicrosoftADO.NETStepbyStep[M].MicrosoftPress,2004.BipinJoshi.ProfessionalADO.Net[M].MicrosoftPress,2001.RebeccaM.Riordan.MicrosoftADO.NETStepbyStep[M].MicrosoftPress,2004.外文文献TheJavaI/OSystemCreatingagoodinput/output(I/O)systemisoneofthemoredifficulttasksforthelanguagedesigner.Thisisevidencedbythenumberofdifferentapproaches.Thechallengeseemstobeincoveringalleventualities.NotonlyaretheredifferentsourcesandsinksofI/Othatyouwanttocommunicatewith(files,theconsole,networkconnections,etc.),butyouneedtotalktotheminawidevarietyofways(sequential,random-access,buffered,binary,character,bylines,bywords,etc.).TheJavalibrarydesignersattackedthisproblembycreatinglotsofclasses.Infact,therearesomanyclassesforJava’sI/Osystemthatitcanbeintimidatingatfirst(ironically,theJavaI/Odesignactuallypreventsanexplosionofclasses).TherewasalsoasignificantchangeintheI/OlibraryafterJava1.0,whentheoriginalbyte-orientedlibrarywassupplementedwithchar-oriented,Unicode-basedI/Oclasses.InJDK1.4,thenioclasses(for“newI/O,”anamewe’llstillbeusingyearsfromnow)wereaddedforimprovedperformanceandfunctionality.Asaresult,thereareafairnumberofclassestolearnbeforeyouunderstandenoughofJava’sI/Opicturethatyoucanuseitproperly.Inaddition,it’sratherimportanttounderstandtheevolutionhistoryoftheI/Olibrary,evenifyourfirstreactionis“don’tbothermewithhistory,justshowmehowtouseit!”Theproblemisthatwithoutthehistoricalperspective,youwillrapidlybecomeconfusedwithsomeoftheclassesandwhenyoushouldandshouldn’tusethem.ThischapterwillgiveyouanintroductiontothevarietyofI/OclassesinthestandardJavalibraryandhowtousethem.TheFileclassBeforegettingintotheclassesthatactuallyreadandwritedatatostreams,we’lllookatautilityprovidedwiththelibrarytoassistyouinhandlingfiledirectoryissues.TheFileclasshasadeceivingname;youmightthinkitreferstoafile,butitdoesn’t.Itcanrepresenteitherthenameofaparticularfileorthenamesofasetoffilesinadirectory.Ifit’sasetoffiles,youcanaskforthatsetusingthelist()method,whichreturnsanarrayofString.Itmakessensetoreturnanarrayratherthanoneoftheflexiblecontainerclasses,becausethenumberofelementsisfixed,andifyouwantadifferentdirectorylisting,youjustcreateadifferentFileobject.Infact,“FilePath”wouldhavebeenabetternamefortheclass.Thissectionshowsanexampleoftheuseofthisclass,includingtheassociatedFilenameFilterinterface.AdirectorylisterSupposeyou’dliketoseeadirectorylisting.TheFileobjectcanbelistedintwoways.Ifyoucalllist()withnoarguments,you’llgetthefulllistthattheFileobjectcontains.However,ifyouwantarestrictedlist—forexample,ifyouwantallofthefileswithanextensionof.java—thenyouusea“directoryfilter,”whichisaclassthattellshowtoselecttheFileobjectsfordisplay.Here’sthecodefortheexample.Notethattheresulthasbeeneffortlesslysorted(alphabetically)usingthejava.utils.Arrays.sort()methodandtheAlphabeticComparatordefinedinChapter11://:c12:DirList.java//Displaysdirectorylistingusingregularexpressions.//{Args:"D.*\.java"}importjava.io.*;importjava.util.*;importjava.util.regex.*;importcom.bruceeckel.util.*;publicclassDirList{publicstaticvoidmain(String[]args){Filepath=newFile(".");String[]list;if(args.length==0)list=path.list();elselist=path.list(newDirFilter(args[0]));Arrays.sort(list,newAlphabeticComparator());for(inti=0;i<list.length;i++)System.out.println(list[i]);}}
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 车辆工程师试题及答案
- 【中考真题】四川省绵阳市2026年中考地理真题(解析版)
- 2026生物教研面试题及答案
- 2026识字课面试题目及答案
- 2026税务培训面试题目及答案
- 2026年苏教版适配高一地理专题突破卷人口城市与产业布局标准试卷第120套(含答案解析与可打印作答区)
- 2026网络测试面试题目及答案
- 2026文明现象面试题目及答案
- 2026届高三数学高考冲刺模拟试卷(含答案详解与评分标准)
- 2026武汉商务局面试题及答案
- 3.3 整数、分数、小数的乘法(课件)(共24张)苏教版六年级数学上册
- 2025年一级消防工程师继续教育试题及答案
- 2026年国家开放大学本科《中国法律史》期末纸质考试试题及答案
- 海丰集团入职测试题库
- 2026年贵州省初中学业水平考试数学试卷试题(含答案详解)
- 2026年初中道德与法治新人教版八年级下册全册知识点(2026春新版)新版
- 2026年江西高考物理题库试题附答案完整版
- 2026年国开电大组织行为学形考复习试题及完整答案详解【夺冠系列】
- 2026具身智能技术及产业实践解决方案
- 加装电梯钢结构工程验收规范(TCEA0035-2026 )
- 2026年甘肃兰州市地理生物会考考试真题及答案
评论
0/150
提交评论