门生信息管理体系(mysql+jsp+servlet)

打印 上一主题 下一主题

主题 843|帖子 843|积分 2529

一、相干知识先容:

(一)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技术实现了门生信息管理体系,具有简单的门生信息管理功能。实现了一下功能模块:院系信息管理模块,门生信息管理模块,课程信息管理模块,结果管理模块等。


所用到的技术栈

  • mvc开发模式
  • jsp+Servlet
  • HTML5+CSS3+JavaScript等
三、体系运行过程:



四、详细设计与代码实现

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

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年龄smallintClno班级编号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.       
  12.         protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  13.                
  14.         }
  15.         protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  16.                 request.setCharacterEncoding("utf-8");
  17.                 String username = request.getParameter("username");
  18.                 String password = request.getParameter("password");
  19.                 String level = request.getParameter("level");
  20.                 //实例化UserDao对象
  21.                 UserDao userDao = new UserDao();
  22.                 User user = userDao.register(username, password,level);
  23.                 //判断是否注册成功
  24.                 if(user != null){//成功
  25.                         if (level.equals("用户")) {
  26.                                 request.getSession().setAttribute("user", user);//将用户对象放到session中
  27.                                 //转发到user.jsp中
  28.                                 request.getRequestDispatcher("user.jsp").forward(request, response);
  29.                         }else{
  30.                                 request.getSession().setAttribute("admin", user);//将管理员对象放到session中
  31.                                 //转发到user.jsp中
  32.                                 request.getRequestDispatcher("admin.jsp").forward(request, response);
  33.                         }
  34.                 }else {//失败
  35.                         request.setAttribute("info"," 错误:已存在该用户,不能重复注册!");
  36.                         request.getRequestDispatcher("message.jsp").forward(request, response);
  37.                 }
  38.         }
  39. }
复制代码
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.         }
  20. }
复制代码
(四)设计体系所必要的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.        
  13. <body>
  14.         <%
  15.                 //获取登录成功的用户信息
  16.                 User user = (User) session.getAttribute("admin");
  17.                 //判断用户是否登录
  18.                 if(user != null){
  19.         %>
  20.         <header>
  21.                 <div class="title">
  22.                         <span>管理员操作界面</span>
  23.                 </div>
  24.                 <nav>
  25.                         <div class="userinfo">
  26.                                 <ul>
  27.                                         <li><%=user.getUsername() %></li>
  28.                                         <li><%=user.getLevel() %></li>
  29.                                         <li><a href="UserExitServlet">退出登录</a></li>
  30.                                         <li><a href="login.html">返回首页</a></li>
  31.                                 </ul>
  32.                         </div>
  33.                 </nav>
  34.         </header>
  35.        
  36.         <main>
  37.                 <%
  38.                 }else{
  39.                         response.sendRedirect("login.html");
  40.                 }
  41.                 %>
  42.                 <div class="container">
  43.                         <div class="select">
  44.                                 <h3>请选择操作</h3>
  45.                                 <ul id="accordion" class="accordion">
  46.                                         <li>
  47.                                                 <div id="user-info" class="link"></i>用户信息管理</div>
  48.                                                 <ul class="submenu">
  49.                                                         <li><a onclick="query_all('user')">查看所有用户</a></li>
  50.                                                         <li><a onclick="show_insert_user()">新增用户信息</a></li>       
  51.                                                         <li><a onclick="show_delete('user')">删除指定用户</a></li>                               
  52.                                                         <li><a onclick="show_alter('user')">修改用户信息</a></li>                                                       
  53.                                                 </ul>
  54.                                         </li>
  55.                                         <li>
  56.                                                 <div class="link"></i>院系信息管理</div>
  57.                                                 <ul class="submenu">
  58.                                                         <li><a onclick="query_all('department')">查看所有院系</a></li>
  59.                                                         <li><a onclick="show_insert_department()">新增院系信息</a></li>
  60.                                                         <li><a onclick="show_delete('department')">删除指定院系</a></li>               
  61.                                                         <li><a onclick="show_alter('department')">修改院系信息</a></li>       
  62.                                                 </ul>
  63.                                         </li>
  64.                                         <li>
  65.                                                 <div class="link">班级信息管理</div>
  66.                                                 <ul class="submenu">
  67.                                                         <li><a onclick="query_all('class')">查看所有班级</a></li>
  68.                                                         <li><a onclick="show_insert_class()">新增班级信息</a></li>
  69.                                                         <li><a onclick="show_delete('class')">删除指定班级</a></li>                               
  70.                                                         <li><a onclick="show_alter('class')">修改班级信息</a></li>       
  71.                                                 </ul>
  72.                                         </li>
  73.                                         <li>
  74.                                                 <div class="link">学生信息管理</div>
  75.                                                 <ul class="submenu">
  76.                                                         <li><a  onclick="query_all('student')">查看所有学生</a></li>
  77.                                                         <li><a onclick="show_insert_student()">新增学生信息</a></li>       
  78.                                                         <li><a onclick="show_delete('student')">删除指定学生</a></li>                                       
  79.                                                         <li><a onclick="show_alter('student')">修改学生信息</a></li>       
  80.                                                 </ul>
  81.                                         </li>
  82.                                         <li>
  83.                                                 <div class="link">课程信息管理</div>
  84.                                                 <ul class="submenu">
  85.                                                         <li><a onclick="query_all('course')">查看所有课程</a></li>
  86.                                                         <li><a onclick="show_insert_course()">新增课程信息</a></li>       
  87.                                                         <li><a onclick="show_delete('course')">删除课程信息</a></li>
  88.                                                         <li><a onclick="show_alter('course')">修改课程信息</a></li>       
  89.                                                         <li><a onclick="course_avg()">查询课程平均分</a></li>
  90.                                                         <li><a onclick="fail_rate()">查询课程不及格率</a></li>
  91.                                                         <li><a onclick="show_course_ranking()">查询课程排名情况</a></li>
  92.                                                 </ul>
  93.                                         </li>
  94.                                         <li>
  95.                                                 <div class="link">学生成绩管理</div>
  96.                                                 <ul class="submenu">
  97.                                                         <li><a  onclick="query_all('sc')">查看全部学生成绩</a></li>
  98.                                                         <li><a onclick="show_insert_sc()">新增学生成绩记录</a></li>       
  99.                                                         <li><a onclick="show_delete('sc')">删除学生成绩记录</a></li>                                       
  100.                                                         <li><a onclick="show_alter('sc')">修改学生成绩记录</a></li>       
  101.                                                 </ul>
  102.                                         </li>
  103.                                 </ul>
  104.                                 </div>
  105.        
  106.                                 <div id="result" class="result">
  107.                                         <p class="welcome">欢迎使用学生信息管理系统!</p>
  108.                                 </div>
  109.                         </div>
  110.                 </div>
  111.         </main>
  112.        
  113.         <footer>
  114.                 <div class="copyright">
  115.                         &copy; Copyright. All rights reserved. Design by <a href="http://www.github.com/Soarkey/">Soarkey</a>
  116.                 </div>
  117.         </footer>
  118.         <script src="js/jquery-3.1.1.min.js"></script>
  119.         <script src="js/admin.js"></script>
  120. </body>
  121. </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.                                        
  30.                                 }else{
  31.                                         //out.print("<script>alert('对不起!您还未登录!');</script>");
  32.                         %>
  33.                                 <p><%="对不起!您还未登录!"%></p>
  34.                         <%
  35.                                 }       
  36.                         %>
  37.                         </div>
  38.                         <div class="right">
  39.                                 <a class="relogin" href="login.html">重新登录></a>
  40.                         </div>
  41.                 </div>
  42.         </main>
  43.        
  44.         <footer>
  45.                 <div class="info">
  46.                                 <ul>
  47.                                         <a href="#"><li>学生信息管理系统</li></a>
  48.                                         <a href="#"><li>帮助与反馈</li></a>
  49.                                         <a href="#"><li>联系我们</li></a>
  50.                                 </ul>
  51.                         </div>
  52.                         <div class="copyright">
  53.                                 &copy; Copyright. All rights reserved. Design by <a href="http://www.github.com/Soarkey/">Soarkey</a>
  54.                         </div>
  55.         </footer>
  56. </body>
  57. </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.        
  12. </head>
  13.        
  14. <body>
  15.         <%
  16.                 //获取登录成功的用户信息
  17.                 User user = (User) session.getAttribute("user");
  18.                 //判断用户是否登录
  19.                 if(user != null){
  20.         %>
  21.         <header>
  22.                 <div class="title">
  23.                         <span>用户操作界面</span>
  24.                 </div>
  25.                 <nav>
  26.                         <div class="userinfo">
  27.                                 <ul>
  28.                                         <li><%=user.getUsername() %></li>
  29.                                         <li><%=user.getLevel() %></li>
  30.                                         <li><a href="UserExitServlet">退出登录</a></li>
  31.                                         <li><a href="login.html">返回首页</a></li>
  32.                                 </ul>
  33.                         </div>
  34.                 </nav>
  35.         </header>
  36.        
  37.         <main>
  38.                 <%
  39.                 }else{
  40.                         response.sendRedirect("login.html");
  41.                 }
  42.                 %>
  43.                 <div class="container">
  44.                         <div class="select">
  45.                                 <h3>请选择操作</h3>
  46.                                 <ul id="accordion" class="accordion">
  47.                                         <li>
  48.                                                 <div class="link"></i>院系信息管理</div>
  49.                                                 <ul class="submenu">
  50.                                                         <li><a onclick="query_all('department')">查看所有院系</a></li>
  51.                                                 </ul>
  52.                                         </li>
  53.                                         <li>
  54.                                                 <div class="link">班级信息管理</div>
  55.                                                 <ul class="submenu">
  56.                                                         <li><a onclick="query_all('class')">查看所有班级</a></li>
  57.                                                 </ul>
  58.                                         </li>
  59.                                         <li>
  60.                                                 <div class="link">学生信息管理</div>
  61.                                                 <ul class="submenu">
  62.                                                         <li><a  onclick="query_all('student')">查看所有学生</a></li>
  63.                                                 </ul>
  64.                                         </li>
  65.                                         <li>
  66.                                                 <div class="link">课程信息管理</div>
  67.                                                 <ul class="submenu">
  68.                                                         <li><a onclick="query_all('course')">查看所有课程</a></li>
  69.                                                         <li><a onclick="course_avg()">查询课程平均分</a></li>
  70.                                                         <li><a onclick="fail_rate()">查询课程不及格率</a></li>
  71.                                                         <li><a onclick="show_course_ranking()">查询课程排名情况</a></li>
  72.                                                 </ul>
  73.                                         </li>
  74.                                         <li>
  75.                                                 <div class="link">学生成绩管理</div>
  76.                                                 <ul class="submenu">
  77.                                                         <li><a  onclick="query_all('sc')">查看全部学生成绩</a></li>
  78.                                                 </ul>
  79.                                         </li>
  80.                                 </ul>
  81.                                 </div>
  82.                                 <div id="result" class="result">
  83.                                         <p class="welcome">欢迎使用学生信息管理系统!</p>
  84.                                 </div>
  85.                         </div>
  86.                 </div>
  87.         </main>
  88.        
  89.         <footer>
  90.                 <div class="copyright">
  91.                         &copy; Copyright. All rights reserved. Design by <a href="http://www.github.com/Soarkey/">Soarkey</a>
  92.                 </div>
  93.         </footer>
  94.         <script src="js/jquery-3.1.1.min.js"></script>
  95.         <script src="js/user.js"></script>
  96. </body>
  97. </html>
复制代码


五、部分实现截图:

1.登录进来后的页面:



2.查询页面:





3.新增页面:




4.删除页面:




5.修改页面:







免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

滴水恩情

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表