项目背景

学生信息档案的管理对于学校的管理者来说至关重要,学生信息是高等学校非常重要的一项数据资源,是一个教育单位不可缺少一部分。特别是近几年来,国家政策的调整,我国高等院校大规模的扩招,给高等院校的教学管理、学生管理、后勤管理等方面都带来不少的冲击。其包含的数据量大,涉及的人员面广,而且需要及时更新,故较为复杂,难以单纯地依靠人工管理,而且传统的人工管理方式既不易于规范化,管理效率也不高,我国各类高等院校中还有相当一部分学生档案管理还停留在纸介质的基础上,尤其是中、小学对学生档案的管理更是落后,这样的管理机制已经不能适应时代发展的要求,其管理方法将浪费许多人力和物力。随着科学技术的不断提高,计算机科学与技术日渐成熟,计算机应用的普及已进入人类社会生活的各个领域,并发挥着越来越重要的作用。这种传统的手工管理模式必然被以计算机为物质基础的信息管理方法所取代。

功能设计

主要功能:用户不同角色登录(老师、学生、管理员)

系统首页介绍

学生管理:添加学生、查看学生列表信息、查看学生资料

老师管理:添加老师、查看老师列表信息、查看老师资料

成绩管理:查看成绩信息、修改成绩

个人中心:修改个人资料、头像等、注销退出

角色设计

拥有管理员、老师、学生三种角色、每个角色对应不同菜单权限

主要技术

用的技术都是比较基础好学通俗易懂的Java jsp+mysql+servlet+jdbc+jquery+html+css等

具体功能实现

登录:

根据不同账号角色进行登录

首页:

首页主要是利用css等进行简单的布局、左侧是菜单栏、中间是系统介绍、右上角是个人中心和账户信息以及注销。

学生管理:

添加学生

学生列表:

管理员拥有编辑删除权限、老师拥有编辑权限。学生只能查看信息。

老师管理:

添加老师信息

查看老师列表信息:

成绩管理:

学生成绩信息查看

个人中心:

个人中心随意做了一个alert弹窗

部分代码实现:

登录前端:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>学生信息管理系统</title>
<script src="js/jquery-1.8.3.min.js" type="text/javascript"></script>
<script src="js/login.js" type="text/javascript"></script>
<link href="css/style.css" rel="stylesheet" type="text/css">
</head>
<body><center><div class="login"><div class="login_head"><h3>登录</h3></div><div class="login_window"><div><label>账号:</label> <br> <input type="text" name="ope_name"id="ope_name"></div><div><label>密码:</label> <br> <input type="password" name="ope_pwd"id="ope_pwd"></div><inputstyle="width:60px; float:right; margin-top:10px;margin-right:20px;"type="button" value="登录" οnclick="login()"></div></div></center>
</body>
</html>

登录后台servlet:

package impl;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;import util.DB;
import dao.ILogin;
import entity.Operator;
import entity.Privilege;public class LoginImpl implements ILogin {private PrivilegeImpl1 privilegeImpl = new PrivilegeImpl1();private RoleImpl roleImpl = new RoleImpl();private List<Privilege> list_privilege;private PreparedStatement pst;private Operator log_operator;private HttpSession session;private String checkResult;private Connection conn;private ResultSet rs;// 登录验证public String login(HttpServletRequest request, Operator operator) {session = request.getSession();checkResult = "success";log_operator = new Operator();try {conn = DB.getConn();pst = conn.prepareStatement("SELECT * FROM operator WHERE ope_name = ?");pst.setString(1, operator.getName());rs = pst.executeQuery();if (!rs.next()) {checkResult = "账户不存在,请重新输入!";session.setAttribute("isLogin", "false");} else {if (!operator.getPwd().equals(rs.getString(3))) {checkResult = "您输入的密码不正确,请重新输入!";session.setAttribute("isLogin", "false");} else {// 登录成功session.setAttribute("isLogin", "true");// 获得该用户的完整信息log_operator.setId(rs.getInt(1));log_operator.setName(rs.getString(2));log_operator.setPwd(rs.getString(3));log_operator.setRole(roleImpl.query("rol_id",rs.getString(4)).get(0));session.setAttribute("log_operator", log_operator);// 根据用户,获取对应的角色对应的权限list_privilege = privilegeImpl.query("rol_id", log_operator.getRole().getId()+ "");List<Privilege> list = new ArrayList<Privilege>();list.add(list_privilege.get(0));for (int i = 1; i < list_privilege.size(); i++) {int y=0;for(int x=0;x<list.size();x++){if(!list.get(x).getMenu_name().equals(list_privilege.get(i).getMenu_name())){y++;}}if (y==list.size()) {list.add(list_privilege.get(i));}}session.setAttribute("list", list);session.setAttribute("list_privilege", list_privilege);}}} catch (Exception e) {e.printStackTrace();} finally {DB.close(conn, pst, rs);}return checkResult;}
}

链接数据库:

利用最基本的jdbc进行链接

package util;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;public class DB {// 获取数据库连接public static Connection getConn() {Connection conn = null;String url = "jdbc:mysql://localhost:3306/jsp_studentmanager?characterEncoding=utf8";String name = "root";String pwd = "123456";try {Class.forName("com.mysql.jdbc.Driver");conn = DriverManager.getConnection(url, name, pwd);} catch (Exception e) {e.printStackTrace();}return conn;}// 关闭对象 释放资源public static void close(Connection conn, PreparedStatement pst,ResultSet rs) {try {if (rs != null)rs.close();if (pst != null)pst.close();if (conn != null)conn.close();} catch (Exception e) {e.printStackTrace();}}
}

部分表结构:

学生表:

CREATE TABLE `NewTable` (
`stu_id`  int(11) NOT NULL AUTO_INCREMENT ,
`ope_id`  int(11) NULL DEFAULT NULL ,
`stu_no`  varchar(22) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`stu_name`  varchar(22) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`stu_sex`  enum('男','女') CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '男' ,
`stu_birth`  date NULL DEFAULT NULL ,
`stu_pic`  varchar(22) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`cla_id`  int(11) NULL DEFAULT NULL ,
PRIMARY KEY (`stu_id`),
FOREIGN KEY (`cla_id`) REFERENCES `classes` (`cla_id`) ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (`ope_id`) REFERENCES `operator` (`ope_id`) ON DELETE CASCADE ON UPDATE CASCADE,
UNIQUE INDEX `uni_no` (`stu_no`) USING BTREE ,
UNIQUE INDEX `uni_ope` (`ope_id`) USING BTREE ,
INDEX `fk_stu_cla` (`cla_id`) USING BTREE ,
INDEX `fk_stu_ope` (`ope_id`) USING BTREE
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=13
ROW_FORMAT=COMPACT
;CREATE DEFINER=`root`@`localhost` TRIGGER `TG_3` AFTER DELETE ON `NewTable`
FOR EACH ROW BEGIN
DELETE FROM operator WHERE ope_id = old.ope_id;
END;

成绩表:

CREATE TABLE `NewTable` (
`sco_id`  int(11) NOT NULL AUTO_INCREMENT ,
`sco_daily`  float NULL DEFAULT 0 ,
`sco_exam`  float NULL DEFAULT 0 ,
`sco_count`  float NULL DEFAULT 0 ,
`stu_id`  int(11) NULL DEFAULT NULL ,
`sub_id`  int(11) NULL DEFAULT NULL ,
`cla2sub_id`  int(11) NOT NULL ,
`cla_id`  int(11) NOT NULL ,
PRIMARY KEY (`sco_id`),
FOREIGN KEY (`stu_id`) REFERENCES `student` (`stu_id`) ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (`sub_id`) REFERENCES `subject` (`sub_id`) ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (`cla2sub_id`) REFERENCES `cla2sub` (`cla2sub_id`) ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (`cla_id`) REFERENCES `classes` (`cla_id`) ON DELETE CASCADE ON UPDATE CASCADE,
UNIQUE INDEX `uni_stu_sub` (`stu_id`, `sub_id`, `cla2sub_id`) USING BTREE ,
INDEX `fk_sco_sub` (`sub_id`) USING BTREE ,
INDEX `fk_sco_stu` (`stu_id`) USING BTREE ,
INDEX `fk_sco_cla` (`cla2sub_id`) USING BTREE ,
INDEX `cla_id` (`cla_id`) USING BTREE
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=33
ROW_FORMAT=COMPACT
;

班级表:

CREATE TABLE `NewTable` (
`cla_id`  int(11) NOT NULL AUTO_INCREMENT ,
`cla_name`  varchar(22) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`maj_id`  int(11) NULL DEFAULT NULL ,
`cla_tec`  varchar(22) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
PRIMARY KEY (`cla_id`),
FOREIGN KEY (`maj_id`) REFERENCES `major` (`maj_id`) ON DELETE CASCADE ON UPDATE CASCADE,
UNIQUE INDEX `uni_name` (`cla_name`) USING BTREE ,
INDEX `fk_cla_maj` (`maj_id`) USING BTREE
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=8
ROW_FORMAT=COMPACT
;CREATE DEFINER=`root`@`localhost` TRIGGER `TG_7` BEFORE DELETE ON `NewTable`
FOR EACH ROW BEGIN
DELETE FROM operator WHERE ope_id IN (SELECT ope_id FROM student WHERE cla_id = old.cla_id);
END;

好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~

基于java eclipse+jsp+mysql+servlet+Spring的学生信息管理系统基础版相关推荐

  1. IDEA+Java+SSM+JSP+Mysql+Tomcat实现Web药品信息管理系统

    目录 一.系统介绍 1.开发环境 2.技术选型 3.系统功能 4.数据库文件 二.系统展示 1.登录系统 2.管理员-主页 3.管理员-人员信息管理 4.管理员-进药信息管理 5.管理员-售药信息管理 ...

  2. 基于JAVA+SpringMVC+Mybatis+MYSQL的奖助学金贷款信息管理系统

    项目功能: 本系统的主要用户是所有的管理员.普通用户.管理员进入系统可以进行学院管理.专业管理.班级管理.学生管理.奖学金管理.助学金管理.贷款管理 页面效果:

  3. java毕业设计——基于java+Eclipse+jsp的网上手机销售系统设计与实现(毕业论文+程序源码)——网上手机销售系统

    基于java+Eclipse+jsp的网上手机销售系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+Eclipse+jsp的网上手机销售系统设计与实现,文章末尾附有本毕业设计的 ...

  4. 基于SSM的JSP MYSQL汽车租赁系统的汽车出租管理系统-mysqljava汽车出租管理系统租车管理系统

    基于SSM的JSP+MYSQL汽车租赁系统的汽车出租管理系统-mysqljava汽车出租管理系统租车管理系统 "基于SSM的汽车出租管理系统-mysql&java汽车出租管理系统租车 ...

  5. 基于Java毕业设计疫情下的进出口食品安全信息管理系统源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计疫情下的进出口食品安全信息管理系统源码+系统+mysql+lw文档+部署软件 基于Java毕业设计疫情下的进出口食品安全信息管理系统源码+系统+mysql+lw文档+部署软件 本源 ...

  6. 学生管理系统html js,学生信息管理系统JS版(Eclipse).docx

    学生信息管理系统JS版(Eclipse) 学生信息管理系统JSP版(Eclipse) 新建new->Dynamic Web Project->名字为StudentJSP. 准备工作 编写J ...

  7. Java实训项目1:GUI学生信息管理系统 - 实训概述

    文章目录 一.实训概述 1.实训目的 2.实训项目简介 3.项目开发思维导图 4.实训日志模板 5.实训报告模板 6.实训考核标准 一.实训概述 1.实训目的 让学生综合运用J2SE有关知识开发[学生 ...

  8. Java+Servlet+JSP+Mysql+Tomcat实现Web学生选课管理系统

    Java实现Web学生选课管理系统 一.系统介绍 1.软件环境 2.系统功能 3.数据库 二.系统展示 1.登录页面 2.学生-主页面 3.学生-查看个人信息 4.学生-选择课程 5.学生-查看已选课 ...

  9. IDEA+Java+JSP+Mysql+Tomcat实现Web商品信息管理系统

    目录 一.系统介绍 1.开发环境 2.技术选型 3.系统功能 4.数据库文件 5.系统截图 二.系统展示 1.登录系统 2.系统主页 3.增加商品 4.修改商品 三.部分代码 AdminDaoImpl ...

最新文章

  1. 通过XmlDocument读写Xml文档(转)
  2. matlab或_如何利用MATLAB计算圆周率
  3. VTK:PolyData之TransformFilter
  4. dubbo超时重试和异常处理
  5. 【算法分析与设计】顺序存储结构的搜索算法
  6. Ubuntu16.04 pip下载安装tensorflow(GPU版)
  7. 条件查询(where)——MySQL
  8. 人工智能的十大应用方向是哪些?
  9. 电脑找回,怎么找回电脑上删除的文件_怎么找回电脑删除的文件-win7之家
  10. 详解:字符转换函数(大写转小写,小写转大写)
  11. get_post X老师告诉小宁同学HTTP通常使用两种请求方法,你知道是哪两种吗?
  12. word 排版大师1.36版本发布啦。
  13. jq中如何调用vue中的方法
  14. CSP-S 2022游记
  15. java 苹果vcf解析,VCF格式解析 | Public Library of Bioinformatics
  16. css中div的宽度和高度设置指的是什么
  17. unity游戏破解 修改粒子材质
  18. 读手语图像识别论文笔记
  19. 懂得放弃才能收获更多
  20. 【算法设计与分析】排序算法性能分析

热门文章

  1. pandas金融数据处理
  2. js中的的GO和AO
  3. 安卓系统应用程序开发!华为Android面试真题解析,内含福利
  4. 寒風的Cocos2dx之旅之剪刀、石头、布系列专题(1)
  5. python-字典附加题3- 股票查询
  6. 国产数据库40年演变,这3个坎一直跨不过去
  7. 原神服务器维护后抽奖池会更新吗,原神up池抽奖保底会在保留吗
  8. 【easyui】easyui combobox 如何清空已加载的数据?
  9. 计算机技术在测绘专业应用,浅析计算机在现代测绘技术应用.doc
  10. vue element 日期范围选择器限制只能选今天之前的时间,或者只能选今天之后的时间