JSP学生信息管理系统报告Word格式文档下载.docx
- 文档编号:143977
- 上传时间:2023-04-28
- 格式:DOCX
- 页数:34
- 大小:1.20MB
JSP学生信息管理系统报告Word格式文档下载.docx
《JSP学生信息管理系统报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《JSP学生信息管理系统报告Word格式文档下载.docx(34页珍藏版)》请在冰点文库上搜索。
管理员查询是在学生查询的基础上新增加按班级,按专业对学生进行查询。
添加学生信息时只需将要添加的学生信息输入对应的文本框中。
修改学生信息时先查询出修改学生的信息查询显示在文本框中,修改时只需要将信息输入到对应的文本框中,不能修改的信息对应的文本框设为为只读,管理员可以修改除了学号以外的其它信息。
删除时先查询出要删除的学生信息,再确认删除。
3)管理员可动态添加班级信息,对班级信息进行管理和设置
1.2环境需求
根据系统的基本功能需求,以及客户的信息系统环境,计划采用浏览器/服务器模式来
构建管理系统,这样方便维护和使用。
同时,根据客户对技术的具体建议,计划采用J2EE
技术来开发。
具体的软硬件环境要求如下:
(1)硬件环境:
采用普通办公用个人计算机作为服务器即可。
(2)操作系统:
可以采用WindowsXP以上系统。
(3)数据库系统:
采用Mysql数据库
(4)Web服务器:
采用Tomcat5以上系统。
(5)Java运行环境:
采用JRE1.5以上中文版本。
(6)客户端:
采用浏览器工具即可。
二、概要设计
2.1系统总体结构
按照系统的需求要求,可以把系统功能进行分解,以便按照每个功能模块的要求分别实现对应的功能。
系统总体结构如下图2.1所示:
图2.1系统结构图
系统提供给学生的查询方式有按学号查询、按姓名查询和查询全部学生信息;
学生可以修改部分个人信息,对于像学号、班级、专业这样的信息学生不能作修改;
学生可以给任何用户留言,留言时系统会获取留言人和留言时间。
系统提供给管理员的查询方式在学生的基础上增加了按班级查询、按专业查询和查询管理员信息;
管理员可以向学生库中添加学生信息和从学生库中删除学生信息;
管理员可以修改除学号以外的所有学生信息;
管理员在留言时系统会在获取到的管理员姓名前加入“管理员”的字样,以提醒收信人,此信息是来自于管理员。
2.2开发环境的配置
由于采用了J2EE模型2的方式,因此只要安装好需求分析中提出的软件、硬件环境要求就可以了。
另外,为了便于开发,还要安装一套开发工具,推荐使用Eclipse或者MyEclipse,其中提供了方便的编程界面。
本系统没有其他的插件或者API,当安装好这些软件后,就可以进行开发了。
其中要
注意的就是版本一致性问题,强烈建议采用最新版本的开发工具。
本系统采用了Mysql数据库系统,建议安装5.0以上版本。
最新版本可以到网站()上去下载。
三、详细设计
3.1数据库设计
3.1.1数据字典
本系统中所用到的数据库数据信息如下表如示:
表3.1数据库逻辑表
表格
名称
说明
studentinfor
学生信息表
学生基本信息
administrator
管理员信息表
管理员基本信息
massage
留言表
留言信息表
表3.2学生信息表
类型
长度
sno
字符串
10
学生学号
sname
45
学生姓名
ssex
6
性别
sage
整型
年龄
classname
班级
department
专业
phone
联系电话
password
登陆密码
表3.3管理员信息表
number
管理员编号
name
管理员姓名
sex
表3.4留言表
numberm
留言编号
收信人编号
massageinfor
450
留言内容
givename
留言人姓名
dateg
留言时间
readm
2
读取标记
3.1.2逻辑设计
根据系统需求和设计的规划,可以建立一个数据库,并在其中建立几个表格,分别用来存储各个功能模块的数据信息。
E-R图如图3.1所示
图3.1E-R图
3.1.3物理设计
E-R图中实体与实体之间的关系,可以进一步转化为相应的数据模型,目前很多的DBMS只支持关系、网状、层次三种数据模型,尤其是关系模型,以其优越的性能赢得了很大的市场。
对某一种数据模型,各个机器又有不同的限制。
图3.2物理模型
3.1.4数据库实施
按上述步骤建立数据库,如图3.3所示,表中学生表属性如图3.4所示,管理员表录图3.5所示,留言表如图3.6所示。
图3.3数据库表
图3.4学生表属性
图3.5管理员表属性
图3.6留言表属性
3.1.5JAVAEE数据库连接
连接类如下,连接到本地IP下的mysql数据库的student数据库中,连接身份为“root”连接密码为“413622”
publicclassDB{
publicstaticConnectiongetConn(){
Connectionconn=null;
try{
Class.forName("
org.gjt.mm.mysql.Driver"
);
conn=java.sql.DriverManager.getConnection("
jdbc:
mysql:
//localhost:
3306/student"
"
root"
413622"
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}catch(SQLExceptione){
}
returnconn;
}
publicstaticStatementcreateStmt(Connectionconn){
Statementstmt=null;
stmt=conn.createStatement();
}catch(SQLExceptione){
returnstmt;
publicstaticResultSetexecuteQuery(Statementstmt,Stringsql){
ResultSetrs=null;
rs=stmt.executeQuery(sql);
returnrs;
publicstaticResultSetexecuteQuery(PreparedStatementpreparedstmt)
{
rs=preparedstmt.executeQuery();
}
publicstaticPreparedStatementprepareStmt(Connectionconn,Stringsql){
PreparedStatementpstmt=null;
pstmt=(PreparedStatement)conn.prepareStatement(sql);
returnpstmt;
publicstaticvoidclose(Connectionconn){
if(conn!
=null){
try{
conn.close();
}catch(SQLExceptione){
e.printStackTrace();
}
publicstaticvoidclose(Statementstmt){
if(stmt!
stmt.close();
publicstaticvoidclose(ResultSetrs){
if(rs!
rs.close();
}否
3.2功能设计
3.2.1登陆功能
先获取主界面文本框中输入的用户名、密码和登陆方式。
登陆身份若是管理员则administrator.checkManUser(conn,username,password)函数对比数据库中管理员表的内容,登陆成功则跳到管理员主页面。
若是学生则利用student.checkStuUser(conn,username,password)函数对比数据库中学生表中的内容,登陆成功则跳到学生主页面,程序流程如图3.7所示
图3.7登陆流程图
登陆功能关键代码如下:
username=request.getParameter("
username"
password=request.getParameter("
password"
radio=request.getParameter("
radio"
if(radio.equals("
1"
))
{
if(administrator.checkStuUser(conn,username,password)){
rd=this.getServletContext().getRequestDispatcher("
/StuMain.jsp"
rd.forward(request,response);
}else{
rd=this.getServletContext().getRequestDispatcher("
/login.jsp"
}
}catch(Exceptione){
rd=this.getServletContext().getRequestDispatcher("
rd.forward(request,response);
}else
if(student.checkManUser(conn,username,password)){
/AdmMain.jsp"
checkManUser(conn,username,passwo)函数与checkStuUser(conn,username,password)类似,下面以管理员登陆为例说明:
当用户名和密码与数据库中相同时返回值为TURE,否则返回值为FALSE
publicstaticbooleancheckManUser(Connectionconn,Stringusername,Stringpassword)throwsException{
StringstrSql;
Statementstmt;
ResultSetrs;
strSql="
select*fromadministratorwherenumber='
"
+username
+"
'
andpassword='
+password+"
;
stmt=DB.createStmt(conn);
rs=DB.executeQuery(stmt,strSql);
if(rs.next()){
returntrue;
}else{
returnfalse;
3.2.2查询功能
先获取下拉框的值,赋值给S。
S的作用是记录查询方式用的,学生查询方式有学号、姓名和全部学生信息。
再获取输入的关键词,赋值给keyword,keyword记录查询关键词。
再利用前面提到的student.findstudent(conn,s,keyword)函数处理。
查询成功将查询到的信息显示出来,查询失败则显示提示信息。
查询程序流程如图3.8所示。
图3.8查询流程图
程序关键代码如下:
java.sql.Connectionconn=null;
java.sql.ResultSetrs=null;
conn=DB.getConn();
Strings=request.getParameter("
combobox1"
Stringkeyword=(String)request.getParameter("
search"
try{
rs=student.findstudent(conn,s,keyword);
}catch(java.sql.SQLExceptione){
out.println(e.toString());
}finally{
if(conn!
=null)conn.close();
findstudent(conn,s,keyword)函数位于student类中,s的值为“1”为按学号查询,“2”为按姓名查询,“3”为查询全部学生信息,“4”为按班级查询,“5”为按专业查询,“6”为查询管理员信息。
学生查询权限为1、2、3,管理员可以是1、2、3、4、5、6关键代码如下:
publicstaticResultSetfindstudent(Connectionconn,Strings,Stringkeyword)throwsSQLException
java.sql.PreparedStatementpreparedStmt=null;
if(s.equals("
preparedStmt=conn.prepareStatement("
select*fromstudentinforwheresno='
+keyword+"
elseif(s.equals("
2"
select*fromstudentinforwheresname='
3"
select*fromstudentinfor"
4"
select*fromstudentinforwhereclassname='
5"
select*fromstudentinforwheredepartment='
else{
select*fromadministrator"
rs=preparedStmt.executeQuery();
3.2.3添加功能
先获取文本框的值,再将获取到的值为学生的实例stu的属性赋值,再利用student.Insertstu(conn,stu)将信息添加到数据库中去。
获取学生实例的属性写入数据库属性。
添加成功则产生成功提示信息,再返回添中页面,失败则产生失败信息,再返回添加页面,添加流程如图3.9所示
图3.9添加学生信息流程图
添加学生信息的关键代码如下:
Stringsno=request.getParameter("
snoa"
Stringsname=request.getParameter("
snamea"
Stringssex=request.getParameter("
ssexa"
intsage=Integer.parseInt(request.getParameter("
sagea"
));
Stringclassname=request.getParameter("
classnamea"
Stringdepartment=request.getParameter("
departmenta"
Stringemail=request.getParameter("
emaila"
Stringphone=request.getParameter("
phonea"
studentstu=newstudent();
stu.setSno(sno);
stu.setSname(sname);
stu.setSsex(ssex);
stu.setSage(sage);
stu.setClassname(classname);
stu.setDepartment(department);
stu.setEmail(email);
stu.setPhone(phone);
Connectionconn=DB.getConn();
student.InsertStu(conn,stu);
out.println("
添加成功<
ahref='
Addstudent.jsp'
>
返回<
/a>
}catch(Exceptione){
添加失败<
}finally{
DB.close(conn);
InsertStu(conn,stu)函数位于student类中,此函数先获取学生实例stu的属性,再将其属性写入相应的数据库字段中。
添加信息权限仅限管理员,关键代码如下:
publicstaticbooleanInsertStu(Connectionconn,studentstu)
throwsException{
PreparedStatementstmt=null;
Strings="
123456"
Stringa=stu.getSno();
Stringb=stu.getSname();
Stringc=stu.ge
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JSP 学生 信息管理 系统 报告
![提示](https://static.bingdoc.com/images/bang_tan.gif)