当前位置:   article > 正文

学生信息管理系统(mysql+jsp+servlet)_jsp学生管理系统代码

jsp学生管理系统代码

一、相关知识介绍:

(一)JDBC技术:

JDBC是Java Database Connectivity(Java数据库连接)的缩写,编程人员可以通过这个API接口连接到数据库,并使用结构化查询语言(SQL)完成对数据库的查找和更新

JDBC的目标是屏蔽不同的数据库驱动程序之间的差别,为开发者提供一个标准的、纯Java的数据库程序设计接口,为在Java中访问不同类型的数据库提供技术支持

在Java程序中,通过JDBC访问数据库的步骤如下:

①装载并注册数据库的JDBC驱动程序; ②建立与数据库的连接; ③创建Statement对象; ④调用SQL语句访问数据库; ⑤处理ResultSet中的记录集; ⑥关闭ResultSet、Statement和Connection对象。

(二)MVC模式

1.MVC组成

MVC是 Model-View-Controller 的缩写,即模型-视图-控制器,是一种目前广泛流行的软件设计模式,MVC把一个应用的输入、处理、输出流程按照模型、视图、控制器的方式进行分离,从而将一个应用程序分成三个核心模块:模型、视图和控制器,它们各自完成不同的任务

总的来说,模型是应用对象,视图时他在屏幕上的表示,控制器定义用户界面对用户输入的响应方式

2.MVC模式两种开发模型:

模型一:JSP+JavaBeans的结合

模型二:JSP+JavaBeans+Servlet的结合

二、该项目总体功能概述:

本系统利用Java Web技术实现了学生信息管理系统,具有简单的学生信息管理功能。实现了一下功能模块:院系信息管理模块,学生信息管理模块,课程信息管理模块,成绩管理模块等。

所用到的技术栈

  1. mvc开发模式

  2. jsp+Servlet

  3. HTML5+CSS3+JavaScript等

三、系统运行过程:

img

四、详细设计与代码实现

(一)建立数据库与相关表

1.创建数据库:

StudentInfoManagement

2.创建相关表:

class表:

字段中文描述数据类型
Clno班级编号char(20)
Clname班级名称char(20)
Dno所属院系char(20)

Course表:

字段中文描述数据类型
Cno课程号char(20)
Cname课程名称char(20)
Cteacher老师char(20)
Ccredit学分smallint

Department表:

字段中文描述数据类型
Dno所属院系char(20)
Dname系名char(20)

SC表:

字段中文描述数据类型
Sno学号char(20)
Cno课程号char(20)
Grade成绩smallint

Student表:

字段中文描述数据类型
Sno学号char(20)
Sname姓名char(20)
Ssex性别char(20)
Sage年龄smallint
Clno班级编号char(20)

User表:

字段中文描述数据类型
username用户名char(20)
password密码char(20)
level权限级别char(20)

(二)设计系统所需要的JavaBean

DBUtils.java类:

该JavaBean将数据库连接操作和关闭操作封装起来,在以后的数据库操作中可以直接调用这个JavaBean的方法,该JavaBean应该包含的方法有:

1.数据库的连接,获得一个连接对象的方法:Connection getConnection()

2.当数据库操作完成后,关闭连接并释放资源的方法:closeConnection(Connection conn)

实现代码:

  1. `package utils;
  2. import java.sql.DriverManager; import java.sql.SQLException;
  3. import com.mysql.jdbc.Connection;
  4. public class DBUtils {
  5. /**
  6. * 获取数据库连接
  7. * @return Connection对象
  8. */
  9. public static Connection getConnection(){
  10. String dbUserName = "root";
  11. String dbUserPasswd = "123456";
  12. String dbURL = "jdbc:mysql://localhost:3306/studentinfomanagement?"
  13.           + "user="+dbUserName+"&password="+dbUserPasswd+"&useUnicode=true&characterEncoding=UTF8";
  14. Connection conn = null;
  15. try {
  16. Class.forName("com.mysql.jdbc.Driver");
  17. conn = (Connection) DriverManager.getConnection(dbURL,dbUserName,dbUserPasswd);
  18. } catch (ClassNotFoundException | SQLException e) {
  19. e.printStackTrace();
  20. }
  21. return conn;
  22. }
  23. /**
  24.         * 关闭数据库连接
  25. * @param conn Connection对象
  26. */
  27. public static void closeConnection(Connection conn) {
  28. //判断conn是否为空
  29. if(conn != null){
  30. try {
  31. conn.close();//关闭数据库连接
  32. } catch (SQLException e) {
  33. // TODO: handle exception
  34. e.printStackTrace();
  35. }
  36. }
  37. }
  38. }`

(三)设计所需要的Servlet

再所创建的servlet中,可以在web.xml下进行相关配置,也可使用注解的方式声明servlet,本项目在web.xml下配置相关信息。

1.loginServlet

  1. package service;
  2. import java.io.IOException;
  3. import javax.servlet.ServletException;
  4. import javax.servlet.http.HttpServlet;
  5. import javax.servlet.http.HttpServletRequest;
  6. import javax.servlet.http.HttpServletResponse;
  7. import dao.UserDao;
  8. import model.User;
  9. public class LoginServlet extends HttpServlet {
  10. private static final long serialVersionUID = 1L;
  11. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  12. request.setCharacterEncoding("utf-8");
  13. String username = request.getParameter("username");
  14. String password = request.getParameter("password");
  15. String level = null;
  16. //实例化UserDao对象
  17. UserDao userDao = new UserDao();
  18. User user = userDao.login(username, password);
  19. //判断是否登录成功
  20. if(user != null){//成功
  21. level = user.getLevel();
  22. if(level.equals("用户")){
  23. request.getSession().setAttribute("user", user);//将用户对象放到session中
  24. //转发到user.jsp中
  25. request.getRequestDispatcher("user.jsp").forward(request, response);
  26. }
  27. else{
  28. request.getSession().setAttribute("admin", user);//将管理员对象放到session中
  29. //转发到admin.jsp中
  30. request.getRequestDispatcher("admin.jsp").forward(request, response);
  31. }
  32. }else {//失败
  33. request.setAttribute("info"," 错误:用户名或密码错误!");
  34. request.getRequestDispatcher("message.jsp").forward(request, response);
  35. }
  36. }
  37. }

2.RegisterServlet

  1. package service;
  2. import java.io.IOException;
  3. import javax.servlet.ServletException;
  4. import javax.servlet.http.HttpServlet;
  5. import javax.servlet.http.HttpServletRequest;
  6. import javax.servlet.http.HttpServletResponse;
  7. import dao.UserDao;
  8. import model.User;
  9. public class RegisterServlet extends HttpServlet {
  10. private static final long serialVersionUID = 1L;
  11. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  12. }
  13. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  14. request.setCharacterEncoding("utf-8");
  15. String username = request.getParameter("username");
  16. String password = request.getParameter("password");
  17. String level = request.getParameter("level");
  18. //实例化UserDao对象
  19. UserDao userDao = new UserDao();
  20. User user = userDao.register(username, password,level);
  21. //判断是否注册成功
  22. if(user != null){//成功
  23. if (level.equals("用户")) {
  24. request.getSession().setAttribute("user", user);//将用户对象放到session中
  25. //转发到user.jsp中
  26. request.getRequestDispatcher("user.jsp").forward(request, response);
  27. }else{
  28. request.getSession().setAttribute("admin", user);//将管理员对象放到session中
  29. //转发到user.jsp中
  30. request.getRequestDispatcher("admin.jsp").forward(request, response);
  31. }
  32. }else {//失败
  33. request.setAttribute("info"," 错误:已存在该用户,不能重复注册!");
  34. request.getRequestDispatcher("message.jsp").forward(request, response);
  35. }
  36. }
  37. }

3.UserExitServlet

  1. package service;
  2. import java.io.IOException;
  3. import javax.servlet.ServletException;
  4. import javax.servlet.http.HttpServlet;
  5. import javax.servlet.http.HttpServletRequest;
  6. import javax.servlet.http.HttpServletResponse;
  7. import javax.servlet.http.HttpSession;
  8. public class UserExitServlet extends HttpServlet {
  9. private static final long serialVersionUID = 1L;
  10. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  11. //获取Session
  12. HttpSession session = request.getSession();
  13. session.invalidate();
  14. //转发到login.html页面
  15. response.sendRedirect("login.html");
  16. }
  17. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  18. }
  19. }

(四)设计系统所需要的JSP页面

1.admin.jsp

  1. <%@page import="model.User"%>
  2. <%@ page language="java" contentType="text/html; charset=UTF-8"
  3. pageEncoding="UTF-8"%>
  4. <!DOCTYPE HTML>
  5. <html lang="zh">
  6. <head>
  7. <meta charset="UTF-8">
  8. <title>管理员操作界面</title>
  9. <link rel="stylesheet" type="text/css" href="css/user&admin.css">
  10. <link rel="icon" type="image/x-ico" href="images/stu.ico">
  11. </head>
  12. <body>
  13. <%
  14. //获取登录成功的用户信息
  15. User user = (User) session.getAttribute("admin");
  16. //判断用户是否登录
  17. if(user != null){
  18. %>
  19. <header>
  20. <div class="title">
  21. <span>管理员操作界面</span>
  22. </div>
  23. <nav>
  24. <div class="userinfo">
  25. <ul>
  26. <li><%=user.getUsername() %></li>
  27. <li><%=user.getLevel() %></li>
  28. <li><a href="UserExitServlet">退出登录</a></li>
  29. <li><a href="login.html">返回首页</a></li>
  30. </ul>
  31. </div>
  32. </nav>
  33. </header>
  34. <main>
  35. <%
  36. }else{
  37. response.sendRedirect("login.html");
  38. }
  39. %>
  40. <div class="container">
  41. <div class="select">
  42. <h3>请选择操作</h3>
  43. <ul id="accordion" class="accordion">
  44. <li>
  45. <div id="user-info" class="link"></i>用户信息管理</div>
  46. <ul class="submenu">
  47. <li><a onclick="query_all('user')">查看所有用户</a></li>
  48. <li><a onclick="show_insert_user()">新增用户信息</a></li>
  49. <li><a onclick="show_delete('user')">删除指定用户</a></li>
  50. <li><a onclick="show_alter('user')">修改用户信息</a></li>
  51. </ul>
  52. </li>
  53. <li>
  54. <div class="link"></i>院系信息管理</div>
  55. <ul class="submenu">
  56. <li><a onclick="query_all('department')">查看所有院系</a></li>
  57. <li><a onclick="show_insert_department()">新增院系信息</a></li>
  58. <li><a onclick="show_delete('department')">删除指定院系</a></li>
  59. <li><a onclick="show_alter('department')">修改院系信息</a></li>
  60. </ul>
  61. </li>
  62. <li>
  63. <div class="link">班级信息管理</div>
  64. <ul class="submenu">
  65. <li><a onclick="query_all('class')">查看所有班级</a></li>
  66. <li><a onclick="show_insert_class()">新增班级信息</a></li>
  67. <li><a onclick="show_delete('class')">删除指定班级</a></li>
  68. <li><a onclick="show_alter('class')">修改班级信息</a></li>
  69. </ul>
  70. </li>
  71. <li>
  72. <div class="link">学生信息管理</div>
  73. <ul class="submenu">
  74. <li><a onclick="query_all('student')">查看所有学生</a></li>
  75. <li><a onclick="show_insert_student()">新增学生信息</a></li>
  76. <li><a onclick="show_delete('student')">删除指定学生</a></li>
  77. <li><a onclick="show_alter('student')">修改学生信息</a></li>
  78. </ul>
  79. </li>
  80. <li>
  81. <div class="link">课程信息管理</div>
  82. <ul class="submenu">
  83. <li><a onclick="query_all('course')">查看所有课程</a></li>
  84. <li><a onclick="show_insert_course()">新增课程信息</a></li>
  85. <li><a onclick="show_delete('course')">删除课程信息</a></li>
  86. <li><a onclick="show_alter('course')">修改课程信息</a></li>
  87. <li><a onclick="course_avg()">查询课程平均分</a></li>
  88. <li><a onclick="fail_rate()">查询课程不及格率</a></li>
  89. <li><a onclick="show_course_ranking()">查询课程排名情况</a></li>
  90. </ul>
  91. </li>
  92. <li>
  93. <div class="link">学生成绩管理</div>
  94. <ul class="submenu">
  95. <li><a onclick="query_all('sc')">查看全部学生成绩</a></li>
  96. <li><a onclick="show_insert_sc()">新增学生成绩记录</a></li>
  97. <li><a onclick="show_delete('sc')">删除学生成绩记录</a></li>
  98. <li><a onclick="show_alter('sc')">修改学生成绩记录</a></li>
  99. </ul>
  100. </li>
  101. </ul>
  102. </div>
  103. <div id="result" class="result">
  104. <p class="welcome">欢迎使用学生信息管理系统!</p>
  105. </div>
  106. </div>
  107. </div>
  108. </main>
  109. <footer>
  110. <div class="copyright">
  111. &copy; Copyright. All rights reserved. Design by <a href="http://www.github.com/Soarkey/">Soarkey</a>
  112. </div>
  113. </footer>
  114. <script src="js/jquery-3.1.1.min.js"></script>
  115. <script src="js/admin.js"></script>
  116. </body>
  117. </html>

2.message.jsp

  1. <%@page import="model.User"%>
  2. <%@ page language="java" contentType="text/html; charset=UTF-8"
  3. pageEncoding="UTF-8"%>
  4. <!DOCTYPE html>
  5. <html lang="zh">
  6. <head>
  7. <meta charset=UTF-8>
  8. <title>错误信息</title>
  9. <link rel="stylesheet" type="text/css" href="css/message.css">
  10. <link rel="icon" type="image/x-ico" href="images/stu.ico">
  11. </head>
  12. <body>
  13. <main>
  14. <div class="message">
  15. <div class="left">
  16. <%
  17. //获取提示信息
  18. String info = (String) request.getAttribute("info");
  19. //如果提示信息不为空,则输出
  20. if(info != null){
  21. %>
  22. <h3><%=info%></h3>
  23. <%
  24. }
  25. //获取登录成功的用户信息
  26. User user = (User) session.getAttribute("user");
  27. //判断用户是否登录
  28. if(user != null){
  29. }else{
  30. //out.print("<script>alert('对不起!您还未登录!');</script>");
  31. %>
  32. <p><%="对不起!您还未登录!"%></p>
  33. <%
  34. }
  35. %>
  36. </div>
  37. <div class="right">
  38. <a class="relogin" href="login.html">重新登录></a>
  39. </div>
  40. </div>
  41. </main>
  42. <footer>
  43. <div class="info">
  44. <ul>
  45. <a href="#"><li>学生信息管理系统</li></a>
  46. <a href="#"><li>帮助与反馈</li></a>
  47. <a href="#"><li>联系我们</li></a>
  48. </ul>
  49. </div>
  50. <div class="copyright">
  51. &copy; Copyright. All rights reserved. Design by <a href="http://www.github.com/Soarkey/">Soarkey</a>
  52. </div>
  53. </footer>
  54. </body>
  55. </html>

3.user.jsp

  1. <%@page import="model.User"%>
  2. <%@ page language="java" contentType="text/html; charset=UTF-8"
  3. pageEncoding="UTF-8"%>
  4. <!DOCTYPE HTML>
  5. <html lang="zh">
  6. <head>
  7. <meta charset="UTF-8">
  8. <title>用户操作界面</title>
  9. <link rel="stylesheet" type="text/css" href="css/user&admin.css">
  10. <link rel="icon" type="image/x-ico" href="images/stu.ico">
  11. </head>
  12. <body>
  13. <%
  14. //获取登录成功的用户信息
  15. User user = (User) session.getAttribute("user");
  16. //判断用户是否登录
  17. if(user != null){
  18. %>
  19. <header>
  20. <div class="title">
  21. <span>用户操作界面</span>
  22. </div>
  23. <nav>
  24. <div class="userinfo">
  25. <ul>
  26. <li><%=user.getUsername() %></li>
  27. <li><%=user.getLevel() %></li>
  28. <li><a href="UserExitServlet">退出登录</a></li>
  29. <li><a href="login.html">返回首页</a></li>
  30. </ul>
  31. </div>
  32. </nav>
  33. </header>
  34. <main>
  35. <%
  36. }else{
  37. response.sendRedirect("login.html");
  38. }
  39. %>
  40. <div class="container">
  41. <div class="select">
  42. <h3>请选择操作</h3>
  43. <ul id="accordion" class="accordion">
  44. <li>
  45. <div class="link"></i>院系信息管理</div>
  46. <ul class="submenu">
  47. <li><a onclick="query_all('department')">查看所有院系</a></li>
  48. </ul>
  49. </li>
  50. <li>
  51. <div class="link">班级信息管理</div>
  52. <ul class="submenu">
  53. <li><a onclick="query_all('class')">查看所有班级</a></li>
  54. </ul>
  55. </li>
  56. <li>
  57. <div class="link">学生信息管理</div>
  58. <ul class="submenu">
  59. <li><a onclick="query_all('student')">查看所有学生</a></li>
  60. </ul>
  61. </li>
  62. <li>
  63. <div class="link">课程信息管理</div>
  64. <ul class="submenu">
  65. <li><a onclick="query_all('course')">查看所有课程</a></li>
  66. <li><a onclick="course_avg()">查询课程平均分</a></li>
  67. <li><a onclick="fail_rate()">查询课程不及格率</a></li>
  68. <li><a onclick="show_course_ranking()">查询课程排名情况</a></li>
  69. </ul>
  70. </li>
  71. <li>
  72. <div class="link">学生成绩管理</div>
  73. <ul class="submenu">
  74. <li><a onclick="query_all('sc')">查看全部学生成绩</a></li>
  75. </ul>
  76. </li>
  77. </ul>
  78. </div>
  79. <div id="result" class="result">
  80. <p class="welcome">欢迎使用学生信息管理系统!</p>
  81. </div>
  82. </div>
  83. </div>
  84. </main>
  85. <footer>
  86. <div class="copyright">
  87. &copy; Copyright. All rights reserved. Design by <a href="http://www.github.com/Soarkey/">Soarkey</a>
  88. </div>
  89. </footer>
  90. <script src="js/jquery-3.1.1.min.js"></script>
  91. <script src="js/user.js"></script>
  92. </body>
  93. </html>

五、部分实现截图:

1.登录进来后的页面:

2.查询页面:

3.新增页面:

4.删除页面:

5.修改页面:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/697263
推荐阅读
相关标签
  

闽ICP备14008679号