基于javaweb的学生信息管理系统(java+servlet+jsp+easyui+mysql)

基于javaweb的学生信息管理系统(java+servlet+jsp+easyui+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

20220819205146

20220819205147

20220819205148

20220819205149

20220819205150

20220819205151

基于javaweb+mysql的学生信息管理系统(java+Servlet+Jsp+easyui+Mysql)

介绍

学生信息管理系统,该项目分为管理员、老师、学生三种角色; 管理员主要功能: 学生信息管理、班级信息管理、教师信息管理、系统管理; 老师主要功能: 学生信息管理、班级信息管理、教师信息管理、系统管理; 学生主要功能: 学生信息管理、系统管理;

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.是否Maven项目: 否;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目  6.数据库:MySql 5.7版本;

技术栈

  1. Servlet+Jsp+easyui

使用说明

  1. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行; 2. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 3. 将项目中DbUtil.java中的数据库配置改为自己的配置 4. 配置tomcat,运行项目,在浏览器中输入localhost:8080/xxx 登录 5.管理员账号:admin 密码:admin 教师账号:王鹤翔老师 密码:111 学生账号:江小雷 密码:1

学生信息管理控制层:

@Controller

@RequestMapping(value=“/student”)

public class StudentController {

@Autowired

private StudentService studentService;

@ResponseBody

@RequestMapping(value=“/list”)

public String getStudentList(@RequestParam(defaultValue=“0”)int curr,

@RequestParam(defaultValue=“20”)int nums,

@RequestParam(defaultValue=“”)String searchKey) {

Pagination page = new Pagination();

page.setTotalItemsCount(studentService.getTotalItemsCount(searchKey));

page.setPageSize(nums);

page.setPageNum(curr);

List list = studentService.getStudentList(page,searchKey);

String jsonStr = StrUtil.RETURN_JONS_PRE_STR

  • page.getTotalItemsCount()

  • StrUtil.RETURN_JONS_MID_STR

  • JSON.toJSONString(list)

  • StrUtil.RETURN_JONS_END_STR;

return jsonStr;

/**

  • 返回选修了我课程的学生列表

  • @return

*/

@ResponseBody

@RequestMapping(value=“/stulist”)

public String getMyStudentList(@RequestParam(defaultValue=“0”)int curr,

@RequestParam(defaultValue=“20”)int nums,

@RequestParam(required=false) Integer cId, HttpSession session) {

Teacher t = (Teacher) session.getAttribute(StrUtil.USER);

Pagination page = new Pagination();

page.setTotalItemsCount(studentService.getTotalItemsCountByTid(t.getId(), cId));

page.setPageSize(nums);

page.setPageNum(curr);

List list = studentService.getStudentListByTid(page, t.getId(), cId);

String jsonStr = StrUtil.RETURN_JONS_PRE_STR

  • page.getTotalItemsCount()

  • StrUtil.RETURN_JONS_MID_STR

  • JSON.toJSONString(list)

  • StrUtil.RETURN_JONS_END_STR;

System.out.println(jsonStr);

return jsonStr;

@RequestMapping(value=“/addPage”)

public ModelAndView toAddPage() {

return new ModelAndView(“/studentAdd”);

/**

  • 增加,或者修改studnet

  • @param opType

  • @param stu

  • @return

*/

@ResponseBody

@RequestMapping(value=“/add”)

public String addStudent(@RequestParam(defaultValue=“2”) int opType, Student stu) {

int res = 0;

if (opType == 0) {

try {

stu.setPassword(stu.getPassword().toUpperCase());

res = studentService.addStudent(stu);

} catch (Exception e) {

System.out.println(“添加失败!学号重复!”);

return “添加失败!学号重复!”;

if (res > 0)

return StrUtil.RESULT_TRUE;

return “添加失败”;

} else if (opType == 1) {

stu.setPassword(null);

res = studentService.updateStudent(stu);

if (res > 0) return StrUtil.RESULT_TRUE;

return “修改失败!”;

return “error”;

/**

  • 重置密码

  • @param stu

  • @return

*/

@ResponseBody

@RequestMapping(value=“/resetPswd”)

public String resetPasswrd(String id) {

Student stu = new Student();

stu.setId(id);

stu.setPassword(MD5Util.MD5(“123456”));

if (studentService.updateStudent(stu) > 0) return StrUtil.RESULT_TRUE;

return “修改失败!”;

@ResponseBody

@RequestMapping(value=“/delete”)

public String deleteStudnet(Student stu) {

if (studentService.deleteStudent(stu) > 0) return StrUtil.RESULT_TRUE;

return “删除失败!”;

/**

  • 批量删除

  • @param stuIds

  • @return

*/

@ResponseBody

@RequestMapping(value=“/deleteList”)

public String deleteStudnetList(String stuIds) {

List list = new ArrayList();

try {

String[] ids = stuIds.split(“,”);

for (String id: ids) {

list.add(id);

if (studentService.deleteStudent(list) > 0) {

return StrUtil.RESULT_TRUE;

} catch (Exception e) {

e.printStackTrace();

return “删除失败!参数出错!”;//

return “删除失败!”;

@ResponseBody

@RequestMapping(“/import”)

public String impotr(HttpServletRequest request, MultipartFile file) {

//获取上传的文件

InputStream in = null;

try {

in = file.getInputStream();

//数据导入

int res = studentService.importExcelInfo(in,file);

if (res > 0) {

return StrUtil.RETURN_JONS_PRE_STR+“0”

+StrUtil.RETURN_JONS_MID_STR+“true”

+StrUtil.RETURN_JONS_END_STR;

} else {

return StrUtil.RETURN_JONS_PRE_STR+“0”

+StrUtil.RETURN_JONS_MID_STR+“false”

+StrUtil.RETURN_JONS_END_STR;

} catch (Exception e) {

e.printStackTrace();

return StrUtil.RETURN_JONS_PRE_STR+“0”

+StrUtil.RETURN_JONS_MID_STR+“error”

+StrUtil.RETURN_JONS_END_STR;

} finally {

if (in != null)

try {

in.close();

} catch (IOException e) {

e.printStackTrace();

@RequestMapping(value=“/courses”)

public ModelAndView toChoiceCoursePage() {

return new ModelAndView(“choiceCourse”);

老师信息管理控制层:

@Controller

@RequestMapping(value=“/teacher”)

public class TeacherController {

@Autowired

private TeacherService teacherService;

@ResponseBody

@RequestMapping(value=“/list”)

public String getTeacherList(@RequestParam(defaultValue=“0”)int curr,@RequestParam(defaultValue=“10”)int nums,

@RequestParam(defaultValue=“”)String searchKey) {

Pagination page = new Pagination();

page.setTotalItemsCount(teacherService.getTotalItemsCount(searchKey));

page.setPageSize(nums);

page.setPageNum(curr);

List list = teacherService.getTeacher(page, searchKey);

String jsonStr = StrUtil.RETURN_JONS_PRE_STR + page.getTotalItemsCount()

  • StrUtil.RETURN_JONS_MID_STR

  • JSON.toJSONString(list) + StrUtil.RETURN_JONS_END_STR;

return jsonStr;

@ResponseBody

@RequestMapping(value=“/listForSelect”)

public String getTeacherListForSelect(@RequestParam(defaultValue=“”) String searchKey) {

List list = teacherService.getTeacherForSelect(searchKey);

String jsonStr = StrUtil.RETURN_JONS_PRE_STR + list.size()

  • StrUtil.RETURN_JONS_MID_STR

  • JSON.toJSONString(list) + StrUtil.RETURN_JONS_END_STR;

return jsonStr;

@RequestMapping(value=“/addPage”)

public ModelAndView toAddPage() {

return new ModelAndView(“/teacherAdd”);

/**

  • 增加,或者修改teacher

  • @param opType

  • @param teacher

  • @return

*/

@ResponseBody

@RequestMapping(value=“/add”)

public String addTeacher(@RequestParam(defaultValue=“2”) int opType, Teacher teacher) {

int res = 0;

if (opType == 0) {

try {

teacher.setPassword(teacher.getPassword().toUpperCase());

res = teacherService.addTeacher(teacher);

} catch (Exception e) {

System.out.println(“添加失败!学号重复!”);

return “添加失败!工号重复!”;

if (res > 0)

return StrUtil.RESULT_TRUE;

return “添加失败”;

} else if (opType == 1) {

teacher.setPassword(null);

res = teacherService.updateTeacher(teacher);

if (res > 0) return StrUtil.RESULT_TRUE;

return “修改失败!”;

return “error”;

/**

  • 重置密码

  • @param id

  • @return

*/

@ResponseBody

@RequestMapping(value=“/resetPswd”)

public String resetPasswrd(String id) {

Teacher teacher = new Teacher();

teacher.setId(id);

teacher.setPassword(MD5Util.MD5(“123456”));

if (teacherService.updateTeacher(teacher) > 0) return StrUtil.RESULT_TRUE;

return “修改失败!”;

@ResponseBody

@RequestMapping(value=“/delete”)

public String deleteStudnet(Teacher t) {

if (teacherService.deleteTeacher(t) > 0) return StrUtil.RESULT_TRUE;

return “删除失败!”;

/**

  • 批量删除

  • @param tIds

  • @return

*/

@ResponseBody

@RequestMapping(value=“/deleteList”)

public String deleteStudnetList(String tIds) {

List list = new ArrayList();

try {

String[] ids = tIds.split(“,”);

for (String id: ids) {

list.add(id);

if (teacherService.deleteTeacher(list) > 0) {

return StrUtil.RESULT_TRUE;

} catch (Exception e) {

e.printStackTrace();

return “删除失败!参数出错!”;//

return “删除失败!”;

@ResponseBody

@RequestMapping(“/import”)

public String impotr(HttpServletRequest request, MultipartFile file) {

//获取上传的文件

InputStream in = null;

try {

in = file.getInputStream();

//数据导入

int res = teacherService.importExcelInfo(in,file);

if (res > 0) {

return StrUtil.RETURN_JONS_PRE_STR+“0”

+StrUtil.RETURN_JONS_MID_STR+“true”

+StrUtil.RETURN_JONS_END_STR;

} else {

return StrUtil.RETURN_JONS_PRE_STR+“0”

+StrUtil.RETURN_JONS_MID_STR+“false”

+StrUtil.RETURN_JONS_END_STR;

} catch (Exception e) {

e.printStackTrace();

return StrUtil.RETURN_JONS_PRE_STR+“0”

+StrUtil.RETURN_JONS_MID_STR+“error”

+StrUtil.RETURN_JONS_END_STR;

} finally {

if (in != null)

try {

in.close();

} catch (IOException e) {

e.printStackTrace();

登录管理控制层:

@Controller

@RequestMapping(value=“/login”)

public class LoginController {

@Autowired

AuthService authService;

@Autowired

AdminService adminServiceImpl;

@Autowired

TeacherService teacherServiceImpl;

@Autowired

StudentService studentServiceImpl;

@RequestMapping(value=“/loginPage”)

public ModelAndView toLoginPage() {

return new ModelAndView(“login”);

@ResponseBody

@RequestMapping(value=“/doLogin”)

public String doLogin(@RequestParam(defaultValue=“”) String username,

@RequestParam(defaultValue=“”) String password,

@RequestParam(defaultValue=“0”) int userType,

@RequestParam(defaultValue=“”) String verifyCode, HttpSession session) {

//比较验证码

String sessionVerifyCode = (String) session.getAttribute(StrUtil.VERIFY_CODE);

if (sessionVerifyCode == null || !sessionVerifyCode.equals(verifyCode.toUpperCase()) ) {

return StrUtil.CODE_ERROR;

Login loginUser = null;

if (userType == 1) {

loginUser = (Login) adminServiceImpl;

} else if(userType == 2) {

loginUser = (Login) teacherServiceImpl;

} else if(userType == 3) {

loginUser = (Login) studentServiceImpl;

User user = loginUser.loginValidate(username, password.toUpperCase());//获得验证后user对象

if (user != null) {

//List menuList = authService.getMenuList(user.getUserType());

List urlList = authService.getUrlList(user.getUserType());

user.setUrlList(urlList);

//user.setMenuList(menuList);

session.setAttribute(StrUtil.USER, user);

return JSON.toJSONString(user);

return StrUtil.RESULT_FALSE;

@RequestMapping(value=“/out”)

public ModelAndView loginOut(HttpSession session) {

session.invalidate();//销毁sessions

//请求重定向到主页(login页)

return new ModelAndView(“redirect:/”);

@RequestMapping(value=“/getVerifyCode”)

public void getVerifyCode(HttpServletResponse response, HttpSession session) {

ByteArrayOutputStream output = new ByteArrayOutputStream();

session.setAttribute(“verifyCode”, drawCodeImg(output));

try {

ServletOutputStream out = response.getOutputStream();

output.writeTo(out);

} catch (IOException e) {

e.printStackTrace();

/**

  • 绘出验证码

  • @param output

  • @return

*/

private String drawCodeImg(ByteArrayOutputStream output) {

String code = “”;

for (int i = 0; i < 4; i++) {

code += randomChar();

int width = 70;

int height = 36;

BufferedImage bImage = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR);

Font font = new Font(“Times New Roman”, Font.PLAIN, 20);

Graphics2D graphics = bImage.createGraphics();

graphics.setFont(font);

graphics.setColor(new Color(66,2,82));

graphics.setBackground(new Color(226,226,240));

graphics.clearRect(0, 0, width, height);

FontRenderContext context = graphics.getFontRenderContext();

Rectangle2D bounds = font.getStringBounds(code, context);

double x = (width - bounds.getWidth()) / 2;

double y = (height - bounds.getHeight()) / 2;

double ascent = bounds.getY();

double baseY = y - ascent;

graphics.drawString(code, (int) x, (int) baseY);

graphics.dispose();

try {

ImageIO.write(bImage, “jpg”, output);

} catch (IOException e) {

e.printStackTrace();

return code;

/**

  • 返回一个随机字符

  • @return

*/

private char randomChar() {

Random r = new Random();

String str = “ABCDEFGHJKLMNPRSTUVWXYZ0123456789”;

return str.charAt(r.nextInt(str.length()));


  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值