基于javaweb+mysql的jsp+servlet学生成绩管理系统(管理员、教师、学生)(java+jsp+servlet+javabean+mysql+tomcat)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
管理员:个人信息、课程管理、成绩管理、教师管理、学生管理
教师:个人信息、课程管理、成绩管理、学生信息查看
学生:人个信息管理、成绩查询
管理员
教师
学生
技术框架
JSP Servlet MySQL JDBC Tomcat CSS JavaScript bootstrap jquery
基于javaweb+mysql的JSP+Servlet学生成绩管理系统(管理员、教师、学生)(java+jsp+servlet+javabean+mysql+tomcat)
return dir;
}
// 以下为服务器端判断客户端浏览器类型的方法
private String getBrowser(HttpServletRequest request) {
String UserAgent = request.getHeader("USER-AGENT").toLowerCase();
if (UserAgent != null) {
if (UserAgent.indexOf("msie") >= 0)
return "IE";
if (UserAgent.indexOf("firefox") >= 0)
return "FF";
if (UserAgent.indexOf("safari") >= 0)
return "SF";
}
return null;
}
}
public class ServletaddTeacher extends HttpServlet{
private User user;
private Teacher teacher;
private UserServiceImpl userServiceImpl = new UserServiceImpl();
private TeacherServiceImpl teacherServiceImpl =new TeacherServiceImpl();
private ServletFindAllTea findTea=new ServletFindAllTea();
department);
int rs=teacherServiceImpl.editTea(teacher);
if(rs>0){
request.setAttribute("msg", "修改成功!!");
servletTeacherInfo.doGet(request, response);
}else{
request.setAttribute("msg", "修改失败!!");
request.getRequestDispatcher("teacher/editTeacherInfo.jsp").forward(request, response);
}
}
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
doGet(request,response);
}
}
public class ServletTeaSearchScore extends HttpServlet{
private Score score;
private ScoreServiceImpl scoreServiceImpl=new ScoreServiceImpl();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
int pageNo=1;
int pageCount=1;
String teaName=(String) request.getSession().getAttribute("username");
String pageNoStr=request.getParameter("pageNo");
String pageCountStr=request.getParameter("pageCount");
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
public class ServletLogin extends HttpServlet{
private User user;
private UserServiceImpl userServiceImpl=new UserServiceImpl();
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
String num=request.getParameter("ID");
String pwd=request.getParameter("pwd");
int roleID=Integer.parseInt(request.getParameter("role"));
user=new User(num,pwd,roleID);
User rs=userServiceImpl.login(user);
if(rs.getUserName()!=null){
if(rs.getUserNum().equals(user.getUserNum())){
if(rs.getPassword().equals(user.getPassword())){
if(rs.getRoleID()==user.getRoleID()){
if(rs.getRoleID()==2){
request.getSession().setAttribute("username", rs.getUserName());
request.getSession().setAttribute("usernum", rs.getUserNum());
request.getRequestDispatcher("admin/admin.jsp").forward(request, response);
}else if(rs.getRoleID()==1){
request.getSession().setAttribute("username", rs.getUserName());
request.getSession().setAttribute("usernum", rs.getUserNum());
request.getRequestDispatcher("teacher/teacher.jsp").forward(request, response);
}else if(rs.getRoleID()==0){
request.getSession().setAttribute("username", rs.getUserName());
request.getSession().setAttribute("usernum", rs.getUserNum());
request.getRequestDispatcher("student/student.jsp").forward(request, response);
}
}else{
selectOne.doGet(request, response);
//request.getRequestDispatcher("admin/editCourse.jsp").forward(request, response);
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
public class ServletRegistersStudent extends HttpServlet{
private User user;
private Student student;
private UserServiceImpl userServiceImpl = new UserServiceImpl();
private StudentServiceImpl studentServiceImpl =new StudentServiceImpl();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String stuNum = request.getParameter("stuNum");
String stuName = request.getParameter("stuName");
String pwd = request.getParameter("password");
String stuSex = request.getParameter("stuSex");
public class ServletTeaSearchScore extends HttpServlet{
private Score score;
private ScoreServiceImpl scoreServiceImpl=new ScoreServiceImpl();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
int pageNo=1;
int pageCount=1;
String teaName=(String) request.getSession().getAttribute("username");
String pageNoStr=request.getParameter("pageNo");
String pageCountStr=request.getParameter("pageCount");
if(pageNoStr!=null){
pageNo=Integer.parseInt(pageNoStr);
}
if(pageCountStr!=null){
pageCount=Integer.parseInt(pageCountStr);
}
String stuNum=request.getParameter("stuNum");
String stuName=request.getParameter("stuName");
String stuClass=request.getParameter("stuClass");
score=new Score();
score.setStuNum(stuNum);
score.setStuName(stuName);
score.setStuClass(stuClass);
PageBean list=scoreServiceImpl.selectTeaScore(pageNo, pageCount, teaName,score);
request.setAttribute("list", list);
request.setAttribute("score", score);
request.getRequestDispatcher("teacher/stuTeaScore.jsp").forward(request, response);
}
}
//列出该目录下的所有文件和目录
File files[]=file.listFiles();
//遍历files数组
for(File f:files){
//递归
listFile(f,fileNameMap);
}
}else{
/**
* 处理文件名,上传后的文件是以uuid_文件名的形式去重新命名的,去除文件名的uuid_部分
file.getName().indexOf("_")检索字符串中第一次出现"_"字符的位置,
如果文件名类似于:9349249849-88343-8344_阿_凡_达.avi
那么file.getName().substring(file.getName().indexOf("_")+1)
处理之后就可以得到阿_凡_达.avi部分
*/
String realName=file.getName().substring(file.getName().indexOf("_")+1);
//file.getName()得到的是文件的原始名称,这个名称是唯一的,因此可以作为key,realName是处理过后的名称,有可能会重复
fileNameMap.put(file.getName(), realName);
}
}
}
file.mkdirs();
}
return dir;
}
private String makeFileName(String fileName) {
// 为防止文件覆盖的现象发生,要为上传文件产生一个唯一的文件名
return UUID.randomUUID().toString() + "_" + fileName;
}
}
public class ServletDownloadFile extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
/*request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");*/
//得到要下载的文件名
}
public class ServletEditTeacherInfo extends HttpServlet{
private Teacher teacher;
private TeacherServiceImpl teacherServiceImpl=new TeacherServiceImpl();
private ServletTeacherInfo servletTeacherInfo=new ServletTeacherInfo();
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
String teaNum=request.getParameter("teaNum");
String teaName = request.getParameter("teaName");
String teaSex = request.getParameter("teaSex");
int teaAge = Integer.parseInt(request.getParameter("teaAge"));
String teaCourse = request.getParameter("teaCourse");
String major = request.getParameter("major");
String department = request.getParameter("department");
teacher = new Teacher(teaNum, teaName, teaSex, teaAge, teaCourse, major,
department);
int rs=teacherServiceImpl.editTea(teacher);
if(rs>0){
request.setAttribute("msg", "修改成功!!");
servletTeacherInfo.doGet(request, response);
}else{
request.setAttribute("msg", "修改失败!!");
request.getRequestDispatcher("teacher/editTeacherInfo.jsp").forward(request, response);
}
}
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
int pageNo=1;
int pageCount=1;
String pageNoStr=request.getParameter("pageNo");
String pageCountStr=request.getParameter("pageCount");
if(pageNoStr!=null){
pageNo=Integer.parseInt(pageNoStr);
}
if(pageCountStr!=null){
pageCount=Integer.parseInt(pageCountStr);
}
String stuNum=request.getParameter("stuNum");
String courseName=request.getParameter("cosName");
String stuName=request.getParameter("stuName");
String stuClass=request.getParameter("stuClass");
String major=request.getParameter("major");
/*if(stuNum==""){
stuNum=null;
}
if(courseName==""){
courseName=null;
}
if(stuName==""){
stuName=null;
}
if(stuClass==""){
stuClass=null;
}
if(major==""){
major=null;
}*/
double scoreGrade=0;
score=new Score( stuNum, stuName, stuClass,
courseName, scoreGrade, major);
PageBean rs=scoreServiceImpl.selectStuScore(pageNo, pageCount, score);
request.setAttribute("list", rs);
request.setAttribute("score", score);
request.getRequestDispatcher("admin/selectblurScore.jsp").forward(request, response);
}
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//获取上传文件的目录
String uploadFilePath=this.getServletContext().getRealPath("/WEB-INF/upload");
//存储要下载的文件名
Map<String,String> fileNameMap=new HashMap<String, String>();
/*
* 递归遍历filepath目录下的所有文件和目录,将文件的文件名存储到map集合中
*/
//file既可以代表一个文件也可以代表一个目录
listFile(new File(uploadFilePath),fileNameMap);
//将map集合发送到listFile.jsp页面进行显示
request.setAttribute("fileNameMap", fileNameMap);
request.getRequestDispatcher("admin/fileList.jsp").forward(request, response);
}
private void listFile(File file, Map<String, String> fileNameMap) {
//如果file代表的不是一个文件,而是一个目录
if(!file.isFile()){
//列出该目录下的所有文件和目录
File files[]=file.listFiles();
//遍历files数组
for(File f:files){
//递归
listFile(f,fileNameMap);
}
}else{
/**
* 处理文件名,上传后的文件是以uuid_文件名的形式去重新命名的,去除文件名的uuid_部分
file.getName().indexOf("_")检索字符串中第一次出现"_"字符的位置,
如果文件名类似于:9349249849-88343-8344_阿_凡_达.avi
那么file.getName().substring(file.getName().indexOf("_")+1)
处理之后就可以得到阿_凡_达.avi部分
*/
String realName=file.getName().substring(file.getName().indexOf("_")+1);
//file.getName()得到的是文件的原始名称,这个名称是唯一的,因此可以作为key,realName是处理过后的名称,有可能会重复
fileNameMap.put(file.getName(), realName);
}
}
}
String teaNum=request.getParameter("teaNum");
String teaName = request.getParameter("teaName");
String teaSex = request.getParameter("teaSex");
int teaAge = Integer.parseInt(request.getParameter("teaAge"));
String teaCourse = request.getParameter("teaCourse");
String major = request.getParameter("major");
String department = request.getParameter("department");
teacher = new Teacher(teaNum, teaName, teaSex, teaAge, teaCourse, major,
department);
int rs=teacherServiceImpl.editTea(teacher);
if(rs>0){
request.setAttribute("msg", "修改成功!!");
servletTeacherInfo.doGet(request, response);
}else{
request.setAttribute("msg", "修改失败!!");
request.getRequestDispatcher("teacher/editTeacherInfo.jsp").forward(request, response);
}
}
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
doGet(request,response);
}
}
public class ServletTeaSearchScore extends HttpServlet{
private Score score;
private ScoreServiceImpl scoreServiceImpl=new ScoreServiceImpl();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doPost(req, resp);
}
public class ServletaddStudent extends HttpServlet {
private User user;
private Student student;
private UserServiceImpl userServiceImpl = new UserServiceImpl();
private StudentServiceImpl studentServiceImpl =new StudentServiceImpl();
private ServletFindAllStu findStu=new ServletFindAllStu();
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String stuNum = request.getParameter("stuNum");
String stuName = request.getParameter("stuName");
String pwd = request.getParameter("password");
String stuSex = request.getParameter("stuSex");
int stuAge = Integer.parseInt(request.getParameter("stuAge"));
String stuClass = request.getParameter("stuClass");
String major = request.getParameter("major");
String department = request.getParameter("department");
String phone = request.getParameter("phone");
int roleID = Integer.parseInt(request.getParameter("role"));
user = new User(stuNum, stuName, pwd, phone, roleID);
student = new Student(stuNum, stuName, stuSex, stuAge, stuClass, major,
department);
//验证是否存在该学生
User rs=userServiceImpl.login(user);
if(rs.getUserID()==0){
int rsUser=userServiceImpl.addUser(user);
int rsStu=studentServiceImpl.addStu(student);
if(rsStu>0 && rsUser>0){
request.setAttribute("msg", "添加成功!!");
findStu.doGet(request, response);
/*List list=studentDaoImpl.findAll();
request.setAttribute("list", list);
request.getRequestDispatcher("admin/studentAllInfo.jsp").forward(request, response);*/
}else{
request.setAttribute("msg", "添加失败!!");
request.getRequestDispatcher("admin/addStudent.jsp").forward(request, response);
}
}else{
request.setAttribute("msg", "该学号已存在,请重新录入!!");
request.getRequestDispatcher("admin/addStudent.jsp").forward(request, response);
}
}
public class ServletaddCourse extends HttpServlet{
private Course course;
private ServletFindAllCos servletFindAllCos=new ServletFindAllCos();
private CourseServiceImpl courseServiceImpl=new CourseServiceImpl();
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String courseName = request.getParameter("courseName");
int courseCredit = Integer.parseInt(request.getParameter("courseCredit"));
int courseHours = Integer.parseInt(request.getParameter("courseHours"));
String courseTea = request.getParameter("courseTea");
String coDate = request.getParameter("courseDate");
Date courseDate=null;
try {
courseDate = new SimpleDateFormat("yyyy-MM-dd").parse(request.getParameter("courseDate"));
} catch (ParseException e) {
e.printStackTrace();
}
// System.out.println(courseDate);
course=new Course(courseName,courseCredit,courseHours,courseTea,courseDate);
//new Course( courseName, courseCredit, courseHours,
// courseTea, courseDate);
//验证是否存在该教师课程
Course cos=courseServiceImpl.selectOneCos(course);
}
if(stuName==""){
stuName=null;
}
if(stuClass==""){
stuClass=null;
}
if(major==""){
major=null;
}*/
double scoreGrade=0;
score=new Score( stuNum, stuName, stuClass,
courseName, scoreGrade, major);
PageBean rs=scoreServiceImpl.selectStuScore(pageNo, pageCount, score);
request.setAttribute("list", rs);
request.setAttribute("score", score);
request.getRequestDispatcher("admin/selectblurScore.jsp").forward(request, response);
}
}
public class ServletEditUser extends HttpServlet{
private User user;
private ServletFindAllUser servletFindAllUser=new ServletFindAllUser();
private UserServiceImpl userServiceImpl=new UserServiceImpl();
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
String userNum=request.getParameter("userNum");
String userName=request.getParameter("userName");
String pwd=request.getParameter("password");
String phone=request.getParameter("phone");
int roleID=Integer.parseInt(request.getParameter("roleID"));
request.setAttribute("msg", "修改失败!!");
request.getRequestDispatcher("admin/editStudent.jsp").forward(request, response);
}
}
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
doGet(request,response);
}
}
public class ServletEditTea extends HttpServlet{
private Teacher teacher;
private TeacherServiceImpl teacherServiceImpl=new TeacherServiceImpl();
private ServletFindAllTea findTea=new ServletFindAllTea();
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
String teaNum=request.getParameter("teaNum");
String teaName = request.getParameter("teaName");
String teaSex = request.getParameter("teaSex");
int teaAge = Integer.parseInt(request.getParameter("teaAge"));
String teaCourse = request.getParameter("teaCourse");
String major = request.getParameter("major");
String department = request.getParameter("department");
teacher = new Teacher(teaNum, teaName, teaSex, teaAge, teaCourse, major,
department);
int rs=teacherServiceImpl.editTea(teacher);
if(rs>0){
request.setAttribute("msg", "修改成功!!");
findTea.doGet(request, response);
}else{
request.setAttribute("msg", "修改失败!!");
request.getRequestDispatcher("admin/editTeacher.jsp").forward(request, response);
// 消息提醒
String message = "";
try {
// 使用Apache文件上传组件处理文件上传步骤
// 1、创建一个DiskFileItemFactory工厂
DiskFileItemFactory factory = new DiskFileItemFactory();
// 设置工厂的缓冲区的大小,当上传的文件大小超过缓冲区的大小时,就会生成一个临时文件存放到指定的临时目录当中。
factory.setSizeThreshold(1024 * 100); // 设置缓冲区的大小为100KB,如果不指定,那么缓冲区的大小默认是10KB
// 设置上传时的临时保存目录
factory.setRepository(tempFile);
// 2,创建一个文件上传解析器
ServletFileUpload upLoad = new ServletFileUpload(factory);
// 解决上传文件中文乱码
upLoad.setHeaderEncoding("utf-8");
// 3、判断提交上来的数据是否是上传表单的数据
if (!ServletFileUpload.isMultipartContent(request)) {
// 按照传统方式获取数据
return;
}
// 设置上传单个文件的大小的最大值,目前是设置为1024*1024字节,也就是1MB
upLoad.setFileSizeMax(1024 * 1024);
// 设置上传文件总量的最大值,最大值=同时上传的多个文件的大小的最大值的和,目前设置为10MB
upLoad.setSizeMax(1024 * 1024 * 10);
// 4、使用ServletFileUpload解析器解析上传数据,解析结果返回的是一个List<FileItem>集合,
// 每一个FileItem对应一个Form表单的输入项
List<FileItem> list = upLoad.parseRequest(request);
// List<FileItem> list=upLoad.parseRequest(request);
// 如果fileitem中封装的是普通输入项的数据
for (FileItem item : list) {
if (item.isFormField()) {
String name = item.getFieldName();
/*// 解决普通输入项的数据中文乱码
String value = item.getString("utf-8");
System.out.println(name + "=" + value);*/
}
}
}
public class ServletaddCourse extends HttpServlet{
private Course course;
private ServletFindAllCos servletFindAllCos=new ServletFindAllCos();
private CourseServiceImpl courseServiceImpl=new CourseServiceImpl();
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String courseName = request.getParameter("courseName");
int courseCredit = Integer.parseInt(request.getParameter("courseCredit"));
int courseHours = Integer.parseInt(request.getParameter("courseHours"));
String courseTea = request.getParameter("courseTea");
String coDate = request.getParameter("courseDate");
Date courseDate=null;
try {
courseDate = new SimpleDateFormat("yyyy-MM-dd").parse(request.getParameter("courseDate"));
} catch (ParseException e) {
e.printStackTrace();
//得到要下载的文件
File file=new File(path+"\\"+fileName);
//如果文件不存在
if(!file.exists()){
request.setAttribute("message", "文件不存在!!!");
request.getRequestDispatcher("admin/fileLoadFail.jsp").forward(request, response);
return ;
}
/*
String realname = fileName.substring(fileName.indexOf("_")+1);
//设置响应头,控制浏览器下载该文件
response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(realname, "UTF-8"));
*/
//处理文件名
String realName=fileName.substring(fileName.indexOf("_")+1);
if ("FF".equals(getBrowser(request))) {
// 针对火狐浏览器处理方式不一样了
realName = new String(realName.getBytes("UTF-8"),
"iso-8859-1") ;
}
else{
realName=URLEncoder.encode(realName, "utf-8");
}
//设置响应头,控制浏览器下载该文件
response.setHeader("content-disposition", "attachment;fileName="+realName);
//读取要下载的文件,保存到文件输入流
FileInputStream fis=new FileInputStream(path+"\\"+fileName);
//创建输出流
OutputStream os=response.getOutputStream();
//创建缓冲区
byte buffer[]=new byte[1024];
int len=0;
//循环将输入流中的内容读取到缓冲区当中
while((len=fis.read(buffer))>0){
os.write(buffer, 0, len);
}
fis.close();