老师管理:
添加老师信息
查看老师列表信息:
成绩管理:
学生成绩信息查看
个人中心:
个人中心随意做了一个alert弹窗
部分代码实现:
登录前端:
<%@ page language=“java” import=“java.util.*” pageEncoding=“UTF-8”%>
登录
<input type=“text” name=“ope_name”
id=“ope_name”>
<input type=“password” name=“ope_pwd”
id=“ope_pwd”>
<input
style=“width:60px; float:right; margin-top:10px;margin-right:20px;”
type=“button” value=“登录” οnclick=“login()”>
登录后台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;
《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》
【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享
import entity.Privilege;
public class LoginImpl implements ILogin {
private PrivilegeImpl1 privilegeImpl = new PrivilegeImpl1();
private RoleImpl roleImpl = new RoleImpl();
private List 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 list = new ArrayList();
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 ,