概述:
这篇文章,作者会记录从0到1去实现一个Java的简单的 学生成绩管理系统
目的是对JSP 的学习内容进行巩固,此文章是随笔笔记,可能会比较混乱。
总结一句话:jsp写页面交互是真的烦!!!
环境搭建:
.java ideal tomcat Mysql 的安装配置
1.Ideal 下载安装配置 https://blog.csdn.net/weixin_44323869/article/details/90546148
注意一些配置,包括字符统一设置为UTF-8
2.Tomcat的下载安装:https://www.cnblogs.com/limn/p/9358657.html
可能会存在一些问题注意,JAVA_HOME的配置 以及统一字符集utf-8
3.MySQL的下载安装配置:https://www.jianshu.com/p/1b0dbbc29501
功能分析:
本系统需要完zhuan成的功能主要部分
1、登录模块:具有不同权限的管理人员可以通过用户名和密码登录系统,进入主界面。
2、学生成绩查询模块:按操作员输入的编号、姓名能以查询一个至多个学生的学生记录,并可打印存档。
3、学生成绩录入模块:录入学生成绩信息,输入完成后,将数据存盘。
4、学生成绩修改模块:对已存档的学生进行日常管理,如修改学生成绩、增加、删除等基本操作。
5、用户管理模块:赋予高级管理者以增加、删除、修改普通管理员的权限。赋予普通管理员修改密码的权限。
6、系统帮助模块:简单介绍本系统各模块的使用方法。
7、退出系统模块:退出系统返回登录界面。
数据库搭建建立:
用户表:
成绩表:
功能实现:
1.查询用户:
req.setCharacterEncoding("UTF-8");
resp.setCharacterEncoding("UTF-8");
PrintWriter out = resp.getWriter();
//设置服务器端以UTF-8编码进行输出
String username = req.getParameter("username");//获得表单数据
String sql ="select * from user where username LIKE ?";
List list = CRUDTemplate.executeQuery(sql, new BeanListHandler<>(User.class), "%"+username+"%");
AppResult> result=new AppResult<>();
if (username.equals("")||list.size() ==0) {
// req.setAttribute("list","");
// req.getRequestDispatcher("usermanage.jsp").forward(req,resp);
//现在很多持久层框架都是把数据库返回的记录转化为JavaBean处理
//此处省略连接数据库查询,得到Student类实例
result.setCode(400);
result.setData(null);
result.setMsg("没有查到该用户");
//使用fastjson将java对象转换为json字符串
String jsonStr = JSON.toJSONString(result);
out.print(jsonStr);
}else {
// req.setAttribute("list",list);
// req.getRequestDispatcher("usermanage.jsp").forward(req,resp);
result.setData(list);
//使用fastjson将java对象转换为json字符串
String jsonStr = JSON.toJSONString(result);
System.out.println(jsonStr);
out.print(jsonStr);
}
2.删除用户:
String username = req.getParameter("id");//获得表单数据
String sql = "delete from user where id=?";
int list = CRUDTemplate.executeUpdate(sql, username);
AppResult result=new AppResult<>();
if (username.equals("")||list == 0) {
// req.setAttribute("list","");
// req.getRequestDispatcher("usermanage.jsp").forward(req,resp);
//现在很多持久层框架都是把数据库返回的记录转化为JavaBean处理
//此处省略连接数据库查询,得到Student类实例
result.setCode(400);
result.setData(0);
result.setMsg("删除失败");
//使用fastjson将java对象转换为json字符串
String jsonStr = JSON.toJSONString(result);
out.print(jsonStr);
} else {
// req.setAttribute("list",list);
// req.getRequestDispatcher("usermanage.jsp").forward(req,resp);
result.setData(Integer.parseInt(username));
//使用fastjson将java对象转换为json字符串
String jsonStr = JSON.toJSONString(result);
System.out.println(jsonStr);
out.print(jsonStr);
}
开发随笔:
1.不要使用servlet里面跳转jsp的传数据方式,使用Ajax执行异步查询并更新数据
2.登录模块直接servlet执行,跳转成功页面的主页面的jsp
3.使用cookie保存登录状态,cookie的存取,需要注意
4.IllegalArgumentException: argument type mismatch
注意数据库,java代码里面的对应的实体类,字段名 类型必须一致 否则报错
5.jq引入
6.boostrap引入
7.jq获取点击的控件id:
$(function(){
$(document).click(function(e) {// 在页面任意位置点击而触发此事件
var v_id =$(e.target).attr('id');
var name =$(e.target).attr('name');
console.log(name+"--当前id:"+v_id);
if (name=='delete'){
deleteUser(v_id);
}
})
});