教师信息管理系统论文.docx
- 文档编号:10087902
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:41
- 大小:1.41MB
教师信息管理系统论文.docx
《教师信息管理系统论文.docx》由会员分享,可在线阅读,更多相关《教师信息管理系统论文.docx(41页珍藏版)》请在冰点文库上搜索。
教师信息管理系统论文
目录
第1章概述1
1.1项目的目的和意义1
1.2项目体系结构及开发环境1
1.3系统基本功能1
第2章系统总体设计3
2.1系统的功能模块设计3
2.2数据库设计4
第3章系统详细设计及编码6
3.1数据库底层访问类6
3.2登录模块7
3.3管理系统首页面导航10
3.4教师信息管理11
3.5论著信息管理19
3.6科研项目管理25
3.7前台浏览模块29
3.8前台查询模块29
结论33
参考文献34
第1章概述
1.1项目的目的和意义
教师信息管理系统是一个教育单位不可缺少的部分。一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校各类工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。
本次课程设计是独立进行设计和实现“基于MVC模式的教师信息管理系统”,此次的课题设计是对本学期前八周所学的JSP程序设计课程的巩固和深入应用以及进一步的学习前八周未能学完或者薄弱之处进行继续学习,同时结合Java语言、JSP技术进行Web程序设计,利用前面学过的知识和上网学习来解决实际问题,锻炼解决问题的能力和动手编程的能力。
同时使用目前企业实际开发中比较成熟的MVC模式进行系统的整体架构设计,利用MVC有效降低模块、功能之间的代码耦合关系,从而提高模块内代码的内聚,使次系统的结构更完善,更健壮,更易于维护。
1.2项目体系结构及开发环境
1、本系统采用Browser/Server体系结构。
2、系统开发环境
(1)开发平台:
MyEclipse5.5.1GA
(2)开发语言:
Java、HTML
(3)数据库:
MicrosoftSQLServer2005
3、系统运行环境
客户端:
浏览器:
IE8.0
服务器端:
数据库:
MicrosoftSQLServer2005应用程序系统
1.3系统基本功能
本系统是基于MVC模式设计和开发的,MVC设计模式包括模型(Model)JavaBean代表应用程序状态和业务逻辑。
视图(View)JSP提供可交互的客户界面,向客户显示模型数据。
控制器(Controller)Servlet根据客户的请求来操纵模型,并把结果经由视图展现给客户[2]。
MVC优点:
代码的重用性有利于开发的分工各司其职、互不干涉。
MVC编程思路:
Servlet接收客户端请求,并调用业务类的方法进行数据处理Servlet根据数据处理的结果,控制下一个显示的HTML或者JSP页面[1]。
基于MVC模式的教师信息管理系统主要实现前台和后台两部分功能设计,首先是:
前台主要实现教师登录后的查询和浏览功能,其中,主要是教师信息的按编号查询和浏览,其次是论著信息的按编号查询和浏览以及按论著名模糊查询和浏览,最后就是科研项目信息的按编号查询和浏览。
再就是:
后台主要实现管理员登录后的增删改查批量删除功能。
其中,主要是教师信息的浏览,添加,删除,修改和批量删除,其次是论著信息的浏览,浏览,添加,删除,修改和批量删除,最后就是科研项目信息的浏览,浏览,添加,删除,修改和批量删除。
第2章系统总体设计
2.1系统的功能模块设计
教师管理系统是一种通常由管理员管理、维护,供教师查询、浏览的网站。
教师管理系统上的教师信息是按照教师的编号进行排序,再通过浏览展示出来。
参照一般的教师管理网站,为本系统设计了以下几个功能模块:
1、登录模块
此登录模块是按权限登录,分为管理员登录和教师登录。
在输入登录账户和登录密码以及验证码之后,教师登录进入前台管理界面,管理员登录进入后台管理界面。
2、教师信息管理模块
管理员可以对浏览出来的教师信息进行删除、修改、批量删除。
还可以点击链接进行添加教师信息,密码设为初始密码111,可以更改。
3、论著信息管理模块
管理员可以对浏览出来的论著信息进行删除、修改、批量删除。
还可以点击链接进行添加论著信息,其中添加论著信息时,把教师信息以下拉列表的形式展示出来,如果要添加的教师编号不在下拉列表中,点击“添加教师”把要添加的教师信息添加进表单,完成后再进行论著的添加。
4、科研项目信息管理模块
管理员可以对浏览出来的科研项目信息进行删除、修改、批量删除。
还可以点击链接进行添加科研项目信息,其中添加科研项目信息时,把教师信息以下拉列表的形式展示出来,如果要添加的教师编号不在下拉列表中,点击“添加教师”把要添加的教师信息添加进表单,完成后再进行科研项目的添加。
5、前台浏览模块
教师进入前台浏览模块,主要是查询和浏览。
其中包括:
(1)查询、浏览教师信息,查询是按教师的编号查询。
(2)查询、浏览论著信息,查询是按论著的编号查询,还可以按论著的名称进行模糊查询,以及按论著的编号和论著的名称两个条件一起查询。
(3)查询、浏览科研项目信息,查询是按科研项目的编号查询。
系统功能模块图如图2-1所示。
图2-1系统功能模块图
2.2数据库设计
数据库管理系统是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,并使用数据库中的数据创建表格和报表的软件系统。
它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。
它可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库,但是数据库的设计是整个系统成败的一个重要环节。
合理的数据库设计能够给系统带来很好的效率。
而且能够使得各个功能模块的设计变得非常简单而且模块间的关系特别明确。
本系统的数据库是在SQLServer2005中创建的。
根据前面的分析,教师信息管理系统数据库共包含4个表,包括教师信息表(tb_Teacher)、科研项目信息表(tb_Keyan)、论著信息表(tb_Book)、管理员信息表(tb_Manager)
表的结构、表字段的数据类型及相关说明如下:
表2-1教师信息表
列名
说明
数据类型
约束
id
教师编号
int
主键
Name
教师名
nvarchar(50)
gender
性别
nvarchar(50)
QQ号
nvarchar(50)
邮件地址
nvarchar(50)
password
教师密码
nvarchar(50)
表2-2论著信息表
列名
说明
数据类型
约束
id
论著编号
int
主键
name
论著名称
nvarchar(50)
product
论著出版社
nvarchar(50)
tid
教师编号
int
表2-3科研项目信息表
列名
说明
数据类型
约束
id
论著编号
int
主键
name
论著名称
nvarchar(50)
tid
教师编号
int
表2-4管理员信息表
列名
说明
数据类型
约束
id
管理员编号
int
主键
name
管理员名
nvarchar(50)
password
管理员密码
nvarchar(50)
以上就是教师信息管理系统所需的数据表,按照这些表结构设计,在MicrosoftSQLServer2005中创建数据库TeacherManagement,并创建相应的表。
第3章系统详细设计及编码
3.1数据库底层访问类
本系统的设计使用基于Servlet的MVC架构模式,将系统的各个功能的实现过程严格的划分为视图(View)、控制(Controller)、模型(Model),其中View负责界面的显示,Controller负责请求的转发和响应,Model负责逻辑业务对象实体和业务实体。
由于本系统是一种信息管理系统,在这三层之下,还要建立数据库访问层,该层完成数据库的连接、SQL语句的具体执行等操作。
这一层由MVC模式中的Model层里的业务实体进行调用,从而完成逻辑业务的信息维护操作。
3.1.1添加DBManager公共类
首先创建包nepu.jsp.tools,在该包下创建名为DBManager的类,该类得职责用于提供访问、操作数据库的公共方法。
添加公共类的方法和步骤如下:
在工程中的包名上点右键,选择【New】->【Class】菜单项,将弹出【NewJavaClass】对话框,保留默认的选择,在Name文本框中输入DBManager,点击Finsih按钮。
3.1.2编写公共方法
3.1.1小节为项目添加了一个DBManager类,该类用于存放连接、操作数据库的公共方法,本小节介绍如何编写这些公共方法。
首先为DBManager类声明几个公共变量,其中conn为数据库连接对象,rs为结果集对象,stmt为SQL语句,pstmt为SQL语句,路径uri,用户名sa,密码1234546。
1、数据库连接方法getConnection()
先加载数据库连接驱动,然后获取数据库连接,然后进行判断,检查是否获取数据库连接成功,并且捕获数据库驱动加载的异常和获取连接的异常。
getConnection方法的关键代码如下:
try{
//加载数据连接驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//获取数据库连接
conn=DriverManager.getConnection(uri,user,password);
if(conn!
=null)
System.out.println("数据库连接成功");
}catch(ClassNotFoundExceptione){
System.out.println("数据库驱动加载错误");
}catch(SQLExceptione){
System.out.println("获取连接错误");
}
returnconn;
2、数据库查询方法executeQuery()
先建立Statement对象,再建立ResultSet(结果集)对象,并执行传参过来的SQL语句,并且捕获SQL语句执行的异常
executeQuery方法的关键代码如下:
try{
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
}catch(SQLExceptione){
System.out.println("sqlexecutefailure");
}
returnrs;
3、数据库增删改的操作方法executeUpdate()
先建立Statement对象,再建立ResultSet(结果集)对象,并执行传参过来的SQL语句,并且捕获异常。
executeUpdate方法的关键代码如下:
try{
stmt=conn.createStatement();
returnstmt.executeUpdate(sql);
}catch(SQLExceptione){
e.printStackTrace();}
return0;
3.2登录模块
登录是每一个成功项目中不可缺少的模块,好的登录模块可以保证系统的可靠性和安全性。
本节首先严格按照MVC架构模式为教师信息管理系统制作了一个简单的登录模块,登录分为2个权限登录,分别为教师登录和管理员登录,教师登录成功后,应当进入该系统的前台管理系统,管理员登录成功后,应当进入该系统的后台管理系统,因此本节还详细介绍了主窗体的设计。
按照MVC模式进行构建教师登录功能的开发,对该模块的文件构建说明如下
1、Model层:
在nepu.jsp.model包中添加教师类别的实体Javabean,类名为Teacher。
在nepu.jsp.DAO包中添加业务Javabean,类名为TeacherDAO。
其中Teacher的代码如下:
privateStringid="";//教师编号
privateStringname="";//教师姓名
privateStringgender="";//教师性别
privateStringqq="";//教师QQ
privateStringemail="";//教师Email
privateStringpassword="";//教师密码
此处省略get/set方法
2、Ctroller层:
在nepu.jsp.servlet中添加类LoginServlet。
3、View层:
在Webroot/front中添加login.jsp的JSP文件
3.2.1View层构建
首先在MyEclipse的项目的WebRoot目录中建立front文件夹,在其下建立JSP页面,在该页面中编写表单代码,其中注意表单的action属性为该表单信息提交的服务端URL地址,method属性为提交方式。
在这里由于是按照MVC模式,将信息提交给Servlet,因此method必须post。
同时为避免复杂的URL的路径逻辑关系,统一使用绝对路径。
.
图3-1登录界面设计
3.2.2Model层构建
1、在业务Javabean类TeacherDAO中建立方法login(),实现过程中借助DBManger数据库底层操作类,实现用户登录的判断。
该方法的关键代码有SQL语句,此语句用于查询,把传过来的编号id,密码password,在数据库中查询出来,SQL语句如下:
Stringsql="select*fromtb_Teacherwhereid='"+id+"'andpassword='"+password+"'";
实例化DBManager,调用executeQuery(sql)方法,对数据库中的信息进行查询,代码如下:
DBManagerdb=newDBManager();
ResultSetrs=db.executeQuery(sql);
判断是否查询出结果,如果rs.next是空,则没用此权限此人信息,如果rs.next有结果则t=1,传给servlet,使其获得结果,并知道此权限此用户存在,代码如下:
try{
if(rs.next()){
t=1;}
}catch(SQLExceptione){
e.printStackTrace();
}
returnt;
2、在业务Javabean类ManagerDAO中建立方法login(),实现过程中借助DBManger数据库底层操作类,实现用户登录的判断。
其代码与上文代码相似就不再赘述。
3.2.3Controller层构建
在UserServlet添加方法Login(),在该方法中完成登录的逻辑判断。
实现过程中要注意用户名用session进行记录,然后使用response.sendRedirect()跳转到管理后台的首页面。
Login()方法关键代码有:
先获取登录界面提交过来的信息,定义Sting类型的power(权限),id(编号),password(密码),和checkcode(验证码)再用getParameter方法从页面获取传过来的参数,然而登录着的信息是在各个页面都有显示的,所以用session方式的传参,使得各个页面都可以获得。
Stringpower=null;Stringid=null;Stringpassword=null;
power=request.getParameter("power");
HttpSessionsession=request.getSession();
Stringcheckcode=request.getParameter("checkcode");
Stringcode=(String)session.getAttribute("rand");
下一步进行判断,如果验证码正确的情况下,才能获取账户和密码代码如下:
if(checkcode.equals(code)){
id=request.getParameter("id");
password=request.getParameter("password");}
Stringi="0";
判断是否提交过来的信息,如果提交信息情况下判断权限
if(power!
=null&&id!
=null&&password!
=null){
权限的判断,如果是管理员,先进行实例化一个managerDAO,再调用login(id,password)方法,再进行判断,代码如下:
if(power.equals("manager")){
ManagerDAOmanagerDAO=newManagerDAO();
intt=managerDAO.login(id,password);
t=1时,登录成功,跳转到AdminIndex.jsp界面,否则跳转到front/login.jsp界面。
路径不能写错,否则跳转不过去,造成错误出现。
if(t==1){
response.sendRedirect("admin/AdminIndex.jsp");
}else{response.sendRedirect("front/login.jsp");i="1";}
教师模块登录与管理员类似,就不再赘述。
登录信息不全时,继续跳转到登录界面,并传参,说明有信息未添加,重新添加。
其跳转代码,以及传参代码如下:
i="1";
request.setAttribute("i",i);
3.3管理系统首页面导航
设计页面文件AdminEnd.jsp、AdminTop.jsp、AdminLeft.jsp、AdminIndex.jsp,通过指令标记将AdminEnd.jsp、AdminTop.jsp、AdminLeft.jsp嵌入到AdminIndex.jsp中。
设计界面如下:
.
图3-2首页面导航设计
3.4教师信息管理
教师信息管理是每个教师信息管理系统的主要模块,其中包括对教师信息的添加,修改,删除,查询,批量删除的功能。
便于管理员对教师信息的维护与修改。
3.4.1添加教师信息
1、View层构建
用于添加教师信息的teacherAdd.jsp设计如图所示,输入教师编号,姓名,性别,qq,email,初始密码为111,可以更改,点击保存按钮,即可完成教师信息的添加。
图3-3教师信息添加
2、Model层构建
在业务Javabean的TeacherDAO中添加方法addTeacherDAO(),该方法能够根据参数operate来生成不同的sql语句,借助DBManager类进行实现增加功能,关键代码有SQL语句,此SQL语句是插入由表单提交的教师的基本信息,SQL为:
Stringsql="insertintotb_teacher(id,name,gender,qq,email,password)values('"+id+"','"+name+"','"+gender+"','"+qq+"','"+email+"','"+password+"')";
实例化db来执行executeUpdate,在数据库中执行SQL语句,若执行成功,t=1,否则t=0.代码如下:
DBManagerdb=newDBManager();
intt=0;
t=db.executeUpdate(sql);
释放数据库资源,代码是:
db.releaseResource();
returnt;
3、Controller层构建
在TeacherServlet,负责所有有关教师信息操作请求和响应。
为TeacherServlet添加方法addTeacher(),在该方法中完教师信息的添加。
该方法除去分页的代码主要是接收参数,包括qq,email,密码password,编号id,姓名name,性别gender。
Stringid=request.getParameter("id");
Stringqq=request.getParameter("qq");
Stringemail=request.getParameter("email");
Stringpassword=request.getParameter("password");
当id有信息,不是空的时候,才能获取姓名name,性别gender,因为是中文,所以要进行转码,由iso-8859-1转换成gb2312,其转换形式如下所示:
if(id!
=""){
Stringname=request.getParameter("name");
Stringgender=request.getParameter("gender");
if(name!
=null&&gender!
=null){
name=newString(name.getBytes("iso-8859-1"),"gb2312");
gender=newString(gender.getBytes("iso-8859-1"),"gb2312");}
实例化teacherDAO,目的是执行addTeacherDAO()方法,进行添加教师的基本信息,也就是传过来的信息,代码如下:
teacherDAO.addTeacherDAO(id,name,gender,qq,email,password);
因为分页在此不叙述,teacherDAO调用getTeacherListHalf方法时的pageN和pageSize在上文中叙述过,此刻只是调用方法,显示出来即可:
teacherList=teacherDAO.getTeacherListHalf(pageN,pageSize);
传参并且跳转页面,传递teacherList参数,因为上一方法以及获取出teacher的信息,此刻只要传递过去并且跳转页面就可以了
request.setAttribute("teacherList",teacherList);
RequestDispatcherrd=request.getRequestDispatcher("admin/teacherView.jsp");
rd.forward(request,response);}
如果id没有参数的情况下,就不能进行添加操作,因为id是主键,没有主键则不能操作添加方法,只能跳回teacherAdd.jsp界面重新进行添加操作,代码如下:
其中i是传递的信息使teacherAdd.jsp页面获取到没添加id的信息
request.setAttribute("i",i);
3.4.2查看教师信息
1、View层构建
用于添加教师信息的teacherView.jsp,在点击“浏览/修改/删除教师信息”时即可展示出来,设计如图所示。
图3-4浏览教师信息界面
2、Model层构建
在业务Javabean的TeacherDAO中添加方法getTeacherList(),该方法能够根据参数operate来生成不同的sql语句,借助DBManager类进行实现浏览功能,关键代码有创建ArrayList类型的TeacherList代码是:
ArrayListTeacherList=newArrayList();
求出开始页和
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教师 信息管理 系统 论文