JSP学生信息管理系统.docx

上传人:牧羊曲112 文档编号:3160000 上传时间:2023-03-11 格式:DOCX 页数:38 大小:48.40KB
返回 下载 相关 举报
JSP学生信息管理系统.docx_第1页
第1页 / 共38页
JSP学生信息管理系统.docx_第2页
第2页 / 共38页
JSP学生信息管理系统.docx_第3页
第3页 / 共38页
JSP学生信息管理系统.docx_第4页
第4页 / 共38页
JSP学生信息管理系统.docx_第5页
第5页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《JSP学生信息管理系统.docx》由会员分享,可在线阅读,更多相关《JSP学生信息管理系统.docx(38页珍藏版)》请在三一办公上搜索。

1、JSP学生信息管理系统重庆科技学院Web应用程序设计课程设计报告 摘要 随着社会信息化程序不断提高,越来越多的软件开发人员需要开发Web应用程序。目前网络编程主要有两大技术体系:基于JavaEE的网络开发和基于.NET的网络开发。JavaEE技术以其开放性,灵活性的技术成熟度,赢得了广大编程爱好者的青睐,并且在目前企业级信息系统开发领域也占领了很大的市场,取得了许多成功的案例。 此次课程设计我使用JavaEE编程技术,利用MyEclipse开发工具设计了一个学生信息管理系统。用户的身份分为学生和管理员,用户登陆系统时系统根据用户身份提供相应的功能。学生的功能包括:学生信息的查询,个人信息的修改

2、,密码修改和留言。当用户登陆时若有新留言,系统提示用户查看新留言。管理员在此基础上还有添加学生信息和删除学生信息的功能,修改的权限也大于学生。 本系统采用JSP 和Servlet 结合,JSP和JavaBean结合的技术。通过JDBC连接到数据库,实现数据库的操作。 关键词:JavaEE编程技术 Servlet JavaBean 数据库 I 重庆科技学院Web应用程序设计课程设计报告 目录 一、需求分析 . 1 1.1功能需求 . 1 1.2环境需求 . 1 二、概要设计 . 2 2.1系统总体结构 . 2 2.2开发环境的配置 . 2 三、详细设计 . 3 3.1数据库设计 . 3 3.1.

3、1数据字典 . 3 3.1.2逻辑设计 . 4 3.1.3物理设计 . 4 3.1.4数据库实施 . 5 3.1.5 JAVAEE数据库连接 . 6 3.2功能设计 . 7 3.2.1登陆功能 . 7 3.2.2查询功能 . 9 3.2.3添加功能 . 11 3.2.4 删除功能 . 13 3.2.5修改功能 . 15 3.2.6留言功能 . 17 四、调试与测试 . 20 4.1学生登陆测试 . 20 4.2管理员登陆测试 . 22 五、总结 . 25 参考文献: . 26 致谢 . 27 II 重庆科技学院Web应用程序设计课程设计报告 一、需求分析 1.1功能需求 前台功能: 1)学生信

4、息浏览功能 :学生和管理员都可进行查询和浏览,学生可以按学号、姓名查询和查询全部学生信息,管理员可以按班级,专业查询。查询时先要选择查询方式,再输入查询的关键词。查询全部学生信息时不需要输入关键词。 2)学生个人信息维护功能:学生能对自己部分信息的修改功能,而部分信息不能做修改。修改时先读取个人信息到文本框中,学生可以在文本框中对个人信息修改。不能修改的信息对应的文本框为只读。修改完成后保存即可。 3)留言版:学生可以有针对性的向其他同学进行信息留言,留言时需要输入收信人的学号和内容即可,留言时获取系统时间,留言人为登陆时系统记录的学号对应的姓名。对方登陆后,若有新留言可以自动提示,并设有查询

5、新留言的超链接。 后台功能: 1) 管理员可按照班级对学生个人信息进行管理,班级信息管理包括按班级查询学生信息,修改班级信息,删除班级信息,添加班级信息。 2)管理员可对学生基本信息进行录入,查询、添加、修改、删除。管理员查询是在学生查询的基础上新增加按班级,按专业对学生进行查询。添加学生信息时只需将要添加的学生信息输入对应的文本框中。修改学生信息时先查询出修改学生的信息查询显示在文本框中,修改时只需要将信息输入到对应的文本框中,不能修改的信息对应的文本框设为为只读,管理员可以修改除了学号以外的其它信息。删除时先查询出要删除的学生信息,再确认删除。 3)管理员可动态添加班级信息,对班级信息进行

6、管理和设置 1.2环境需求 根据系统的基本功能需求,以及客户的信息系统环境,计划采用浏览器/服务器模式来 构建管理系统,这样方便维护和使用。同时,根据客户对技术的具体建议,计划采用 J2EE 技术来开发。具体的软硬件环境要求如下: (1)硬件环境:采用普通办公用个人计算机作为服务器即可。 (2)操作系统:可以采用 Windows XP 以上系统。 (3)数据库系统:采用Mysql数据库 (4)Web服务器:采用Tomcat5以上系统。 (5)Java运行环境:采用 JRE 1.5以上中文版本。 (6)客户端:采用浏览器工具即可。 1 重庆科技学院Web应用程序设计课程设计报告 二、概要设计 2

7、.1系统总体结构 按照系统的需求要求,可以把系统功能进行分解,以便按照每个功能模块的要求分别实现对应的功能。系统总体结构如下图2.1所示: 学生信息管理系统 学生 管理员 学生 查 询 修 改 个人信息 学生 留 言 管理员查询 添 加 学生信息 修 改 学生信息 删 除 学生信息 管理员留 言 图2.1系统结构图 用户的身份分为学生和管理员,用户登陆系统时系统根据用户身份提供相应的功能。系统提供给学生的查询方式有按学号查询、按姓名查询和查询全部学生信息;学生可以修改部分个人信息,对于像学号、班级、专业这样的信息学生不能作修改;学生可以给任何用户留言,留言时系统会获取留言人和留言时间。系统提供

8、给管理员的查询方式在学生的基础上增加了按班级查询、按专业查询和查询管理员信息;管理员可以向学生库中添加学生信息和从学生库中删除学生信息;管理员可以修改除学号以外的所有学生信息;管理员在留言时系统会在获取到的管理员姓名前加入“管理员”的字样,以提醒收信人,此信息是来自于管理员。 2.2开发环境的配置 由于采用了J2EE模型2的方式,因此只要安装好需求分析中提出的软件、硬件环境要求就可以了。另外,为了便于开发,还要安装一套开发工具,推荐使用 Eclipse或者MyEclipse,其中提供了方便的编程界面。 本系统没有其他的插件或者 API,当安装好这些软件后,就可以进行开发了。其中要 注意的就是版

9、本一致性问题,强烈建议采用最新版本的开发工具。 本系统采用了Mysql数据库系统,建议安装5.0以上版本。最新版本可以到网站()上去下载。 2 重庆科技学院Web应用程序设计课程设计报告 三、详细设计 3.1数据库设计 3.1.1数据字典 本系统中所用到的数据库数据信息如下表如示: 表3.1数据库逻辑表 表格 名称 studentinfor 学生信息表 administrator 管理员信息表 massage 留言表 表3.2学生信息表 名称 类型 长度 sno 字符串 10 sname 字符串 45 ssex 字符串 6 sage 整型 classname 字符串 45 department

10、 字符串 45 email 字符串 45 phone 字符串 45 password 字符串 6 表3.3管理员信息表 名称 类型 长度 number 字符串 10 name 字符串 45 password 字符串 6 sex 字符串 6 email 字符串 45 phone 字符串 45 表3.4留言表 名称 类型 长度 numberm 整型 sno 字符串 10 massageinfor 字符串 450 givename 字符串 45 3 说明 学生基本信息 管理员基本信息 留言信息表 说明 学生学号 学生姓名 性别 年龄 班级 专业 Email 联系电话 登陆密码 说明 管理员编号 管理

11、员姓名 登陆密码 性别 Email 联系电话 说明 留言编号 收信人编号 留言内容 留言人姓名 重庆科技学院Web应用程序设计课程设计报告 dateg readm 字符串 字符串 45 2 留言时间 读取标记 3.1.2逻辑设计 根据系统需求和设计的规划,可以建立一个数据库,并在其中建立几个表格,分别用来存储各个功能模块的数据信息。E-R图如图3.1所示 studentinforsnoCharacters (10)snameCharacters (45)ssexCharacters (6)sageIntegerclassnameCharacters (45)departmentCharacte

12、rs (45)emailCharacters (45)phoneCharacters (45)passwordCharacters (6)学生留言massageadministratornumberCharacters (10)nameCharacters (45)sexCharacters (6)passwordaCharacters (6)emailaCharacters (45)phoneaCharacters (45)Identifier_1管理员留言numbermIntegersno1Characters (10)dategCharacters (45)givenameCharact

13、ers (45)readmCharacters (2)Identifier_1图3.1E-R图 3.1.3物理设计 E-R图中实体与实体之间的关系,可以进一步转化为相应的数据模型,目前很多的DBMS只支持关系、网状、层次三种数据模型,尤其是关系模型,以其优越的性能赢得了很大的市场。对某一种数据模型,各个机器又有不同的限制。 studentinforsnosnamessexsageclassnamedepartmentemailphonepasswordchar(10)char(45)char(6)integerchar(45)char(45)char(45)char(45)char(6)FK_

14、MASSAGE_学生留言_STUDENTImassagenumbermnumbersnosno1dateggivenamereadmintegerchar(10)char(10)char(10)char(45)char(45)char(2)administratornumbernamesexpasswordaemailaphoneachar(10)char(45)char(6)char(6)char(45)char(45)FK_MASSAGE_管理员留言_ADMINIST图3.2物理模型 4 重庆科技学院Web应用程序设计课程设计报告 3.1.4数据库实施 按上述步骤建立数据库,如图3.3所示

15、,表中学生表属性如图3.4所示,管理员表录图3.5所示,留言表如图3.6所示。 图3.3数据库表 图3.4学生表属性 图3.5管理员表属性 图3.6留言表属性 5 重庆科技学院Web应用程序设计课程设计报告 3.1.5 JAVAEE数据库连接 连接类如下,连接到本地IP下的mysql数据库的student数据库中,连接身份为“root”连接密码为“413622” public class DB public static Connection getConn Connection conn = null; try Class.forName(org.gjt.mm.mysql.Driver);

16、conn=java.sql.DriverManager.getConnection(jdbc:mysql:/localhost:3306/stude public static Statement createStmt(Connection conn) public static ResultSet executeQuery(Statement stmt, String sql) public static ResultSet executeQuery(PreparedStatement preparedstmt) ResultSet rs = null; try rs = prepareds

17、tmt.executeQuery; e.printStackTrace; catch (SQLException e) ResultSet rs = null; try return rs; rs = stmt.executeQuery(sql); e.printStackTrace; catch (SQLException e) Statement stmt = null; try return stmt; stmt = conn.createStatement; e.printStackTrace; catch (SQLException e) catch (ClassNotFoundEx

18、ception e) return conn; e.printStackTrace; e.printStackTrace; catch (SQLException e) nt, root, 413622); return rs; 6 重庆科技学院Web应用程序设计课程设计报告 public static PreparedStatement prepareStmt(Connection conn, String sql) public static void close(Connection conn) public static void close(Statement stmt) publi

19、c static void close(ResultSet rs) if (rs != null) try rs.close; e.printStackTrace; catch (SQLException e) if (stmt != null) try stmt.close; e.printStackTrace; catch (SQLException e) if (conn != null) try conn.close; e.printStackTrace; catch (SQLException e) PreparedStatement pstmt = null; try return

20、 pstmt; pstmt = (PreparedStatement) conn.prepareStatement(sql); e.printStackTrace; catch (SQLException e) 否 3.2功能设计 3.2.1登陆功能 先获取主界面文本框中输入的用户名、密码和登陆方式。登陆身份若是管理员则7 重庆科技学院Web应用程序设计课程设计报告 administrator.checkManUser(conn, username,password)函数对比数据库中管理员表的内容,登陆成功则跳到管理员主页面。若是学生则利用student.checkStuUser(conn,

21、username,password)函数对比数据库中学生表中的内容,登陆成功则跳到学生主页面,程序流程如图3.7所示 开始输入登陆信息管理员?否否是对比管理员信息否对比学生信息对比成功?对比成功?是管理员主界面是学生主界面结束图3.7登陆流程图 登陆功能关键代码如下: username=request.getParameter(username); password=request.getParameter(password); radio = request.getParameter(radio); if(radio.equals(1) try if (student.checkManUse

22、r(conn, username,password) rd.forward(request,response); rd = 8 try if (administrator.checkStuUser(conn, username,password) rd = rd.forward(request,response); this.getServletContext.getRequestDispatcher(/StuMain.jsp); else rd = this.getServletContext.getRequestDispatcher(/login.jsp); rd.forward(requ

23、est,response); rd.forward(request,response); rd=this.getServletContext.getRequestDispatcher(/login.jsp); catch (Exception e) else rd=this.getServletContext.getRequestDispatcher(/AdmMain.jsp); else 重庆科技学院Web应用程序设计课程设计报告 this.getServletContext.getRequestDispatcher(/login.jsp); rd = this.getServletCont

24、ext.getRequestDispatcher(/login.jsp); rd.forward(request,response); rd.forward(request,response); catch (Exception e) checkManUser(conn, username,passwo)函数与checkStuUser(conn, username,password)类似,下面以管理员登陆为例说明:当用户名和密码与数据库中相同时返回值为TURE,否则返回值为FALSE public static boolean checkManUser(Connection conn, Str

25、ing username,String password) throws Exception String strSql; Statement stmt; ResultSet rs; strSql = select * from administrator where number= + username + and password= + password + ; stmt = DB.createStmt(conn); rs = DB.executeQuery(stmt, strSql); if (rs.next) return true; return false; else 3.2.2查

26、询功能 先获取下拉框的值,赋值给S。S的作用是记录查询方式用的,学生查询方式有学号、姓名和全部学生信息。再获取输入的关键词,赋值给keyword,keyword记录查询关键词。再利用前面提到的student.findstudent(conn, s, keyword)函数处理。查询成功将查询到的信息显示出来,查询失败则显示提示信息。查询程序流程如图3.8所示。 9 重庆科技学院Web应用程序设计课程设计报告 开始获取s ,和keywordS=6?否否查询学生信息是查询管理员信息否查询成功?查询成功?是显示查询信息是结束图3.8查询流程图 程序关键代码如下: java.sql.Connection

27、 conn=null; java.sql.ResultSet rs=null; conn = DB.getConn; String s = request.getParameter(combobox1); String keyword = (String)request.getParameter(search); try rs = student.findstudent(conn, s, keyword); catch(java.sql.SQLException e) out.println(e.toString); finally if(conn!=null) conn.close; fin

28、dstudent(conn, s, keyword)函数位于student类中,s的值为“1”为按学号查询,“2”为按姓名查询,“3”为查询全部学生信息,“4”为按班级查询,“5”为按专业查询,“6”为查询管理员信息。学生查询权限为1、2、3,管理员可以是1、2、3、4、5、6关键代码如下: public static ResultSet findstudent(Connection conn,String s,String keyword) throws SQLException ResultSet rs = null; java.sql.PreparedStatement prepared

29、Stmt = null; if(s.equals(1) preparedStmt = conn.prepareStatement(select * from studentinfor where 10 sno = +keyword+); 重庆科技学院Web应用程序设计课程设计报告 else if(s.equals(2) preparedStmt = conn.prepareStatement(select * from studentinfor where sname = +keyword+); else if(s.equals(3) preparedStmt = conn.prepareSt

30、atement(select * from studentinfor); else if(s.equals(4) preparedStmt = conn.prepareStatement(select * from studentinfor where classname = +keyword+); else if(s.equals(5) preparedStmt = conn.prepareStatement(select * from studentinfor where department = +keyword+); else preparedStmt = conn.prepareSt

31、atement(select * from administrator); rs = preparedStmt.executeQuery; return rs; 3.2.3添加功能 先获取文本框的值,再将获取到的值为学生的实例stu的属性赋值,再利用student.Insertstu(conn,stu)将信息添加到数据库中去。获取学生实例的属性写入数据库属性。添加成功则产生成功提示信息,再返回添中页面,失败则产生失败信息,再返回添加页面,添加流程如图3.9所示 11 重庆科技学院Web应用程序设计课程设计报告 开始获取输入值实例化学生类将获取到的输入值为学生实倒赋值获取学生类类例属性将获取到的

32、属性写入数据库添加成功?否是成功提示信息失败提示信息结束图3.9添加学生信息流程图 添加学生信息的关键代码如下: String sno = request.getParameter(snoa); String sname = request.getParameter(snamea); String ssex = request.getParameter(ssexa); int sage = Integer.parseInt(request.getParameter(sagea); String classname = request.getParameter(classnamea); Stri

33、ng department = request.getParameter(departmenta); String email = request.getParameter(emaila); String phone = request.getParameter(phonea); student stu = new student; stu.setSno(sno); stu.setSname(sname); stu.setSsex(ssex); stu.setSage(sage); stu.setClassname(classname); stu.setDepartment(departmen

34、t); stu.setEmail(email); stu.setPhone(phone); Connection conn = DB.getConn; try student.InsertStu(conn,stu); out.println(添加成功返回); catch (Exception e) e.printStackTrace; 12 重庆科技学院Web应用程序设计课程设计报告 out.println(添加失败返回); finally DB.close(conn); InsertStu(conn,stu)函数位于student类中,此函数先获取学生实例stu的属性,再将其属性写入相应的数

35、据库字段中。添加信息权限仅限管理员,关键代码如下: public static boolean InsertStu(Connection conn, student stu) throws Exception PreparedStatement stmt = null; String s = 123456; String a=stu.getSno; String b=stu.getSname; String c=stu.getSsex; int d= stu.getSage; String e= stu.getClassname; String f=stu.getDepartment; Str

36、ing g= stu.getEmail; String h= stu.getPhone; String strSql = INSERT INTO studentinfor(sno,sname,ssex,sage,classname,department,email,phone,password) VALUES(+a+,+b+,+c+,+d+,+e+,+f+,+g+,+h+,+s+); stmt = conn.prepareStatement(strSql); try stmt.executeUpdate; catch (Exception e1) System.out.println(添加失败

37、!); return false; DB.close(stmt); finally return true; 3.2.4 删除功能 删除时,选择删除方式,可以按学号删除和按班级删除,根据选择方式和关键词,先通过前面提到的student.findstudent(conn, s, keyword)函数将要删除学生的信息查询显示出来,“s”为删除方式,也为查询方式,“s”的值可以是“1”按学号删除,“4”按班级删除,“keyword”为查询关键字。用户点击“确认删除”,则删除当前学生信息,删除流程如图3.10 13 重庆科技学院Web应用程序设计课程设计报告 开始获取输入值:s.keyword根据s

38、和keyword的值查询学生信息查询成功?是显示查询到的学生信息否确认删除?否是删除成功?是否成功提示信息失败提示信息结束图3.10删除学生信息流程图 删除流程关键代码如下: String s = (String)session.getAttribute(s1); String keyword = (String)session.getAttribute(keyword1); try student.DelStu(conn,s,keyword); out.println(删除成功返回); catch (Exception e) e.printStackTrace; out.println(删除失败返回); finally DB.close(conn); DelStu(conn,s,keyword)函数位于student类中,此函数作用是将学号或班级为keyword的学生信息删除。关键代码如下如示 public static boolean DelStu(Connection conn, String s,String keyword) throws Exception PreparedStatement stmt = null; if(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号