基于java的学生信息管理系统(含源文件)

欢迎添加微信互相交流学习哦!

二维码

项目源码:https://gitee.com/oklongmm/biye

内容摘要    - 2 -
引言    - 4 -
学生信息管理系统开发的意义和目的    - 4 -
国内研究现状和应用前景    - 4 -
研究课题主要内容    - 5 -
第1章    需求分析    - 6 -
第2章    系统分析    - 7 -
2.1.    结构选择:B/S    - 7 -
2.2.    编程语言选择:JSP/JAVA    - 7 -
2.3.    数据库选择:MySQL    - 7 -
2.4.    应用服务器选择:Tomcat    - 8 -
2.5.    开发工具选择:Eclipse    - 9 -
2.6.    图表制作工具选择:Microsoft Office Visio    - 10 -
第3章    总体设计    - 11 -
3.1.    主要功能    - 11 -
3.2.    系统功能模块图    - 11 -
3.3.    主要功能系统流程图    - 12 -
3.4.    数据库设计    - 12 -
第4章    详细设计    - 13 -
4.1.    数据库结构及语句    - 13 -
4.2.    整体布局    - 16 -
4.3.    登陆页面    - 16 -
4.4.    用户管理-学生管理    - 16 -
4.5.    用户管理-教师管理    - 17 -
4.6.    课程管理    - 17 -
4.7.    成绩管理    - 17 -
4.8.    系统管理    - 17 -
第5章    部署指南    - 18 -
5.1.    JAVA运行时环境    - 18 -
5.2.    数据库    - 21 -
5.3.    应用服务器    - 30 -
第6章    操作指南    - 32 -
6.1.    系统管理    - 32 -
6.2.    用户管理    - 35 -
6.3.    课程管理    - 37 -
6.4.    成绩管理    - 38 -
第7章    结论    - 39 -
第8章    参考文献    1
8.1.    著作图书文献    1
8.2.    译著图书文献    1
8.3.    学术刊物文献    1
8.4.    西文文献    1
第9章    后记    2
第10章    附录    3

内容摘要

当今社会中,计算机的使用已经深入到日常工作和生活的方方面面。Windows系统的推出使电脑从高雅的学术殿堂走入了寻常百姓家,各行各业的人们无须经过特别的训练就能够使用电脑完成许许多多复杂的工作。对于学生的学籍管理是一个教育单位不可缺少的部分,它的内容对学校的管理者来说至关重要,所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。而使用计算机对学生学籍信息进行管理,具有手工管理所无法比拟的优点,例如:检索迅速、查找方便、存储量大、保密性好等。这些优点能够极大地提高学生管理的效率,也是学校科学化、正规化管理的重要途径。
【关键字】学籍管理  软件工程  B/S  浏览器

 
Student's student status manages system

Nowadays in society, computer sigmatism already goes deep into the Fang Fang face arriving at daily work and life. Systematic debuting of Windows makes a computer run a family from elegant learning palace hall to have entered common common people , the all professions and trades people uses a computer to be completed unnecessarily by that special training can right away lots and lots of complicated job.We all know the self's status as a student to the student manages the part being a indispensability educating an unit, its content is to the school director all-important, therefore student self's status as a student management system ought to be able to be that the consumer provides sufficient information and rapid inquiry means.But always in the past people is using the artificial tradition way administration document file , this there is existing a lot of shortcoming in supervisor mode, such as: Inefficient , keep secret nature is bad , time is besides once long, will produce large amount of document and data, with regard to, this seeks , renews and defends the difficulty having brought about quite a few. Use a computer to carry out administration on student self's status as a student information but , have unable parallel handwork administration merit. For instance: The retrieval is prompt , seek to store reserves conveniently, keeping secret greatly, nature is easy to wait. These merit is able to improve efficiency managed by student tremendously , is also school scientification , regularization administrative important approach.
【Keywords】student manages  software engineering  B/S  browser


引言
学生信息管理系统开发的意义和目的
随着科学技术、管理方法的不断进步,传统的办公方式、方法和手段已经不能适应现代化管理的需要,作为培养高质量合格人才为宗旨的高等学校,总是走在科技的最前沿,学籍管理的计算机化已成为高校管理现代化、决策科学化的一个重要环节,是开创学籍管理工作新局面的必由之路。
学籍管理指学校对学生所获得的学籍资格进行管理。凡经过升学考试或按规定手续被正式录取的学生,入校办理注册手续后即取得该校学籍,它标志着学生取得了参加学习的资格。学籍是组织管理学生的客观依据。但传统的学籍管理模式和管理手段不仅大量地消耗人力、物力,同时,还存在诸多弊端,时常影响教学秩序,阻碍教学改革的深化,难以保证该项工作应具有的严肃性。
当前,学生信息管理的弊端主要表现在两方面:第一,工作繁杂、工作量大、错误率高;第二,缺乏监督体系和控制手段:学籍管理的政策性很强,应该严格按照上级部门的有关政策和规定办事,然而,由于传统的学籍管理模式缺乏有效的监督措施,使有关部门的政策规定难以得到及时准确的贯彻执行,使学籍管理工作完全失去了应有的严肃性,给学校的人才培养质量带来了严重的影响,也给社会带来了很大的负面影响。
学生信息管理系统要实现的目标是为该校提供全面的学生信息管理的解决方案,以解决传统人工管理方式效率低、保密性差,不利于查找、更新和维护的问题,极大地提高学生信息管理的效率,节约教育经费,以适应学校信息化建设的发展趋势。
具体目标如下:
提高学生信息管理的效率,节约管理成本,增强学生管理的安全性。满足学校领导、教育管理单位、学生管理人员、教师和学生的不同层次和不同方面的需要。
为学校将来的整体信息化建设提供必要的支持。
总之,通过该系统的建设来提高学校学生信息管理效率,使得学校的发展能够适应当前的教育信息化建设的总体发展趋势。
因此,开发一个功能完善、操作简单、界面友好、有针对性的学籍管理系统对学校、乃至社会都是非常必要,非常有意义的。
国内研究现状和应用前景
当前市场上学生信息管理方面软件较多,但一般都是单机版,没有实现连网功能。而就现在学生学籍信息管理的发展趋势,以及学校跨校区延伸管理和二级学院分级管理的实际情况,这种单机版的管理软件并不是很实用。市场上学生信息管理的软件侧重于记录学生的基本情况,其基本功能已不太适合现在规模扩大的广大学校。随着学校办学规模的扩大、专业设置和学生人数的逐年增加,原本基于小型数据库的、半手工操作、单机版的学生信息管理系统已经难以适应当今广大学校的发展要求,而应用先进的信息网络技术建立一套完整、规范的学生学籍信息资料计算机管理学籍,以便快捷地录入、统计、查询、检索学生的各类信息,及时了解学生的学习情况、使不同校区、二级学院、系部的分级管理达到资源共享,协同管理,实现管理信息现代化、规范化和科学化的学籍管理系统是现代学籍信息管理系统的发展趋势。它还必须具备使用方便,界面简洁,学校的管理人员很容易操作和使用的特点。相信这种学生信息管理软件会得到广大学校和广大学生信息管理人员的青睐。
由于本系统管理的对象单一,都是学生,且每个数据内容具有较强的关联性,涉及的计算过程不是很复杂。因此,比较适合于采用数据库管理。在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上资料,特别是参考其它程序的功能,因此完全可以实现。
研究课题主要内容
本项目是“学生信息管理系统”,使用人群为各学校学籍管理人员,目的是提高学籍管理人员的办公效率和减少差错率。
“学籍管理”是指对学生的入学注册、考勤纪律、课程修读和考核、学籍异动以及毕业资格、学位授予等方面的管理,是教务管理的一个重要组成部分,也是保证学校教学工作正常运转的一个重要方面。而在科技信息时代,学籍管理就要基于计算机的控制与帮助,用计算机实现管理学生学籍这项繁琐的工作。它充分结合学校运作的实际情况,建立一个实用性强的系统。使操作者进行最简单的工作过程,完成最复杂的工作程序。
本系统能够帮助使用者快速地增删改查学生信息,并对学生学籍设置各种状态。另外还有学生成绩记录查询功能。本项目能使我们了解信息管理系统的优越性,且可作为学习软件工程学的范本。
由于时间紧,任务多,所以系统功能求精不求多,并未实现真实应用系统的全部细节。本人要做的主要内容是按软件工程的规范完成所有工作,主要有以下几点:需求分析、系统分析、总体设计、详细设计、编码、测试。


 

第1章    需求分析
为方便学校做好学生信息管理工作,设计一个学生信息管理系统,在设计过程中作了系统分析和总体设计,软件设计采取模块化的设计思路。
该学生信息管理系统主要对学生学籍信息、成绩信息进行管理,提供一个平台,供学籍管理人员增删改查学生信息、学生成绩信息。系统分为学生信息管理、学生成绩管理、信息查询等几个模块。学籍管理人员登录成功后可以对学生信息管理、学生成绩管理、信息查询等模块进行操作,如学生信息添加、修改、删除和查询;学生成绩登记、修改、删除和查询;查询信息等。
在“学生信息管理系统”开发时应该满足以下具体的系统需求:
考虑到系统的保密性,需要有系统登陆功能;系统使用者为学校学籍管理人员。暂不需要考虑用户的前台增加功能和权限问题。
可多人同时操作本系统。
能够保障管理数据的安全、准确;能够实现方便的扩展,满足学校发展的需要。
易安装、部署;系统维护方便;对操作人员的技能要求比较低,操作方便。
学生学籍信息的增加。用户根据需要来录入数据,但必须保证其正确性和准确性。
学生学籍信息的删改查,学生学籍状态的标识。用户根据需要对指定的数据进行修改,由于记录繁多,因此用户可能首先要输入一定的查询条件,缩小记录范围,然后再从该范围中找到制定的记录进行修改,保证修改的内容的正确性和准确性后可更新数据库的数据。
对学生某学年某学科成绩信息的增删改查。用户根据需要对指定的数据进行修改,由于记录繁多,因此用户可能首先要输入一定的查询条件,缩小记录范围,然后再从该范围中找到制定的记录进行修改,保证修改的内容的正确性和准确性后可更新数据库的数据。
提供方便灵活的数据查询功能,满足繁杂、多样的数据查询需求。
系统维护方便。
 

第2章    系统分析
2.1.    结构选择:B/S
B/S结构,即Browser/Server(浏览器/服务器)结构,它随着Internet技术的兴起,是对C/S(客户机/服务器)结构的一种变化或者说是其改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3层结构。B/S结构利用不断成熟和普及的浏览器技术实现原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。对一个稍具规模的单位来说,系统管理人员如果需要在几百甚至几千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。所以客户机越来越"瘦"而服务器越来越"胖"是将来软件的主流发展方向,这使得升级和维护越来越容易,使用越来越简单。这种结构更成为当今应用软件的首选体系结构。因此,本系统决定采用B/S结构。
2.2.    编程语言选择:JSP/JAVA 
JSP的设计目标主要是提供一种更为简便、有效的动态网页编写手段,并且增强网页程序的独立性、兼容性和可重用性。它是通过以下几个方面加以实现的:
简便性和有效性。JSP动态网页的编写与一般的静态HTML的网页的编写是十分相似的。只是在原来的HTML网页中加入一些JSP专有的标签,或是一些脚本程序。这样,熟悉HTML网页编写的设计人员可以很容易进行JSP网页的开发。而且开发人员完全可以不亲自编写脚本程序,而只是通过JSP独有的标签利用别人已写好的部件来实现动态网页的编写。这样,不熟悉脚本语言的网页开发者,完全可以利用JSP做出漂亮的动态网页。这在其他的动态网页开发中是不可思议的;
程序的独立性。JSP是Java API家族的一部分,它拥有一般的Java程序的跨平台的特性,换句话说,就是拥有程序的对平台的独立性。即:Write once, Run anywhere! 
程序的兼容性。因为 JSP中的动态内容可以各种形式进行显示,所以它可以为各种客户提供服务:从使用HTML/DHTML的浏览器,到使用WML的各种手提无线设备(如移动电话和个人数字设备PDA),再到使用XML的B2B应用,都可以使用JSP的动态页面;
程序的可重用性。在 JSP页面中可以不直接将脚本程序嵌入,而只是将动态的交互部分作为一个部件加以引用。这样,一旦这样的一个部件写好,它可以为多个程序重复引用,实现了程序的可重用性。现在,大量的标准JavaBean程序库就是一个很好的例证;
JSP/JAVA语言的优点不言而喻,它对于用户界面的更新,其实就是由Web Server进行的,给人的感觉更新很快;所有的应用都是基于服务器的,所以它们可以时刻保持最新版本;客户端的接口不是很繁琐,对于各种应用易于部署、维护和修改。因此,本系统采用JSP/JAVA语言开发,JDK选择1.4.2版本。
2.3.    数据库选择:MySQL
MySQL是最流行的开放源码SQL数据库管理系统,它是由MySQL AB公司开发、发布并支持的。MySQL AB是由多名MySQL开发人创办的一家商业公司。它是一家第二代开放源码公司,结合了开放源码价值取向、方法和成功的商业模型。
2.3.1.    MySQL是一种数据库管理系统
数据库是数据的结构化集合。它可以是任何东西,从简单的购物清单到画展,或企业网络中的海量信息。要想将数据添加到数据库,或访问、处理计算机数据库中保存的数据,需要使用数据库管理系统,如MySQL服务器。计算机是处理大量数据的理想工具,因此,数据库管理系统在计算方面扮演着关键的中心角色,或是作为独立的实用工具,或是作为其他应用程序的组成部分。
2.3.2.    MySQL是一种关联数据库管理系统
关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大的仓库内。这样就增加了速度并提高了灵活性。MySQL的SQL指得是“结构化查询语言”。SQL是用于访问数据库的最常用标准化语言,它是由ANSI/ISO SQL标准定义的。SQL标准自1986年以来不断演化发展,有数种版本。在本手册中,“SQL-92”指得是1992年发布的标准,“SQL:1999”指得是1999年发布的标准,“SQL:2003”指得是标准的当前版本。我们采用术语“SQL标准”标示SQL标准的当前版本。
2.3.3.    MySQL软件是一种开放源码软件
“开放源码”意味着任何人都能使用和改变软件。任何人都能从Internet下载MySQL软件,而无需支付任何费用。如果愿意,你可以研究源码并进行恰当的更改,以满足你自己的需求。MySQL软件采用了GPL(GNU通用公共许可证),http://www.fsf.org/licenses/,定义了在不同情况下可以用软件作的事和不可作的事。如果你对GPL不满意,或需要在商业应用程序中嵌入MySQL代码,可从我方购买商业许可版本。
2.3.4.    MySQL数据库服务器具有快速、可靠和易于使用的特点
MySQL服务器还有一套实用的特性集合,这些特性是通过与我们用户的密切合作而开发的。
MySQL服务器最初是为处理大型数据库而开发的,与已有的解决方案相比,它的速度更快,多年以来,它已成功用于众多要求很高的生产环境,很多著名网站也是基于MySQL开发的,例如www.verycd.com。尽管MySQL始终在不断发展,但目前MySQL服务器已能提供丰富和有用的功能。它具有良好的连通性、速度和安全性。
我们有理由相信MySQL会发展得更好,因此本项目的数据库采用MySQL。
2.4.    应用服务器选择:Tomcat
如今,基于Web的应用越来越多,传统的Html已经满足不了如今的需求。我们需要一个交互式的Web,于是便诞生了各种Web语言。如Asp,Jsp,Php等。当然,这些语言与传统的语言有着密切的联系,如Php基于C和C++语言,Jsp基于Java语言。本文所要介绍的Tomcat即是一个Jsp和Servlet的运行平台。
2.4.1.    什么是Jsp和Servlet
Jsp(JavaServer Page)是在普通Html中嵌入了Java代码的一个脚本,在这一点上,它与其它的脚本语言(如Php)一样,但它与其它语言不同的是:其它脚本语言由服务器直接解释这个脚本,而Jsp则由Jsp容器(如Tomcat)首先将其转化为Servlet,然后再调用Javac将Servlet编译为Class文件。最终,服务器解释的是Class文件。那么什么是Servlet呢?Servlet其实是一个特殊的Java类,Servlet类一般从HttpServlet类继承而来,在这个类中至少要实现doGet或者doPost函数,在这两个函数中处理来自客户的请求,然后将结果返回。Servlet和Jsp是Sun公司J2EE架构中重要的部分。由于基于Java语言,因此其可以方便的调用功能强大的Java API(如JDBC)。
2.4.2.    Tomcat概述
Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。Tomcat被JavaWorld杂志的编辑选为2001年度最具创新的java产品,可见其在业界的地位。
Tomcat提供了各种平台的版本供下载,可以从其官方网站上下载其源代码版或者二进制版。由于Java的跨平台特性,基于Java的Tomcat也具有跨平台性。
Tomcat也提供其它的一些特征,如与SSL集成到一块,实现安全传输。还有Tomcat也提供JNDI支持,这与那些J2EE应用服务器提供的是一致的。说到这里我们要介绍一下通常所说的应用服务器(如WebLogic)与Tomcat有何区别。应用服务器提供更多的J2EE特征,如EJB,JMS,JAAS等,同时也支持Jsp和Servlet.而Tomcat则功能没有那么强大,它不提供EJB等支持。但如果与JBoss(一个开源的应用服务器)集成到一块,则可以实现J2EE的全部功能。既然应用服务器具有Tomcat的功能,那么Tomcat有没有存在的必要呢?事实上,我们的很多中小应用不需要采用EJB等技术,Jsp和Servlet已经足够,这时如果用应用服务器就有些浪费了。而Tomcat短小精悍,配置方便,开源免费,能满足我们的需求,这种情况下我们自然会选择Tomcat。
2.4.3.    展望
Tomcat确实是一个很好的工具,不仅仅因为其免费,功能强大,更因为其开放性。我们有理由相信Tomcat会走得更远。
2.5.    开发工具选择:Eclipse+myEclipse
Eclipse是一种可扩展的开放源代码IDE。2001年11月,IBM公司捐出价值4,000万美元的源代码组建了Eclipse联盟,并由该联盟负责这种工具的后续开发。集成开发环境(IDE)经常将其应用范围限定在“开发、构建和调试”的周期之中。为了帮助集成开发环境(IDE)克服目前的局限性,业界厂商合作创建了Eclipse平台。Eclipse允许在同一IDE中集成来自不同供应商的工具,并实现了工具之间的互操作性,从而显著改变了项目工作流程,使开发者可以专注在实际的嵌入式目标上。 
Eclipse框架的这种灵活性来源于其扩展点。它们是在XML中定义的已知接口,并充当插件的耦合点。扩展点的范围包括从用在常规表述过滤器中的简单字符串,到一个Java类的描述。任何Eclipse插件定义的扩展点都能够被其它插件使用,反之,任何Eclipse插件也可以遵从其它插件定义的扩展点。除了解由扩展点定义的接口外,插件不知道它们通过扩展点提供的服务将如何被使用。 
利用Eclipse,我们可以将高级设计(也许是采用UML)与低级开发工具(如应用调试器等)结合在一起。如果这些互相补充的独立工具采用Eclipse扩展点彼此连接,那么当我们用调试器逐一检查应用时,UML对话框可以突出显示我们正在关注的器件。事实上,由于Eclipse并不了解开发语言,所以无论Java语言调试器、C/C++调试器还是汇编调试器都是有效的,并可以在相同的框架内同时瞄准不同的进程或节点。 
Eclipse的最大特点是它能接受由Java开发者自己编写的开放源代码插件,这类似于微软公司的Visual Studio和Sun 微系统公司的NetBeans平台。Eclipse为工具开发商提供了更好的灵活性,使他们能更好地控制自己的软件技术。这是一款非常受欢迎的java开发工具,在国内的用户越来越多,实际上使用它的java开发人员是最多的。
因其用户广泛、免费开源、功能强大,本项目的开发工具使用Eclipse。
而myEclipse只是Eclipse的一个插件。
2.6.    图表制作工具选择:Microsoft Office Visio
Microsoft Office Visio 2003 是微软公司Office 2003套件中的组成部分,秉承了微软产品一贯的易用特色,Visio 2003 非常容易上手,并用其提供的大量模板轻松的制作出想要的清晰效果,且可与Office 2003 其它产品实现互操作,如在Word 2003 中可直接编辑Visio 2003 制作的图标。
Microsoft Office Visio 2003 有助于 IT 和商务专业人员轻松地可视化、分析和交流复杂信息。它能够将难以理解的复杂文本和表格转换为一目了然的 Visio 图表。该软件通过创建与数据相关的 Visio 图表(而不使用静态图片)来显示数据,这些图表易于刷新,并能够显著提高生产率。使用 Office Visio 中的各种图表可了解、操作和共享企业内组织系统、资源和流程的有关信息。
2.6.1.    使复杂信息可视化以便更好地了解
Office Visio 2003 提供了各种模板:业务流程的流程图、网络图、工作流图、数据库模型图和软件图,这些模板可用于可视化和简化业务流程、跟踪项目和资源、绘制组织结构图、映射网络、绘制建筑地图以及优化系统。
2.6.2.    分析信息以标识趋势和问题并采取相应措施
使用 Office Visio 2007 可使您的图表更加智能,方法是将图表链接到数据以提供流程、项目或系统的更加完整的画面。直观地分析信息以标识关键的趋势、问题和异常并采取相应措施。通过分析、深入研究和创建业务数据的多个视图来洞悉业务数据。
2.6.3.    使用可与多人共享的图表进行交流
使用 Visio 图表交流信息,可以最大程度地实现单独的文字和数字无法达到的效果。然后,可与其他人(甚至是没有安装 Visio 的用户)共享具有专业外观的 Visio 图表。
基于以上理由,我在此项目中选择使用Visio 2003 作为软件结构图、流程图等图标的制作工具。
 

第3章    总体设计
3.1.    主要功能
系统管理,包括修改密码、数据字典(指省份、政治面貌等字典项目)的增删改查、登出;
用户管理,包括用户信息的增删改查;
学生管理,包括学生信息的增删改查;
课程管理,包括课程信息的增删改查;
成绩管理,包括成绩信息的增删改查。
3.2.    系统功能模块图

3.3.    主要功能系统流程图
 
图3-2
3.4.    数据库设计
学生信息:包括的数据项有学生编号、学生姓名、身份证号、学生年龄、学生性别、班级名称、出生年月、入学年份、学生专业、政治面貌、民族、家庭地址、学生状态等;
用户信息:包括的数据项有用户名、密码、用户姓名等;
成绩信息:包括的数据项有学生编号、学生姓名、课程编号、课程名称、考试类型、考试成绩等;
课程信息:包括的数据项有课程编号、课程名称、教师姓名、课程学分、课程学时、课程描述等;
数据字典:在增删改查过程中,能选择的就要使用列表框选择,以达到统一完整的目的。包括的数据项有使用标识、用户类型、入学年份、省份、政治面貌、民族、考试性质、学生状态。
 

第4章    详细设计
4.1.    数据库结构及语句
4.1.1.    用户表
 
图4-1
CREATE TABLE `users` (
  `id` int(11) NOT NULL auto_increment,
  `username` varchar(20) default NULL,
  `password` varchar(20) default NULL,
  `usertype` varchar(20) default NULL,
  `truename` varchar(20) default NULL,
  `use_flag` int(11) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk
4.1.2.    学生表
 
图4-2
CREATE TABLE `students` (
  `id` int(11) NOT NULL auto_increment,
  `loginid` int(11) default NULL,
  `code` varchar(20) default NULL,
  `name` varchar(50) default NULL,
  `cardid` varchar(20) default NULL,
  `age` int(11) default NULL,
  `sex` int(11) default NULL,
  `birthday` date default NULL,
  `classname` varchar(50) default NULL,
  `studyyear` varchar(20) default NULL,
  `studycode` varchar(20) default NULL,
  `politicallandscape` varchar(20) default NULL,
  `nationality` varchar(20) default NULL,
  `familyaddress` varchar(300) default NULL,
  `use_flag` int(11) default NULL,
  `type` varchar(20) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk
4.1.3.    课程表
 
图4-3
CREATE TABLE `course` (
  `id` int(11) NOT NULL auto_increment,
  `coursecode` varchar(20) default NULL,
  `coursename` varchar(50) default NULL,
  `teacherid` int(11) default NULL,
  `coursescore` int(11) default NULL,
  `coursetime` int(11) default NULL,
  `description` varchar(400) default NULL,
  `use_flag` int(11) default NULL,
  `teacherName` varchar(20) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk
4.1.4.    成绩表
 
图4-4
CREATE TABLE `scores` (
  `id` int(11) NOT NULL auto_increment,
  `studentid` int(11) default NULL,
  `courseid` int(11) default NULL,
  `examtype` varchar(20) default NULL,
  `score` int(11) default NULL,
  `examdate` date default NULL,
  `status` int(11) default NULL,
  `use_flag` int(11) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk
4.1.5.    数据字典索引表
 
图4-5
CREATE TABLE `tbl_dictionaryindex` (
  `INTINDEXID` int(6) NOT NULL auto_increment,
  `NVCINDEXCODE` varchar(5) NOT NULL default '',
  `NVCINDEXNAME` varchar(15) NOT NULL default '',
  `NVCDESCRIPTION` varchar(25) NOT NULL default '',
  `TINTSTATUS` int(3) NOT NULL default '0',
  `DTUPDATETIME` datetime default NULL,
  PRIMARY KEY  (`INTINDEXID`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk
4.1.6.    数据字典数据表
 
图4-6
CREATE TABLE `tbl_dictionary` (
  `INTDICTIONARYID` int(11) NOT NULL auto_increment,
  `NVCDICTIONARYCODE` varchar(10) NOT NULL,
  `NVCINDEXCODE` varchar(10) NOT NULL,
  `NVCNAME` varchar(50) NOT NULL,
  `NVCVALUE` varchar(50) NOT NULL default '',
  `NVCDESCRIPTION` varchar(100) default NULL,
  `TINTSTATUS` int(3) NOT NULL default '0',
  `DTUPDATETIME` datetime NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (`INTDICTIONARYID`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk
4.2.    整体布局
页面为上左右布局;顶端显示LOGO:学生信息管理系统;下左为功能菜单列表,包括用户管理、课程管理、成绩管理、系统管理;下右为主要功能区域。
4.3.    登陆页面
布局:
两个标签:用户名、密码。
两个文本输入框:用户名、密码。
两个按钮:登陆、重置。
功能:起始页面为登陆页面,点击“登陆”按钮,若用户名、密码不匹配,则系统提示错误重新填写。若正确,则进入主功能页面。
注:默认管理员用户名为“admin”,密码为“123”。
4.4.    用户管理-学生管理
进入后列表显示所有学生信息,每个条目包含编号、姓名、年龄、班级、民族、专业、政治面貌等信息。
列表上方放置查询、添加、删除等相关功能按钮。
点击每个条目的编号可以进入学生信息页面,学生本人和教师可以修改学生信息。
4.5.    用户管理-教师管理
进入后列表显示所有教师信息,每个条目包含编号、姓名、是否使用等信息。
列表上方放置查询、添加、删除等相关功能按钮。
点击每个条目的编号可以进入教师信息页面,教师可以修改本人信息。
4.6.    课程管理
进入后列表显示所有课程信息,每个条目包含编号、名称、学分、学时、教师、是否使用等信息。
列表上方放置查询、添加、删除等相关功能按钮。
点击每个条目的编号可以进入课程信息页面,教师可以修改学生信息。
4.7.    成绩管理
进入后列表显示所有成绩信息,每个条目包含学生编号、学生姓名、课程编号、课程名称、考试类型、考试成绩、操作等信息。
列表上方放置查询、添加、删除等相关功能按钮。
点击每个条目的修改链接可以进入成绩信息页面,教师可以修改成绩信息。
4.8.    系统管理
布局:每个功能页面的LOGO下放置“数据字典维护”、“修改密码”、“退出系统”按钮。
功能:
“修改密码”功能可以进入修改用户密码;
“退出系统”功能可以直接推出系统;
“数据字典维护”功能可以进入系统数字字典维护页面,该页面可以对系统各处引用到的字典进行维护,包括如学生在校状态、政治面貌、省份、入学年份、民族等。

第5章    部署指南
5.1.    JAVA运行时环境
5.1.1.    安装JAVA运行时
运行文件“jdk-6u6-windows-i586-p(JDK 1.6.exe”,开始安装;如图选择,单击“Next”按钮;
 
图5-1
单击“接受(A)”按钮;
 
图5-2
单击“下一步(N)”按钮;
 
图5-3
单击“下一步(N)”按钮;
 
图5-4
单击“完成(F)”按钮,结束安装。
5.1.2.    配置环境变量
右击“我的电脑”,选择“属性”→“高级”→“环境变量”,如下图,单击“系统变量(S)”的“新建”按钮;
 
图5-5
按图输入“变量名”和“变量值”,单击“确定”按钮;
 
图5-6
选择“系统变量(S)”的“Path”变量,点击“编辑”按钮,在“变量值”最后加入“;%JAVA_HOME%\bin”,单击“确定”按钮,完成修改。
 
图5-7
5.1.3.    测试JAVA运行时
选择“开始”→“运行”,输入“cmd”,单击“确定”按钮;
 
图5-8
输入“javac”→回车,出现下图显示文字说明已经配置正确。
 
图5-9
5.2.    数据库
5.2.1.    安装数据库
运行文件“MySQL Server 5.0.msi”,开始安装;单击“Next”按钮;
 
图5-10
如图选择,单击“Next”按钮;
 
图5-11
单击“Install”按钮;
 
图5-12
如图选择,单击“Next”按钮;
 
图5-13
如图选择,单击“Finish”按钮,至此MySQL Server安装完成,以下为配置过程。
 
图5-14
5.2.2.    配置数据库
单击“Next”按钮;
 
图5-15
如图选择,单击“Next”按钮;
 
图5-16
如图选择,单击“Next”按钮;
 
图5-17
如图选择,单击“Next”按钮;
 
图5-18
如图选择,单击“Next”按钮;
 
图5-19
如图选择,单击“Next”按钮;
 
图5-20
如图选择,单击“Next”按钮;
 
图5-21
如图选择,单击“Next”按钮;
 
图5-22
如图选择,单击“Next”按钮;
 
图5-23
如图选择,密码处填写为“123456”,单击“Next”按钮;
 
图5-24
单击“Excute”按钮;
 
图5-25
单击“Finish”按钮,数据库配置完成。
 
图5-26

5.2.3.    部署数据库文件
复制数据库文件夹“xjgl”到目录“C:\Program Files\MySQL\MySQL Server 5.0\data”下。
5.3.    应用服务器
5.3.1.    安装应用服务器
服务器使用的是apache-tomcat-6.0.18.zip精简版,直接解压即可使用。
运行tomcat,单击D:\apache-tomcat-6.0.18\bin 里的“startup.bat” 快捷方式,完成应用服务器的启动。
在浏览器地址栏输入http://localhost:8080/,若出现如下界面,说明tomcat安装配置成功。
 
图5-27
5.3.2.    部署项目文件
将工程文件夹“xjgl”复制到eclipse的workspace中,启动eclipse。先配置服务器,依次点击Window→Preferences→MyEclipse→Servers→Tomcat→Tomcat 6.x,选择Enable,找到Tomcat的安装目录,点击OK,即完成服务器的配置;再点击发布项目的图标,把该项目发布到Tomcat中,再启动Tomcat服务器。
在浏览器地址栏输入http://localhost:8080/xjgl/,若出现如下界面,说明“学生信息管理系统”部署成功。
 
图5-28
第6章    操作指南
6.1.    系统管理
6.1.1.    登陆系统
在“用户名”和“密码”输入框分别输入“admin”和“123”,单击“登陆”按钮,进入系统,这是系统默认存在的超级管理员;
单击“重填”按钮可以清空“用户名”和“密码”输入框中的内容;
 
图6-1
6.1.2.    修改密码
单击右上“修改密码”链接;
 
图6-2
在“原始密码”输入框中输入原密码,在“新密码”和“确认新密码”输入框中输入希望变更为的密码,单击“确定”按钮更改密码;
单击“取消”按钮退回上一页面。
 
图6-3
6.1.3.    数据字典维护
选择左侧菜单中的“系统管理”→“数据字典维护”功能,进入“数据字典索引-列表”页面,这里可以增删改查系统其它功能模块中引用的数据字典项,如学生在校状态、政治面貌、省份、入学年份、民族等;
 
图6-4
单击每个条目的“编码”,可以对本条目进行“编码”、“名称”、“说明”的更改;
 
图6-5
单击每个条目的“数据项图标”,可以对本条目的内容进行增删改查。
 
图6-6
6.2.    用户管理
6.2.1.    学生管理
选择左侧菜单中的“用户管理”→“学生管理”功能,进入“学生表-列表”页面,这里可以增删改查学生信息;
每个新增的学生自动成为系统的用户,具备学生权限,如查看课程、成绩、查看和修改本人信息;“用户名”和“密码”默认为该学生的“学生编号”和“123”,密码在登陆系统后可自行更改;
 
图6-7
单击每个条目的“学生编号”,可以对本条目的内容进行更改;
 
图6-8
6.2.2.    教师管理
选择左侧菜单中的“用户管理”→“教师管理”功能,进入“学生表-列表”页面,这里可以增删改查教师信息;
每个新增的教师自动成为系统的用户,具备教师权限,如查看课程、成绩、查看和修改本人信息等;“用户名”和“密码”均可在此设定,密码在登陆系统后可自行更改;
 
图6-9
单击每个条目的“用户名”,可以对本条目的内容进行更改。
 
图6-10
6.3.    课程管理
选择左侧菜单中的“课程管理”→“课程信息维护”功能,进入“课程表-列表”页面,这里可以增删改查课程信息;
 
图6-11
单击每个条目的“课程编号”,可以对本条目的内容进行更改。
 
图6-12
6.4.    成绩管理
选择左侧菜单中的“成绩管理”→“成绩信息维护”功能,进入“成绩表-列表”页面,这里可以增删改查成绩信息;
 
图6-13
单击每个条目的“修改”标签,可以对本条目的内容进行更改。
 
图6-14

第7章    结论
经过几个月的设计和开发,“学生信息管理系统”基本开发完毕。其功能基本达到预期目的,并提供部分系统维护功能,对于数据的一致性的问题也通过程序进行了有效的解决。但是由于毕业设计时间较短,所以该系统还有许多不尽如人意的地方,有待进一步改善。
本人对系统数据字典维护功能模块比较满意,也认为这是本项目同一般同类系统的最大创新之处。本系统中基本功能模块用的到多数数据字典项都可以根据需要灵活设置,可最大满足用户个性化需要。但同样因工期紧张因素,个别不重要的数据字典没有给与维护功能。若有更多时间和精力,可以将系统中所有数据字典项均放到数据字典维护功能模块中,此处才可称完美。
本系统的用户管理和权限管理是使本系统设计更上一层楼的重点。若可能,设置增删改查用户功能,所有用户必须是系统中已经存在的学生或教师,但已经存在的学生或教师不一定是本系统的用户。另外,管理员可以自定义各种角色,对每种角色可以设置浏览(本人或他人)、新增、删除(本人或他人)、修改(本人或他人)各功能模块各数据条目,对每个用户应用不同角色,也可对用户直接配置权限。此处是非常复杂的设计。
以上是本人对“学生信息管理系统”的特点和不足之处的总结,以及对系统未来的展望。


 

第8章    参考文献
8.1.    著作图书文献
[1]杨中科.《J2EE开发全程实录》.清华大学出版社.2007年9月;
[2]曾建潮.《软件工程》.武汉理工大学出版社.2008年5月;
[3]沈洁.《数据库设计入门经典》.清华大学出版社.2007年3月
[4]何玉洁.《数据库设计教程》.械工业出版社.2005年1月
8.2.    译著图书文献
[5] JOHNSON R.Expert one-on-one J2EE design and development[M]. 魏海萍译.北京:电子工业出版社,2003.
8.3.    学术刊物文献
[6] 揭安全,李云清,杨庆红等.“数据结构”课程教学改革与创新[J].计算机教育,2008,(10):132-133;
[7] 张爱平,赖欣. 在JSP中调用JavaBean实现Web数据库访问[J]. 计算机时代, 2007,(01):65-67;
[8] 徐长盛,戴超.一种快速开发Web应用程序方法的研究[J]. 计算机工程与设计,2004,(12):2237-2239;
8.4.    西文文献
     [9] GAMMA E, HELM R, JOHNSON R, et al. Design patterns:Elements of reusable object-oriented software[M]. Addison Wesley, 1994. 
[10] JOHNSON R, HOELLER J, ARENDSEN A, et al. Java/J2EE application framework reference document. V1.1. 2004.

第9章    后记
回顾该系统从选题到需求分析、设计、编码、测试等,论文的撰写这一过程,感想和收获颇多。
如果项目管理,进行实际开发会发现需求分析与系统设计占主要的时间,编码实现占用的时间很短。所以我们要借助软件工程的思想对软件开发过程进行控制。
在开发一个系统时,前期的分析准备工作非常的重要。对于系统的需求要明确,这样才能做到有的放矢。特别是对于系统中数据的存储和重要算法的设计,设计的不好会出现大量的冗余,不仅浪费存储空间,还影响查询效率。
在设计的初期,对一个功能模块的设计,要想出两种或两种以上方案,这样可以进行比较,从而获得更佳的设计方案,设计开发过程中一定要吸取经验教训,避免返工。尤其是一些重要算法或功能。在对具体实现功能模块进行编程时,要养成良好的加注释的习惯,这样的话不仅能理清思路,而且可以为以后的调试程序带来很大的方便。
懂得充分利用网络资源,因为实地调研的时间是非常有限的,所以需求分析中大部分分析结构都是在我阅读专业书籍,网络资料后得出的。
由于本人是初次开发系统,在知识、经验方面都存在着不足。另外,在整个开发的过程中,时间也比较仓促。因此,该系统必然会存在一些缺陷和不足。谨请各位老师提出宝贵的意见。
在本次毕业设计中,我从指导老师身上学到了很多东西。老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅,无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助,感谢他耐心的辅导。
另外,还有同班的同学同样给与我不少帮助,这里一并表示感谢。 

第10章    附录
源代码:
     Struts中的struts-config配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

<struts-config>
  <data-sources />
  <form-beans >
    <form-bean name="logonForm" type="cn.system.manage.login.servlet.struts.LogonForm" />
    <form-bean name="dictionaryIndexForm" type="cn.system.manage.dictionaryindex.servlet.struts.DictionaryIndexForm" />
    <form-bean name="dictionaryIndexListForm" type="cn.system.manage.dictionaryindex.servlet.struts.DictionaryIndexListForm" />
    <form-bean name="dictionaryForm" type="cn.system.manage.dictionary.servlet.struts.DictionaryForm" />
    <form-bean name="dictionaryListForm" type="cn.system.manage.dictionary.servlet.struts.DictionaryListForm" />
    <form-bean name="studentForm" type="cn.system.manage.student.servlet.struts.StudentForm" />
    <form-bean name="studentListForm" type="cn.system.manage.student.servlet.struts.StudentListForm" />
    <form-bean name="courseForm" type="cn.system.manage.course.servlet.struts.CourseForm" />
    <form-bean name="courseListForm" type="cn.system.manage.course.servlet.struts.CourseListForm" />
    <form-bean name="scoresForm" type="cn.system.manage.scores.servlet.struts.ScoresForm" />
    <form-bean name="scoresListForm" type="cn.system.manage.scores.servlet.struts.ScoresListForm" />
    <form-bean name="userForm" type="cn.system.manage.user.servlet.struts.UserForm" />
    <form-bean name="userListForm" type="cn.system.manage.user.servlet.struts.UserListForm" />   
  </form-beans>

  <global-exceptions />
  <global-forwards />
  <action-mappings >
    <action
      attribute="loginForm"
      input="/login.jsp"
      name="logonForm"
      path="/login"
      scope="request"
      type="cn.system.manage.login.servlet.struts.LogonAction" >
      <forward name="success" path="/index.jsp" />
      <forward name="failure" path="/login.jsp" />
      <forward name="logoerror" path="/loginerr.jsp" />
    </action>
    
    <action  path="/logoff"
    type="cn.system.manage.login.servlet.struts.LogoffAction" 
    validate="false" 
    scope="request">
      <forward name="success" path="/login.jsp" redirect="true" />
    </action>  
    
      <action path="/dictionaryIndexAdd"
          name="dictionaryIndexForm"
          type="cn.system.manage.dictionaryindex.servlet.struts.DictionaryIndexAddAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/dictionaryindex/dictionaryindexadd.jsp" redirect="false"/>
  </action>
  <action path="/dictionaryIndexAddSave"
          name="dictionaryIndexForm"
          type="cn.system.manage.dictionaryindex.servlet.struts.DictionaryIndexAddSaveAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/dictionaryindex/dictionaryindexforward.jsp" redirect="false"/>
     <forward name="failure" path="/WEB-INF/jsp/dictionaryindex/dictionaryindexforward.jsp" redirect="false"/>
  </action>
  <action path="/dictionaryIndexEdit"
          name="dictionaryIndexForm"
          type="cn.system.manage.dictionaryindex.servlet.struts.DictionaryIndexEditAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/dictionaryindex/dictionaryindexedit.jsp" redirect="false"/>
  </action>
  <action path="/dictionaryIndexEditSave"
          name="dictionaryIndexForm"
          type="cn.system.manage.dictionaryindex.servlet.struts.DictionaryIndexEditSaveAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/dictionaryindex/dictionaryindexforward.jsp" redirect="false"/>
     <forward name="failure" path="/WEB-INF/jsp/dictionaryindex/dictionaryindexforward.jsp" redirect="false"/>
  </action>
  <action path="/dictionaryIndexShow"
          type="cn.system.manage.dictionaryindex.servlet.struts.DictionaryIndexShowAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/dictionaryindex/dictionaryindexshow.jsp" redirect="false"/>
  </action>
  <action path="/dictionaryIndexSearch"
          type="cn.system.manage.dictionaryindex.servlet.struts.DictionaryIndexSearchAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/dictionaryindex/dictionaryindexsearch.jsp" redirect="false"/>
  </action>
  <action path="/dictionaryIndexList"
          name="dictionaryIndexListForm"
          type="cn.system.manage.dictionaryindex.servlet.struts.DictionaryIndexListAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/dictionaryindex/dictionaryindexlist.jsp" redirect="false"/>
     <forward name="del" path="/WEB-INF/jsp/dictionaryindex/dictionaryindexforward.jsp" redirect="false"/>
  </action>
     
     <action path="/dictionaryAdd"
          name="dictionaryForm"
          type="cn.system.manage.dictionary.servlet.struts.DictionaryAddAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/dictionary/dictionaryadd.jsp" redirect="false"/>
  </action>
  <action path="/dictionaryAddSave"
          name="dictionaryForm"
          type="cn.system.manage.dictionary.servlet.struts.DictionaryAddSaveAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/dictionary/dictionaryforward.jsp" redirect="false"/>
     <forward name="failure" path="/WEB-INF/jsp/dictionary/dictionaryforward.jsp" redirect="false"/>
  </action>
  <action path="/dictionaryEdit"
          name="dictionaryForm"
          type="cn.system.manage.dictionary.servlet.struts.DictionaryEditAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/dictionary/dictionaryedit.jsp" redirect="false"/>
  </action>
  <action path="/dictionaryEditSave"
          name="dictionaryForm"
          type="cn.system.manage.dictionary.servlet.struts.DictionaryEditSaveAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/dictionary/dictionaryforward.jsp" redirect="false"/>
     <forward name="failure" path="/WEB-INF/jsp/dictionary/dictionaryforward.jsp" redirect="false"/>
  </action>
  <action path="/dictionaryShow"
          type="cn.system.manage.dictionary.servlet.struts.DictionaryShowAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/dictionary/dictionaryshow.jsp" redirect="false"/>
  </action>
  <action path="/dictionarySearch"
          type="cn.system.manage.dictionary.servlet.struts.DictionarySearchAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/dictionary/dictionarysearch.jsp" redirect="false"/>
  </action>
  <action path="/dictionaryList"
          name="dictionaryListForm"
          type="cn.system.manage.dictionary.servlet.struts.DictionaryListAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/dictionary/dictionarylist.jsp" redirect="false"/>
     <forward name="del" path="/WEB-INF/jsp/dictionary/dictionaryforward.jsp" redirect="false"/>
  </action>

  <action path="/studentAdd"
          name="studentForm"
          type="cn.system.manage.student.servlet.struts.StudentAddAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/student/studentadd.jsp" redirect="false"/>
  </action>
  <action path="/studentAddSave"
          name="studentForm"
          type="cn.system.manage.student.servlet.struts.StudentAddSaveAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/student/studentforward.jsp" redirect="false"/>
     <forward name="failure" path="/WEB-INF/jsp/student/studentforward.jsp" redirect="false"/>
  </action>
  <action path="/studentEdit"
          name="studentForm"
          type="cn.system.manage.student.servlet.struts.StudentEditAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/student/studentedit.jsp" redirect="false"/>
  </action>
  <action path="/studentEditSave"
          name="studentForm"
          type="cn.system.manage.student.servlet.struts.StudentEditSaveAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/student/studentforward.jsp" redirect="false"/>
     <forward name="failure" path="/WEB-INF/jsp/student/studentforward.jsp" redirect="false"/>
  </action>
  <action path="/studentShow"
          type="cn.system.manage.student.servlet.struts.StudentShowAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/student/studentshow.jsp" redirect="false"/>
  </action>
  <action path="/studentSearch"
          type="cn.system.manage.student.servlet.struts.StudentSearchAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/student/studentsearch.jsp" redirect="false"/>
  </action>
  <action path="/studentList"
          name="studentListForm"
          type="cn.system.manage.student.servlet.struts.StudentListAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/student/studentlist.jsp" redirect="false"/>
     <forward name="del" path="/WEB-INF/jsp/student/studentforward.jsp" redirect="false"/>
  </action>
  <action path="/studentListSplit"
          name="studentListForm"
          type="cn.system.manage.student.servlet.struts.StudentListSplitAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/student/studentlistsplit.jsp" redirect="false"/>
     <forward name="del" path="/WEB-INF/jsp/student/studentforward.jsp" redirect="false"/>
  </action>
 
  <action path="/courseAdd"
          name="courseForm"
          type="cn.system.manage.course.servlet.struts.CourseAddAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/course/courseadd.jsp" redirect="false"/>
  </action>
  <action path="/courseAddSave"
          name="courseForm"
          type="cn.system.manage.course.servlet.struts.CourseAddSaveAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/course/courseforward.jsp" redirect="false"/>
     <forward name="failure" path="/WEB-INF/jsp/course/courseforward.jsp" redirect="false"/>
  </action>
  <action path="/courseEdit"
          name="courseForm"
          type="cn.system.manage.course.servlet.struts.CourseEditAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/course/courseedit.jsp" redirect="false"/>
  </action>
  <action path="/courseEditSave"
          name="courseForm"
          type="cn.system.manage.course.servlet.struts.CourseEditSaveAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/course/courseforward.jsp" redirect="false"/>
     <forward name="failure" path="/WEB-INF/jsp/course/courseforward.jsp" redirect="false"/>
  </action>
  <action path="/courseShow"
          type="cn.system.manage.course.servlet.struts.CourseShowAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/course/courseshow.jsp" redirect="false"/>
  </action>
  <action path="/courseSearch"
          type="cn.system.manage.course.servlet.struts.CourseSearchAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/course/coursesearch.jsp" redirect="false"/>
  </action>
  <action path="/courseList"
          name="courseListForm"
          type="cn.system.manage.course.servlet.struts.CourseListAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/course/courselist.jsp" redirect="false"/>
     <forward name="del" path="/WEB-INF/jsp/course/courseforward.jsp" redirect="false"/>
  </action>
  <action path="/courseListSplit"
          name="courseListForm"
          type="cn.system.manage.course.servlet.struts.CourseListSplitAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/course/courselistsplit.jsp" redirect="false"/>
     <forward name="del" path="/WEB-INF/jsp/course/courseforward.jsp" redirect="false"/>
  </action>
  
  <action path="/scoresAdd"
          name="scoresForm"
          type="cn.system.manage.scores.servlet.struts.ScoresAddAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/scores/scoresadd.jsp" redirect="false"/>
  </action>
  <action path="/scoresAddSave"
          name="scoresForm"
          type="cn.system.manage.scores.servlet.struts.ScoresAddSaveAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/scores/scoresforward.jsp" redirect="false"/>
     <forward name="failure" path="/WEB-INF/jsp/scores/scoresforward.jsp" redirect="false"/>
  </action>
  <action path="/scoresEdit"
          name="scoresForm"
          type="cn.system.manage.scores.servlet.struts.ScoresEditAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/scores/scoresedit.jsp" redirect="false"/>
  </action>
  <action path="/scoresEditSave"
          name="scoresForm"
          type="cn.system.manage.scores.servlet.struts.ScoresEditSaveAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/scores/scoresforward.jsp" redirect="false"/>
     <forward name="failure" path="/WEB-INF/jsp/scores/scoresforward.jsp" redirect="false"/>
  </action>
  <action path="/scoresShow"
          type="cn.system.manage.scores.servlet.struts.ScoresShowAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/scores/scoresshow.jsp" redirect="false"/>
  </action>
  <action path="/scoresSearch"
          type="cn.system.manage.scores.servlet.struts.ScoresSearchAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/scores/scoressearch.jsp" redirect="false"/>
  </action>
  <action path="/scoresList"
          name="scoresListForm"
          type="cn.system.manage.scores.servlet.struts.ScoresListAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/scores/scoreslist.jsp" redirect="false"/>
     <forward name="del" path="/WEB-INF/jsp/scores/scoresforward.jsp" redirect="false"/>
  </action>
  <action path="/scoresListSplit"
          name="scoresListForm"
          type="cn.system.manage.scores.servlet.struts.ScoresListSplitAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/scores/scoreslistsplit.jsp" redirect="false"/>
     <forward name="del" path="/WEB-INF/jsp/scores/scoresforward.jsp" redirect="false"/>
  </action>
  
  <action path="/userAdd"
          name="userForm"
          type="cn.system.manage.user.servlet.struts.UserAddAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/user/useradd.jsp" redirect="false"/>
  </action>
  <action path="/userAddSave"
          name="userForm"
          type="cn.system.manage.user.servlet.struts.UserAddSaveAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/user/userforward.jsp" redirect="false"/>
     <forward name="failure" path="/WEB-INF/jsp/user/userforward.jsp" redirect="false"/>
  </action>
  <action path="/userEdit"
          name="userForm"
          type="cn.system.manage.user.servlet.struts.UserEditAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/user/useredit.jsp" redirect="false"/>
  </action>
  <action path="/userEditSave"
          name="userForm"
          type="cn.system.manage.user.servlet.struts.UserEditSaveAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/user/userforward.jsp" redirect="false"/>
     <forward name="failure" path="/WEB-INF/jsp/user/userforward.jsp" redirect="false"/>
  </action>

  <action path="/userEditPWD"
          name="userForm"
          type="cn.system.manage.user.servlet.struts.UserEditPWDAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/user/usereditpwd.jsp" redirect="false"/>
  </action>
  <action path="/userEditPWDSave"
          name="userForm"
          type="cn.system.manage.user.servlet.struts.UserEditPWDSaveAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/user/userforward.jsp" redirect="false"/>
     <forward name="failure" path="/WEB-INF/jsp/user/userforward.jsp" redirect="false"/>
  </action>

  <action path="/userEditStatus"
          name="userForm"
          type="cn.system.manage.user.servlet.struts.UserEditStatusAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/user/userforward.jsp" redirect="false"/>
     <forward name="failure" path="/WEB-INF/jsp/user/userforward.jsp" redirect="false"/>
  </action>  
  
  <action path="/userShow"
          type="cn.system.manage.user.servlet.struts.UserShowAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/user/usershow.jsp" redirect="false"/>
  </action>
  <action path="/userSearch"
          type="cn.system.manage.user.servlet.struts.UserSearchAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/user/usersearch.jsp" redirect="false"/>
  </action>
  <action path="/userList"
          name="userListForm"
          type="cn.system.manage.user.servlet.struts.UserListAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/user/userlist.jsp" redirect="false"/>
     <forward name="del" path="/WEB-INF/jsp/user/userforward.jsp" redirect="false"/>
  </action>
  <action path="/userListSplit"
          name="userListForm"
          type="cn.system.manage.user.servlet.struts.UserListSplitAction"
          scope="request">
     <forward name="success" path="/WEB-INF/jsp/user/userlistsplit.jsp" redirect="false"/>
     <forward name="del" path="/WEB-INF/jsp/user/userforward.jsp" redirect="false"/>
  </action>
   </action-mappings>

    <message-resources parameter="ApplicationResources_zh_cn"  null="false"/>
      <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
        <set-property value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" property="pathnames" />
      </plug-in>
</struts-config>
 

猜你喜欢

转载自blog.csdn.net/weixin_55459367/article/details/114182772