打印论文模板v40柳德智.docx
- 文档编号:30633758
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:55
- 大小:2.34MB
打印论文模板v40柳德智.docx
《打印论文模板v40柳德智.docx》由会员分享,可在线阅读,更多相关《打印论文模板v40柳德智.docx(55页珍藏版)》请在冰豆网上搜索。
打印论文模板v40柳德智
目录
第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登录模块8
3.3后台管理系统首页面导航10
3.4教师信息管理11
3.5论著信息管理20
3.6科研项目信息管理28
3.7前台浏览模块35
结论43
参考文献44
第1章概述
1.1系统目的和意义
教师信息管理系统是一所院校在各种信息管理中的一部分,对于学校管理者来说是很重要的,所以所设计的系统应该能为管理者提供教师的基本信息管理手段和一些方便的查询方式。
本次课程设计的题目是“基于MVC模式的教师信息管理系统”的设计与实现,该设计是对本学期前八周所学的JSP程序设计课程的巩固和深入应用,同时结合Java语言、JSP技术进行Web程序设计,利用前面学过的知识和上网学习来解决实际问题,锻炼解决问题的能力和动手编程的能力。
同时使用目前企业实际开发中比较成熟的MVC模式进行系统的整体架构设计,有效分离模块、功能之间的代码耦合关系,并逐步理解软件开发步骤和软件工程思想[1]。
1.2系统开发环境
1.本系统采用Browser/Server体系结构
2.系统开发环境
1)开发平台:
MyEclipse5.5.1GA
2)开发语言:
JSP、Java
3)数据库:
MicrosoftSQLServer2005
3.系统运行环境
客户端:
浏览器:
IE6.0
服务器端:
数据库:
MicrosoftSQLServer2005应用程序系统
1.3系统开发模式及基本功能
本系统是基于MVC模式设计和开发的,MVC模式包括模型(Model)JavaBean代表应用程序和业务逻辑。
视图(View)JSP提供可交互的客户界面,向客户显示模型数据。
控制器(Controller)Servlet根据客户的请求来操纵模型,并把结果经由视图展现给客户[2]。
MVC优点:
代码的重用性,有利于开发的分工各司其职、互不干涉。
MVC编程思路:
Servlet接受客户端请求,并调用业务类的方法进行数据处理,Servlet根据数据处理的结果,控制下一个显示的HTML或者JSP页面。
基于MVC模式的教师信息管理系统主要实现前台和后台两部分功能设计,其中前台主要实现教师登录的浏览和查询功能,其中,主要是全部教师信息的分页浏览,全部教师论著的分页浏览,全部科研项目的分页浏览。
后台主要实现管理员登录后的添加、删除、修改、查询和批量删除功能,其中,主要是教师基本信息的添加、删除、修改、批量删除以及按编号和教师姓名的多条件查询和浏览,其次论著信息的添加、删除、修改、批量删除以及按编号和教师姓名的多条件查询和浏览,最后是科研项目信息的添加、删除、修改、批量删除以及按编号和教师姓名的多条件查询和浏览。
第2章系统设计
2.1系统的模块划分
教师信息管理系统是一种通常由管理员管理、维护,可以让教师查询、浏览的网站。
教师的信息通常教师工号,以正序方式由小到大排列展示出来。
经过需求分析,教师信息管理系统主要包括以下几个功能模块:
1、登录模块
模块功能详细介绍:
教师和系统管理员进行登录操作,拥有不同的权限和功能。
2、教师信息管理模块
模块功能详细介绍:
对教师信息进行增删改查操作。
3、论著信息管理模块
模块功能详细介绍:
对教师论著信息进行管理。
4、科研项目管理模块
模块功能详细介绍:
对教师的科研项目进行管理。
系统功能模块图如下图2-1所示:
图2-1系统功能模块图
2.2数据库设计
数据库管理系统是允许用户在计算机上建立、使用和维护数据库,增加、修改、删除、排序和检索数据库中的数据,并使用数据库中的数据创建表格和报表的软件系统。
它可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。
数据库的设计是整个系统成败的一个重要环节。
合理的数据库设计能够给系统带来很好的效率。
而且能够使得各个功能模块的设计变得非常简单而且模块间的关系特别明确。
本系统的数据库是在SQLServer2005中创建的[3]。
根据前面的分析,教师信息管理系统数据库共包含4个表,包括用户信息表(T_user)、教师信息表(T_teacher)、论著信息表(T_lunzhu)、科研项目信息表(T_keyan)。
1、用户信息表
表2-1所示是用户信息表结构,用于记录用户基本信息,包括账号、密码、用户类型。
表2-1用户信息表
列名
说明
数据类型
约束
id
用户账号
nvarchar(20)
主键
psw
用户密码
nvarchar(20)
非空
userType
用户类型
nvarchar(10)
非空
2、教师信息表
表2-2是教师信息表结构,用于记录教师信息,包括教师基本信息和院系信息等。
表2-2教师信息表
列名
说明
数据类型
约束
id
教师工号
nvarchar(20)
主键
name
教师名
nvarchar(20)
非空
password
密码
nvarchar(20)
非空
gender
性别
nvarchar(20)
非空
department
所在院系
nvarchar(20)
jurisdiction
权限
nvarchar(20)
3、论著信息表
表2-3是论著信息表结构,用于记录教师论著信息,包括论著编号、论著书名、出版社等。
表2-3论著信息表
列名
说明
数据类型
约束
id
论著编号
nvarchar(20)
主键
name
论著书名
nvarchar(20)
非空
press
出版社
nvarchar(20)
Tid
教师编号
nvarchar(20)
4、科研项目信息表
表2-4是科研项目信息表结构,用于记录教师科研项目信息,包括项目编号、项目名称等。
表2-4科研项目信息表
列名
说明
数据类型
约束
id
项目编号
nvarchar(20)
主键
name
项目名称
nvarchar(20)
非空
Tid
教师编号
nvarchar(20)
以上就是教师信息管理系统所需的数据表,按照这些表结构设计,在MicrosoftSQLServer2005中创建数据库Teacher,并创建相应的表。
第3章系统的详细设计及实现
3.1数据库底层访问类
本系统的设计使用基于Servlet的MVC架构模式,将系统的各个功能的实现过程严格的划分为视图(View)、控制(Controller)、模型(Model),其中View负责界面的显示,Controller负责请求的转发和响应,Model负责逻辑业务对象实体和业务实体。
由于本系统是一种信息管理系统,在这三层之下,还要建立数据库访问层,该层完成数据库的连接、SQL语句的具体执行等操作。
这一层由MVC模式中的Model层里的业务实体进行调用,从而完成逻辑业务的信息维护操作。
3.1.1JDBC数据库访问技术
JDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
系统与数据库的连接需要的准备工作,下载JDBC驱动包,将驱动包复制到TeacherManager\WebRoot\WEB-INF\lib文件夹下。
完成导入驱动包[4]。
3.1.2添加DBManager公共类
首先创建包nepu.ldz.tools,在该包下创建名为DBManager的类,该类得职责用于提供访问、操作数据库的公共方法。
添加公共类的方法和步骤如下:
在工程中的包名上点右键,选择【New】—>【Class】菜单项,将弹出【NewJavaClass】对话框,保留默认的选择,在Name文本框中输入DBManager,点击Finish按钮。
3.1.3编写公共方法
3.1.2小节为项目添加了一个DBManager类,该类用于存放连接、操作数据库的公共方法,本小节介绍如何编写这些公共方法。
首先为DBManager类声明几个公共变量,其中conn为数据库连接对象,rs为结果集对象,stmt用于向数据库发送要执行的SQL语句,路径uri,用户名sa,密码123456。
1、数据库连接方法getConnection()
先加载数据库连接驱动,然后获取数据库连接,然后进行判断,检查是否获取数据库连接成功,并且捕获加载数据库驱动的异常和获取连接的异常。
getConnection方法的关键代码如下:
privateConnectiongetConnection(){
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方法的关键代码如下:
publicResultSetexecuteQuery(Stringsql){
try{
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
}catch(SQLExceptione){
System.out.println("sqlexecutefailure");
e.printStackTrace();
}
returnrs;
}
3、数据库增删改的操作方法executeUpdate()
先建立Statement对象,再建立ResultSet(结果集)对象,并执行传参过来的SQL语句,并且捕获SQL语句执行的异常。
executeUpdate方法的关键代码如下:
publicintexecuteUpdate(Stringsql){
try{
stmt=conn.createStatement();
returnstmt.executeUpdate(sql);
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
return0;
}
3.2登录模块
登录是每一个成功项目中不可缺少的模块,好的登录模块可以保证系统的可靠性和安全性。
本节首先严格按照MVC架构模式为教师信息管理系统制作了一个简单的登录模块,登录分为两个权限登录,分别是普通教师登录和管理员登录,管理员登录成功后,应当进入该系统的后台管理系统,普通教师登录成功之后,应当进入该系统的前台管理系统。
因此本节还详细介绍了主窗体的设计。
按照MVC模式进行构建登录功能的开发,对该模块的文件构建说明如下
(1)Model层:
在nepu.ldz.model包中添加用户类别的实体Javabean,类名为Usermodel。
在nepu.ldz.DAO包中添加业务Javabean,类名为UserDAO。
其中Usermodel类包含3个属性,分别是ID、密码和权限,同时在该类中添加属性的set、get方法,User类的属性定义部分代码如下:
publicclassUsermodel{
privateStringUid="";
privateStringUpsw="";
privateStringUtype="";
……}
(2)Controller层:
在nepu.ldz.Servlet中添加类UserServlet,该servlet主要负责登录以及管理员相关操作的流程控制。
(3)View层:
在Webroot文件夹下添加名为login.jsp的JSP文件。
3.2.1View层构建
首先在MyEclipse的项目的WebRoot目录中建立JSP页面,在该页面中编写表单代码,其中注意表单的action属性为该表单信息提交的服务端URL地址,method属性为提交方式。
在这里由于是按照MVC模式,将信息提交给Servlet,因此method必须post。
同时为避免复杂的URL的路径逻辑关系,统一使用绝对路径。
图3-1登录界面设计
3.2.2Model层构建
在业务Javabean类UserDAO中建立方法login(),实现过程中借助DBManager数据库底层操作类,实现用户登录的判断。
该方法需要接收由servlet传递过来3个参数,一个是用户名name,另一个是密码password,最后是权限state,调用DBManger数据库底层操作类的executeQuery()方法实现sql查询,sql语句如下:
Stringsql="select*fromT_userwhereid='"+name+"'andpsw='"+password+"'anduserType='"+state+"'";
实例化DBManager,调用executeQuery()方法,对数据库中的信息进行查询,代码如下:
DBManagerdb=newDBManager();
ResultSetrs=db.executeQuery(sql);
判断是否查询出结果,如果rs.next是空,则没有此权限此人信息,如果rs.next有结果则t=1,传给servlet使其获得结果,并知道此权限此人信息,代码如下:
if(rs.next())return1;
returnt;
3.2.3Controller层构建
在UserServlet添加方法Login(),在该方法中完成登录的逻辑判断。
首先需要通过方法request.getParameter()来接收由login.jsp页面传递过来的参数编号(name)、密码(password)和权限(state),在进行必要的参数转码或合法性判定后调用Model层的业务javaBeanUserDAO的登录方法实现登录判定,登录成功后需要注意将用户名用session进行存储,这样,在用户多次请求和响应之后都可以由session中取出用户名展示或判断用户是否登录。
最后,在servlet中使用response.sendRedirect()方法跳转到管理后台的首页面。
UserServelt中的Login()方法关键代码如下:
Stringname=newString(request.getParameter("name").getBytes("ISO-8859-1"),"GB2312");
Stringpassword=request.getParameter("password");
Stringstate=newString(request.getParameter("state").getBytes("ISO-8859-1"),"GB2312");
if(state.equals("1")){state="普通教师";}
else{state="管理员";}
UserDAOuserDAO=newUserDAO();
intt=userDAO.login(name,password,state);
HttpSessionsession=request.getSession();
session.setAttribute("name",name);
if(t==1){
session.setAttribute("username",name);
if(state.equals("普通教师")){response.sendRedirect("front/FrontIndex.jsp");}
if(state.equals("管理员")){response.sendRedirect("admin/AdminIndex.jsp");}
}else{
response.sendRedirect("login.jsp?
operate=faile");}
t=1时,判断用户权限,普通教师跳转到front/FrontIndex.jsp页面,管理员跳转到admin/AdminIndex.jsp页面。
否则跳转回到login.jsp页面。
3.3后台管理系统首页面导航
整个教师信息后台管理系统的界面设计是左侧导航的结构,如图3-2所示,系统几乎所有的jsp页面都具有大致类似的页面结构和风格,例如,相同的页面头部、左侧导航和页脚,因此,为了页面编码的方便和代码的可重用性,系统设计了一些公用的页面文件,主要包括AdminEnd.jsp、AdminTop.jsp、AdminLeft.jsp,通过include指令标记将AdminEnd.jsp、AdminTop.jsp、AdminLeft.jsp嵌入到AdminIndex.jsp页面中,这样,编码工作将主要集中在左侧导航AdminLeft.jsp和AdminIndex.jsp页面。
其他新增的功能页面的设计思路类似,在这里就不再赘述了。
AdminIndex.jsp界面的浏览效果如图3-2所示:
图3-2后台管理首页面浏览效果
3.4教师信息管理
教师信息管理是教师信息管理系统的主要模块,其中包括对教师信息的浏览,添加,修改,删除,查询,批量删除的功能。
以便于管理员对教师信息的维护和修改。
按照MVC模式对该模块进行功能的开发,对该模块的文件构建说明如下
(1)Model层:
在nepu.ldz.model包中添加教师类别的实体Javabean,类名为Teachermodel。
在nepu.ldz.DAO包中添加业务Javabean,类名为UserDAO。
其中Teachermodel类包含6个属性,分别是编号、姓名、密码、性别、所属院系和权限,同时在该类中添加属性的set、get方法,Teachermodel类的属性定义部分代码如下:
publicclassTeachermodel{
privateStringTid="";
privateStringTname="";
privateStringTpassword="";
privateStringTgender="";
privateStringTdepar="";
privateStringTjur="";
……}
(2)Controller层:
在nepu.ldz.Servlet中添加类UserServlet,该servlet主要负责有关教师信息操作请求和响应。
(3)View层:
在Webroot文件夹下添加名为admin的文件夹,并建立TeacherList.jsp、AddTeacher.jsp、UpdateTeacher.jsp、SelectTeacher.jsp四个页面。
3.4.1添加教师信息
1、View层构建
用于添加教师信息的AddTeacher.jsp设计如图3-3所示,输入教师编号,姓名,密码,性别,所在院系和权限。
点击保存按钮,即可完成教师信息的添加。
图3-3教师信息添加界面
2、Model层构建
在业务Javabean的UserDAO中添加方法Addteacher(),该方法能够根据传来的参数生成sql语句,借助DBManager类来进行实现添加功能,此sql语句是插入有表单提交的教师的基本信息,sql语句为:
Stringsql="insertintoT_teachervalues('"+teacher.getTid()+"','"+teacher.getTname()+"','"+teacher.getTpassword()+"','"+teacher.getTgender()+"','"+teacher.getTdepar()+"','"+teacher.getTjur()+"')";
实例化db来执行executeUpdate(sql)方法。
执行sql语句。
DBManagerdb=newDBManager();
intcount=db.executeUpdate(sql);
if(count>0)t=true;
db.releaseResource();
returnt;
3、Controller层构建
在UserServlet中,负责管理员登录后的操作请求与响应。
为UserServlet添加方法doAddteacher(),在该方法中完成教师信息的添加。
该方法的代码主要是接收参数,包括编号,姓名,密码,性别,所在院系和权限。
StringTid=request.getParameter("Tid");
StringTname=newString(request.getParameter("Tname").getBytes("ISO-8859-1"),"GB2312");
StringTpassword=request.getParameter("Tpassword");
StringTgender=newString(request.getParameter("Tgender").getBytes("ISO-8859-1"),"GB2312");
StringTdepartment=newString(request.getParameter("Tdepar").getBytes("ISO-8859-1"),"GB2312");
StringTjur=newString(request.getParameter("Tjur").getBytes("ISO-8859-1"),"GB2312");
实例化UserDAO,来执行Addteacher()方法,进行添加教师的信息,即传来的参数,将信息封装,代码如下:
UserDAOuserDAO=newUserDAO();
Teachermodelteacher=newTeachermodel();
teacher.setTi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 打印 论文 模板 v40 柳德智