jsp学生管理系统课程设计报告.docx
《jsp学生管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《jsp学生管理系统课程设计报告.docx(16页珍藏版)》请在冰豆网上搜索。
jsp学生管理系统课程设计报告
2.1整体设计..............................................................................................3
2.2模块设计..............................................................................................4
3.1登录界面..............................................................................................5
3.2学生信息界面......................................................................................6
3.3学生信息查询,编辑,新增界面......................................................7
3.4连接数据库.........................................................................................11
一概述
一直以来学生的成绩管理是学校工作中的一项重要内容,我国的大中专院校的学生成绩管理水平普遍不高。
随着办学规模的扩大和招生人数的增加,建立一个成绩维护系统是非常必要的。
普通的成绩管理已不能适应时代的发展,因为它浪费了许多的人力和物力。
在当今信息时代这种传统的管理方法必然被以计算机为基础的信息管理系统所代替。
为了提高成绩管理的效率,我选择了学生成绩管理系统作为毕业设计的课题。
本系统在大多数成绩管理系统的基础上,主要增加了教师对成绩的操作,教师改完试卷后不用在往学院的教务处办公室报送成绩,可以直接的把成绩上传到网络上,学生也可以方便快速的查询到自己的成绩,考试后教务管理人员也不必总呆在学院的办公室,他们都不受时间,位置,空间的限制,只要有上网的条件,在家里就可
二系统的结构分析与设计
2.1整体结构设计
基于系统的使用对象是管理员,系统根据功能需要分为三个模块,即学生基本信息管理、新增学生信息管理和查询学生信息管理。
采用B/S模式,jsp+SQL2008+JavaBean的技术形式实现。
2.1.1用户角色设计及权限分配
管理员:
拥有管理系统所有功能的权限,同时负责系统的用户的增删,服务功能的起停,数据的备份、还原等维护操作;
2.1.2系统模块设计
学生信息管理系统包括三个基本模块:
学生基本信息管理、新增学生信息管理和查询学生信息管理。
三个模块管理功能不一,同时相互之间又有联系。
图1
2.1.3系统运行模式设计
系统采用B/S(Browser/Server)模式,使管理更加方便和简单,B/S结构中各个客户端只需安装一个具有某种编译功能的构件即可,这个构件就是Web浏览器,用户面对的将是简单统一的浏览器,而不是一个复杂的客户端软件,这就降低了用户的使用难度,系统面对的是全系的师生,大量的学生在使用,B/S是毋庸置疑的选择和必然。
2.1.4可行性分析
(1).技术可行性:
需要用到JAVA基本技术、基于jsp的WEB程序设计、TSQL语言、图片处理、数据库服务等技术。
(2).开发环境:
课题在JDK+SQLservlet平台下进行设计开发,所使用到的硬件设备有普通PC机一台(现在市场上主流的PC配置已足够),软件有JDK、TOMCAT、SQL2008、MyEclipse、DERAMWVAER8.0、FREAWORK8.0、photoshop等。
(3).运行平台:
借助学院现有的WWW服务平台及数据库服务平台即可实现。
综上所述本课题的开发具有可行性!
2.2系统模块分析
2.2.1数据需求分析
学生信息管理系统就是对学生信息的管理,所以首先我们需要知道的是学生有那些信息,并且是怎样进行分类的。
学生基本信息根据要求应该包括学生姓名、密码、联系方式、email、入学信息等。
学生唯一一一对应的是学号,所以学号是唯一的主键,其他的都不能是,根据学号我们可以查找学生的姓名信息。
2.2.2系统的逻辑结构设计
2.2.3数据库设计
系统创建一个学生信息数据库(mydlb),当中包含有学生资助信息子系统中的主要数据表:
学生信息表(student)其中两个表的结构如下。
学生家庭经济情况信息表(student)
三系统的实现
3.1系统登陆界面
主页是连接登录模块的纽带,我们的理念是给用户简洁、便利的操作界面,如图所示主页只提供了个简单的链接,让用户能够快速的进入系统。
3.2学生信息界面
学生信息界面主要显示学生学号,姓名,查看,编辑,删除等信息。
相关代码为:
publicclassListServletextendsHttpServlet{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
StudentDAOdao=newStudentDAO();
Liststudents=dao.getAllStudents();
request.setAttribute("students",students);
request.getRequestDispatcher("/list.jsp").forward(request,response);
}
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
doGet(request,response);
}
}
3.3学生信息查询,编辑和新增等界面
各功能模块都通过测试,查询得到正确结果,分页功能正常,数据读取状况正常,页面显示正常,响应时间非常快,数据查询过程基本上没有感到浏览器和服务器通信,已经返回了查询结果。
相关代码:
查询代码:
publicclassXuehaoServletextendsHttpServlet{
/**
*
*/
privatestaticfinallongserialVersionUID=1L;
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
StringstrId=request.getParameter("id");
intid=Integer.parseInt(strId);
Studentstudent=newStudent();
StudentDAOdao=newStudentDAO();
student=dao.getStudentById(id);
request.setAttribute("student",student);
request.getRequestDispatcher("/view.jsp").forward(request,response);
}
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
doGet(request,response);
}
}
编辑代码:
publicclassModifyServletextendsHttpServlet{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
StringstrId=request.getParameter("id");
intid=Integer.parseInt(strId);
StudentDAOdao=newStudentDAO();
Studentstudent=dao.getStudentById(id);
request.setAttribute("student",student);
request.getRequestDispatcher("/modify.jsp").forward(request,response);
}
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
doGet(request,response);
}
}
新增代码:
publicclassAddServletextendsHttpServlet{
/**
*
*/
privatestaticfinallongserialVersionUID=1L;
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
Stringusername=request.getParameter("username");
Stringuserid=request.getParameter("userid");
Stringpassword=request.getParameter("psw");
Stringmajor=request.getParameter("major");
Stringphone=request.getParameter("phone");
Stringemail=request.getParameter("email");
Studentstudent=newStudent();
student.setUsername(username);
student.setId(Integer.parseInt(userid));
student.setPassword(password);
student.setMajor(major);
student.setphone(phone);
student.setEmail(email);
StudentDAOdao=newStudentDAO();
dao.addStudent(student);
response.sendRedirect("list.do");
}
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
doGet(request,response);
}
}
3.4连接数据库
publicclassStudentDAO{
privatestaticfinalStringDRIVER="com.mysql.jdbc.Driver";
privatestaticfinalStringURL="jdbc:
mysql:
//localhost:
3306/mydlb";
publicListgetAllStudents(){
Connectionconn=getConn();
Statementstmt=null;
ResultSetrs=null;
StringsqlValue="SELECT*FROMstudent";
Listlist=newArrayList();
try{
stmt=conn.createStatement();
rs=stmt.executeQuery(sqlValue);
while(rs.next()){
Studentstu=newStudent();
stu.setId(rs.getInt("id"));
stu.setUsername(rs.getString("username"));
stu.setPassword(rs.getString("password"));
stu.setMajor(rs.getString("major"));
stu.setphone(rs.getString("phone"));
stu.setEmail(rs.getString("email"));
stu.setEnroll_date(rs.getString("enroll_date"));
list.add(stu);
}
returnlist;
}catch(Exceptionex){
System.out.println("数据库操作发生错误!
");
ex.printStackTrace();
returnnull;
}finally{
try{
if(rs!
=null){
rs.close();
}
if(stmt!
=null){
stmt.close();
}
if(conn!
=null){
conn.close();
}
}catch(SQLExceptionex){
System.out.println("CloseError");//
ex.printStackTrace();
}
}
}
publicStudentgetStudentById(intid){
Connectionconn=getConn();
Statementstmt=null;
ResultSetrs=null;
StringsqlValue="SELECT*FROMstudentWHEREid="+id;
try{
stmt=conn.createStatement();
rs=stmt.executeQuery(sqlValue);
Studentstu=newStudent();
while(rs.next()){
stu.setId(rs.getInt("id"));
stu.setUsername(rs.getString("username"));
stu.setPassword(rs.getString("password"));
stu.setMajor(rs.getString("major"));
stu.setphone(rs.getString("phone"));
stu.setEmail(rs.getString("email"));
stu.setEnroll_date(rs.getString("enroll_date"));
break;
}
returnstu;
}catch(Exceptionex){
System.out.println("数据库操作发生错误!
");
returnnull;
}finally{
try{
if(rs!
=null){
rs.close();
}
if(stmt!
=null){
stmt.close();
}
if(conn!
=null){
conn.close();
}
}catch(SQLExceptionex){
System.out.println("CloseError");//
ex.printStackTrace();
}
}
}
publicvoidaddStudent(Studentstudent){
Connectionconn=getConn();
Statementstmt=null;
StringsqlValue="INSERTINTOstudent(id,username,password,major,phone,email,enroll_date)VALUES("
+student.getId()
+",'"
+student.getUsername()
+"','"
+student.getPassword()
+"','"
+student.getMajor()
+"','"
+student.getphone()
+"','"
+student.getEmail()
+"','"
+(newjava.util.Date()).toString()+"')";
try{
stmt=conn.createStatement();
stmt.executeUpdate(sqlValue);
}catch(Exceptionex){
System.out.println("数据库操作发生错误!
");
ex.printStackTrace();
}finally{
try{
if(stmt!
=null){
stmt.close();
}
if(conn!
=null){
conn.close();
}
}catch(SQLExceptionex){
System.out.println("CloseError");//
ex.printStackTrace();
}
}
}
publicvoidupdateStudent(Studentstudent){
Connectionconn=getConn();
Statementstmt=null;
StringsqlValue="UPDATEstudentSETusername='"
+student.getUsername()+"',password='"
+student.getPassword()+"',major='"+student.getMajor()
+"',phone='"+student.getphone()
+"',email='"+student.getEmail()+"'WHEREid="
+student.getId();
try{
stmt=conn.createStatement();
stmt.executeUpdate(sqlValue);
}catch(Exceptionex){
System.out.println("数据库操作发生错误!
");
ex.printStackTrace();
}finally{
try{
if(stmt!
=null){
stmt.close();
}
if(conn!
=null){
conn.close();
}
}catch(SQLExceptionex){
System.out.println("CloseError");//
ex.printStackTrace();
}
}
}
publicvoidremoveStudent(intid){
Connectionconn=getConn();
Statementstmt=null;
StringsqlValue="DELETEFROMstudentWHEREid="+id;
try{
stmt=conn.createStatement();
stmt.executeUpdate(sqlValue);
}catch(Exceptionex){
System.out.println("数据库操作发生错误!
");
ex.printStackTrace();
}finally{
try{
if(stmt!
=null){
stmt.close();
}
if(conn!
=null){
conn.close();
}
}catch(SQLExceptionex){
System.out.println("CloseError");//
ex.printStackTrace();
}
}
}
privateConnectiongetConn(){
try{
Class.forName(DRIVER);
Connectionconn=DriverManager.getConnection(URL,"root","12345");
returnconn;
}catch(Exceptionex){
System.out.println("不能获取数据库连接!
");//
e