利用springboot+mybatis+jsp搭建一个简单作业管理系统
1.功能展示
登录

选择身份

注册

以teacher1身份登录,进入教师主页可以进行 布置作业,检查作业,登出

布置作业

检查作业 可以查看该教师布置的作业和学生提交情况

学生端主页 可以查看所有老师布置的作业和自己已经提交的作业

点击check按钮 可以查看和提交该作业

提交后 可以看到自身提交情况

在学生主页点击edit可以查看和编辑自己的作业

2.环境配置
直接采用spring.io初始化springboot项目

选择需要添加的依赖 主要包含spring Web Mybatis Framework 和Mysql driver

目录结构如下

在pom.xml中添加对jsp的依赖
<dependency>
       <groupId>org.apache.tomcat.embed</groupId>
       <artifactId>tomcat-embed-jasper</artifactId>
</dependency>
将application.properties重命名为application.yml 并进行配置
server:
  port: 80
  servlet:
    jsp:
      init-parameters:
        # jsp热部署
        development: true
spring:
  mvc:
    view:
      //jsp前缀和后缀
      prefix: /WEB-INF/
      suffix: .jsp
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/school?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT
    username: root
    password: 123456
mybatis:
  mapper-locations: classpath: mapper/*.xml
  type-aliases-package: com.javaee.homework_system.model
  configuration:
    #数据库读取自动实现驼峰和下划线转换
    map-underscore-to-camel-case: true
3.数据库配置
/*
 Navicat Premium Data Transfer
 Source Server         : mysql
 Source Server Type    : MySQL
 Source Server Version : 80019
 Source Host           : localhost:3306
 Source Schema         : school
 Target Server Type    : MySQL
 Target Server Version : 80019
 File Encoding         : 65001
 Date: 18/06/2020 18:23:09
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for homework
-- ----------------------------
DROP TABLE IF EXISTS `homework`;
CREATE TABLE `homework`  (
  `homework_id` int(0) NOT NULL AUTO_INCREMENT,
  `teacher_name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `homework_title` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
  `homework_content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `create_time` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  PRIMARY KEY (`homework_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of homework
-- ----------------------------
INSERT INTO `homework` VALUES (1, 'teacher1', 'javaee', 'spring', '2020-03-11 15:28:26');
INSERT INTO `homework` VALUES (2, 'teacher2', 'javaff', 'boot', '2020-06-17 15:02:11');
INSERT INTO `homework` VALUES (3, 'teacher1', 'javagg', 'write', '2020-06-18 8:02:11');
INSERT INTO `homework` VALUES (4, 'teacher1', 'mybatis', 'play everyday', '2020-06-18 12:49:19');
INSERT INTO `homework` VALUES (5, 'teacher2', 'docker', 'docker', '2020-06-18 12:50:35');
-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student`  (
  `student_id` int(0) NOT NULL AUTO_INCREMENT,
  `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `student_name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  PRIMARY KEY (`student_id`) USING BTREE,
  UNIQUE INDEX `student_name`(`student_name`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 17301025 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES (1, '1', '1');
INSERT INTO `student` VALUES (2, '1', 'zhangsan');
INSERT INTO `student` VALUES (3, '1', 'abc');
INSERT INTO `student` VALUES (17301023, '1', 'zcx');
INSERT INTO `student` VALUES (17301025, '1', 'aaaa');
-- ----------------------------
-- Table structure for submit_homework
-- ----------------------------
DROP TABLE IF EXISTS `submit_homework`;
CREATE TABLE `submit_homework`  (
  `submitHomework_id` int(0) NOT NULL AUTO_INCREMENT,
  `homework_id` int(0) NULL DEFAULT NULL,
  `homework_title` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `student_name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `submit_content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `submit_time` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  PRIMARY KEY (`submitHomework_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of submit_homework
-- ----------------------------
INSERT INTO `submit_homework` VALUES (1, 5, 'docker', 'zcx', 'zcx\'s homework', '2020-06-18 18:21:39');
-- ----------------------------
-- Table structure for teacher
-- ----------------------------
DROP TABLE IF EXISTS `teacher`;
CREATE TABLE `teacher`  (
  `teacher_id` int(0) NOT NULL,
  `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `teacher_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  PRIMARY KEY (`teacher_id`) USING BTREE,
  UNIQUE INDEX `teacher_name`(`teacher_name`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of teacher
-- ----------------------------
INSERT INTO `teacher` VALUES (1, '1', 'teacher1');
INSERT INTO `teacher` VALUES (2, '1', 'teacher2');
SET FOREIGN_KEY_CHECKS = 1;
4.实体类构建

@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class Homework {
    private int homeworkId;
    private String teacherName;
    private String homeworkTitle;
    private String homeworkContent;
    private String createTime;
}
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class Student {
    private int studentId;
    private String password;
    private String studentName;
}
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
public class SubmitHomework {
    private int submitHomeworkId;
    private int homeworkId;
    private String homeworkTitle;
    private String studentName;
    private String submitContent;
    private String submitTime;
}
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
public class Teacher {
    private int teacherId;
    private String password;
    private String teacherName;
    public Teacher(String teacherName,String password){
        this.password=password;
        this.teacherName=teacherName;
    }
}
5.控制层实现
UserController:接收并处理用户的登陆注册功能
@Controller
public class UserController {
    @Autowired
    private UserService userService;
    @RequestMapping("/")
    public String hello(){
        return "redirect:/login";
    }
    @GetMapping("/login")
    public String login(){
        return "login";
    }
    @PostMapping("/login")
    public String createLogin(String username, String password, int usertype, HttpSession session){
        session.removeAttribute("message");
        session.removeAttribute("teacher");
        session.removeAttribute("student");
        return userService.login(username,password,usertype,session);
    }
    @GetMapping("/register")
    public String register(){
        return "register";
    }
    @PostMapping("/register")
    public String createRegister(Integer userid,String username,String password,int usertype,HttpSession session){
        return userService.register(userid,username,password,usertype,session);
    }
}
TeacherController:接收并处理教师端的功能
@Controller
@RequestMapping("teacher")
public class TeacherController {
    @Autowired
    private TeacherService teacherService;
    @RequestMapping()
    public String teacher(){
        return "teacher";
    }
    @GetMapping("/reviewHomework")
    public String findAll(Model model,HttpSession session){
        Teacher teacher = (Teacher) session.getAttribute("teacher");
        List<SubmitHomework> lsh = teacherService.findAll(teacher);
        List<Homework> lh = teacherService.findAll2(teacher);
        model.addAttribute("lh",lh);
        model.addAttribute("lsh",lsh);
        return "reviewHomework";
    }
    @GetMapping("/setHomework")
    public String setHomework(){
        return "setHomework";
    }
    @PostMapping("/setHomework")
    public String createSetHomework(String title,String content,HttpSession session){
        Teacher teacher = (Teacher) session.getAttribute("teacher");
        return teacherService.createSetHomework(teacher.getTeacherName(),title,content);
    }
}
StudentController:接收并处理学生端功能
@Controller
@RequestMapping("student")
public class StudentController {
    @Autowired
    private StudentService studentService;
    @RequestMapping()
    public String student(Model model, HttpSession session){
        Student student = (Student) session.getAttribute("student");
        List<SubmitHomework> lsh = studentService.findAll(student);
        List<Homework> lh = studentService.listHomework();
        model.addAttribute("lsh",lsh);
        model.addAttribute("lh",lh);
        return "student";
    }
    @GetMapping("/editHomework/{id}")
    public String getHomework(@PathVariable Integer id,Model model,HttpSession session){
        Student student= (Student) session.getAttribute("student");
        Homework homework=studentService.getHomework(id);
        SubmitHomework submitHomework = studentService.getSubmitHomework(id,student.getStudentName());
        if (submitHomework!=null){
            model.addAttribute("content",submitHomework.getSubmitContent());
        }
        model.addAttribute("homework",homework);
        return "editHomework";
    }
    @PostMapping("/editHomework/{id}")
    public String editHomework(@PathVariable Integer id,HttpSession session,String content){
        Student student= (Student) session.getAttribute("student");
        SubmitHomework submitHomework = studentService.getSubmitHomework(id,student.getStudentName());
        if (submitHomework!=null){
        studentService.editHomework(id,student,content,session);
        }else {
            studentService.createSubmit(id, student, content, session);
        }
        return "redirect:/student/";
    }
}
6.服务层实现
为用户、老师、学生创建service接口,用于注入

public interface StudentService {
    //查询该学生所交的作业
    List<SubmitHomework> findAll(Student student);
    //查询老师布置的作业
    List<Homework> listHomework();
    //查看作业
    Homework getHomework(Integer id);
    //修改作业
    void editHomework(Integer id, Student student, String homeworkContent, HttpSession session);
    //获取提交的作业
    SubmitHomework getSubmitHomework(Integer id,String studentName);
    //创建提交
    void createSubmit(Integer id, Student student, String homeworkContent, HttpSession session);
}
public interface TeacherService {
    //查询学生作业
    List<SubmitHomework> findAll(Teacher teacher);
    //查询所有布置的作业
    List<Homework> findAll2(Teacher teacher);
    //布置作业
    String createSetHomework(String teacherName,String homeworkTitle, String homeworkContent);
}
public interface UserService {
    String login(String username, String password, int usertype, HttpSession session);
    String register(int userId, String username, String password, int usertype,HttpSession session);
}
UserServiceImpl:用户服务的实现类,对用户类型进行判断和功能转发,在session中加入该用户的业务实体
@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserDAO userDAO;
    public String login(String username, String password, int usertype, HttpSession session) {
        if (usertype==1){
            Student student= userDAO.findStudent(username,password);
            if (student!=null){
                session.setAttribute("student",student);
                return "redirect:/student/";
            }
        } else {
            Teacher teacher = userDAO.findTeacher(username, password);
            if (teacher!=null){
                session.setAttribute("teacher",teacher);
                return "redirect:/teacher/";
            }
        }
            return "redirect:/";
    }
    public String  register(int userid,String username, String password, int usertype,HttpSession session) {
            if (usertype==1) {
                userDAO.addStudent(new Student(userid,password,username));
            }else {
                userDAO.addTeacher(new Teacher(userid, password, username));
            }
            session.setAttribute("message","Register success");
        return "redirect:/";
    }
}
TeacherServiceImpl:教师服务的实现类,主要实现了遍历自己布置的作业,遍历学生作业和创建作业
@Service
public class TeacherServiceImpl implements TeacherService {
    @Autowired
    private TeacherDAO teacherDAO;
    @Override
    public List<SubmitHomework> findAll(Teacher teacher) {
        return teacherDAO.findAll(teacher);
    }
    @Override
    public List<Homework> findAll2(Teacher teacher) {
        return teacherDAO.findAll2(teacher);
    }
    @Override
    public String createSetHomework(String teacherName,String homeworkTitle, String homeworkContent) {
       Date now = new Date();
       SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
       String date=sdf.format(now);
       Homework homework = new Homework();
       homework.setTeacherName(teacherName).setHomeworkTitle(homeworkTitle).setCreateTime(date).setHomeworkContent(homeworkContent);
       teacherDAO.setHomework(homework);
       return "redirect:/teacher/";
    }
}
StudentServiceImpl :学生服务的实现类,实现了遍历作业,遍历自己提交的作业,编辑作业和创建作业
@Service
public class StudentServiceImpl implements StudentService {
    @Autowired
    private StudentDAO studentDAO;
    public List<SubmitHomework> findAll(Student student) {
        return studentDAO.findAll(student);
    }
    public List<Homework> listHomework() {
        return studentDAO.listHomework();
    }
    @Override
    public Homework getHomework(Integer id) {
        return studentDAO.getHomework(id);
    }
    @Override
    public void editHomework(Integer id, Student student, String homeworkContent, HttpSession session) {
        Homework homework=studentDAO.getHomework(id);
        SubmitHomework submitHomework=studentDAO.getSubmitHomework(id,student.getStudentName());
        Date now = new Date();
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String date=sdf.format(now);
        submitHomework.setSubmitContent(homeworkContent).setSubmitTime(date);
        studentDAO.editHomework(submitHomework);
        session.setAttribute("message","edit success");
    }
    @Override
    public SubmitHomework getSubmitHomework(Integer id, String studentName) {
        return studentDAO.getSubmitHomework(id,studentName);
    }
    @Override
    public void createSubmit(Integer id, Student student, String homeworkContent, HttpSession session) {
        Homework homework=studentDAO.getHomework(id);
        SubmitHomework submitHomework = new SubmitHomework();
        Date now = new Date();
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String date=sdf.format(now);
        submitHomework.setSubmitContent(homeworkContent).setSubmitTime(date).setHomeworkId(homework.getHomeworkId()).setHomeworkTitle(homework.getHomeworkTitle()).setStudentName(student.getStudentName()).setSubmitTime(date);
        studentDAO.createSubmit(submitHomework);
        session.setAttribute("message","submit success");
    }
}
7.DAO层实现
都设计为mybatis的接口,在mapper中具体实现数据库的增删改查操作

@Repository
public interface StudentDAO {
    //查询所有作业
    List<SubmitHomework> findAll(Student student);
    //查看老师布置的作业
    List<Homework> listHomework();
    //获取作业
    Homework getHomework(Integer id);
    //修改提交作业
    void editHomework(SubmitHomework submitHomework);
    //查询提交作业
    SubmitHomework getSubmitHomework(@Param("id") Integer id,@Param("studentName")String studentName);
    //提交作业
    void createSubmit(SubmitHomework submitHomework);
}
@Repository
public interface TeacherDAO {
    //查询所有学生作业
    List<SubmitHomework> findAll(Teacher teacher);
    //查询所有布置的作业
    List<Homework> findAll2(Teacher teacher);
    //布置作业
    void setHomework(Homework homework);
}
@Repository
public interface UserDAO {
    //获取学生对象
    Student findStudent(String username, String password);
    //获取教师对象
    Teacher findTeacher(String username, String password);
    //添加学生
    void addStudent(Student student);
    //添加老师
    void addTeacher(Teacher teacher);
}
8.Mapper实现dao层功能
采用了xml的形式

Student.xml
<mapper namespace="com.javaee.homework_system.dao.StudentDAO">
    <select id="findAll" parameterType="com.javaee.homework_system.model.Student"
            resultType="com.javaee.homework_system.model.SubmitHomework">
        select * from submit_homework
        where student_name=#{studentName}
    </select>
    <select id="listHomework" resultType="com.javaee.homework_system.model.Homework">
        select * from homework
    </select>
    <select id="getHomework" parameterType="java.lang.Integer" resultType="com.javaee.homework_system.model.Homework">
        select * from homework
        where homework_id=#{id}
    </select>
    <select id="getSubmitHomework" resultType="com.javaee.homework_system.model.SubmitHomework">
        select * from submit_homework
        where homework_id = #{id}
        and student_name=#{studentName}
    </select>
    <update id="editHomework" parameterType="com.javaee.homework_system.model.SubmitHomework">
        update submit_homework set submit_content=#{submitContent},submit_time=#{submitTime}
        where submit_homework.homework_title=#{homeworkTitle}
        and submit_homework.homework_id=#{homeworkId}
        and submit_homework.student_name=#{studentName}
    </update>
    <insert id="createSubmit" parameterType="com.javaee.homework_system.model.SubmitHomework">
        insert into submit_homework(homework_id,homework_title,student_name,submit_content,submit_time)
        values (#{homeworkId},#{homeworkTitle},#{studentName},#{submitContent},#{submitTime})
    </insert>
</mapper>
Teacher.xml
<mapper namespace="com.javaee.homework_system.dao.TeacherDAO">
    <select id="findAll" parameterType="com.javaee.homework_system.model.Teacher" resultType="com.javaee.homework_system.model.SubmitHomework">
        select * from submit_homework,homework
        where submit_homework.homework_title = homework.homework_title
        and homework.teacher_name=#{teacherName}
    </select>
    <select id="findAll2" parameterType="com.javaee.homework_system.model.Teacher" resultType="com.javaee.homework_system.model.Homework">
        select * from homework
        where homework.teacher_name=#{teacherName}
    </select>
    <insert id="setHomework" parameterType="com.javaee.homework_system.model.Homework">
        insert into homework(teacher_name,homework_title,homework_content,create_time)
        values(#{teacherName},#{homeworkTitle},#{homeworkContent},#{createTime})
    </insert>
</mapper>
User.xml
<mapper namespace="com.javaee.homework_system.dao.UserDAO">
    <select id="findStudent" resultType="com.javaee.homework_system.model.Student">
            select * from student where student_name=#{username} and password=#{password}
    </select>
    <select id="findTeacher" resultType="com.javaee.homework_system.model.Teacher">
            select * from teacher where teacher_name=#{username} and password=#{password}
    </select>
    <insert id="addStudent" parameterType="com.javaee.homework_system.model.Student">
            insert into student values(#{studentId},#{password},#{studentName})
    </insert>
    <insert id="addTeacher" parameterType="com.javaee.homework_system.model.Teacher">
            insert into teacher values(#{teacherId},#{password},#{teacherName})
    </insert>
</mapper>
9.前端JSP页面编写
login.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Login</title>
    <link rel="stylesheet" type="text/css" href="/css/style.css" />
</head>
<body>
<div class="choose">
    <h1>Homework System</h1>
    <h3><%if(session.getAttribute("message")!=null){
    %>
        <%=session.getAttribute("message")%>
    <%}%>
   </h3>
    <form action="${pageContext.request.contextPath}/login" method="post" >
        <table align="center" style="margin-bottom: 5px">
            <tr>
                <td>username</td>
                <td><input type="text" class="default-input" name="username" placeholder="Username" required></td>
            </tr>
                <td>password</td>
                <td><input type="password" class="default-input" name="password" placeholder="Password" required></td>
        </table>
        <select name="usertype" class="type">
            <option value=1>I'm a student</option>
            <option value=2>I'm a teacher</option>
        </select>
        <br>
    <button type="submit">Login</button>
    <button type="button" onclick="location.href='${pageContext.request.contextPath}/register'">Register</button>
    </form>
</div>
</body>
</html>
register.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <link rel="stylesheet" type="text/css" href="/css/style.css" />
    <title>Register</title>
</head>
<body>
<div class="choose">
<h1>Register</h1>
<form action="${pageContext.request.contextPath}/register" method="post">
    <table align="center" style="margin-bottom: 10px">
        <tr>
            <td>userId:</td>
            <td><input type="text" onkeyup="this.value=this.value.replace(/\D/g, '')" class="default-input" name=userid autofocus="autofocus" required></td>
        </tr>
        <tr>
            <td>username:</td>
            <td><input type="text" class="default-input" name=username required></td>
        </tr>
        <tr>
            <td>password:</td>
            <td><input type="text" class="default-input" name=password required></td>
        </tr>
        <tr>
            <select name="usertype" class="type">
                <option value="1">I'm a student</option>
                <option value="2">I'm a teacher</option>
            </select>
        </tr>
    </table>
    <button type="submit">Register</button>
    <button type="reset" >Reset</button>
</form>
</div>
</body>
</html>
teacher.jsp
<%@ page import="com.javaee.homework_system.model.Teacher" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>teacher</title>
    <link rel="stylesheet" type="text/css" href="/css/style.css">
</head>
<body>
<div class="choose">
    <%Teacher teacher=(Teacher)session.getAttribute("teacher");%>
    <h1>Hello <%=teacher.getTeacherName()%><br></h1>
    <h1>homework system</h1>
        <button type="button" style="height: 60px" onclick="location.href='${pageContext.request.contextPath}/teacher/setHomework'">
        set homework
        </button>
    <button type="button" style="height: 60px" onclick="location.href='${pageContext.request.contextPath}/teacher/reviewHomework'">
        review homework
    </button>
    <button type="button" style="margin-top: 30px; height: 60px" onclick="location.href='${pageContext.request.contextPath}/login'">Logout</button>
</div>
</body>
</html>
setHomework.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>SetHomework</title>
    <link rel="stylesheet" type="text/css" href="/css/style.css">
</head>
<body>
<div class="choose" align="center" style="width:500px">
    <h1>Set Homework</h1>
    <form action="${pageContext.request.contextPath}/teacher/setHomework" method="post">
        <table align="center" style="margin-bottom: 20px">
            <tr>
                <td >homeworkTitle:</td>
                <td><input class="default-input" type="text" name="title" required></td>
            </tr>
            <tr>
                <td >homeworkDescription:</td>
                <td><textarea cols="50" rows="10" name="content" required></textarea></td>
            </tr>
        </table>
        <button type="submit">Publish</button>
        <button type="reset">Reset</button>
    </form>
</div>
</body>
</html>
reviewHomework.jsp
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ page import="com.javaee.homework_system.model.SubmitHomework" %>
<%@ page import="java.util.List" %>
<%@ page import="com.javaee.homework_system.model.Homework" %>
<%@ page import="com.javaee.homework_system.model.Teacher" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>ReviewHomework</title>
    <link rel="stylesheet" type="text/css" href="/css/style.css" />
</head>
<body>
<div class="choose" style="width: 1000px">
    <%Teacher teacher=(Teacher)session.getAttribute("teacher");%>
    <h1><%=teacher.getTeacherName()%> set</h1>
    <table align="center" width="960" cellpadding="1" cellspacing="1">
        <tr align="center"  height="50">
            <td>homeworkId</td>
            <td>homeworkTitle</td>
            <td>describe</td>
            <td>createTime</td>
        </tr>
        <%List<Homework> lh = (List<Homework>) request.getAttribute("lh");
            if (null == lh || lh.size() <= 0) {
                out.print("None data.");
            } else {
                for (Homework h : lh) {
        %>
        <tr align="center" bgcolor="white" height="30">
            <td><%=h.getHomeworkId()%>
            </td>
            <td><%=h.getHomeworkTitle()%>
            </td>
            <td><%=h.getHomeworkContent()%>
            </td>
            <td><%=h.getCreateTime()%>
            </td>
        </tr>
        <%
                }
            }
        %>
    </table>
</div>
<div class="choose" style="width: 1000px">
    <h1>Review</h1>
<table align="center" width="960" cellpadding="1" cellspacing="1">
    <tr align="center"  height="50">
        <td>homeworkId</td>
        <td>homeworkTitle</td>
        <td>studentName</td>
        <td>submitContent</td>
        <td>submitTime</td>
    </tr>
    <%
        List<SubmitHomework> list = (List<SubmitHomework>) request.getAttribute("lsh");
        if (null == list || list.size() <= 0) {
            out.print("None data.");
        } else {
            for (SubmitHomework h : list) {
    %>
    <tr align="center" bgcolor="white" height="30">
        <td><%=h.getHomeworkId()%>
        </td>
        <td><%=h.getHomeworkTitle()%>
        </td>
        <td><%=h.getStudentName()%>
        </td>
        <td><%=h.getSubmitContent()%>
        </td>
        <td><%=h.getSubmitTime()%>
        </td>
    </tr>
    <%
            }
        }
    %>
</table>
    <br>
    <button type="button" onclick="location.href='${pageContext.request.contextPath}/teacher/'">Go back</button>
</div>
</body>
</html>
student.jsp
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ page import="com.javaee.homework_system.model.SubmitHomework" %>
<%@ page import="java.util.List" %>
<%@ page import="com.javaee.homework_system.model.Homework" %>
<%@ page import="com.javaee.homework_system.model.Student" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Homework</title>
    <link rel="stylesheet" type="text/css" href="/css/style.css" />
</head>
<body>
<div class="choose" style="width: 1000px">
    <%Student student=(Student)session.getAttribute("student");%>
    <h1>Hello <%=student.getStudentName()%><br> Teahcer's homework</h1>
    <table align="center" width="960" cellpadding="1" cellspacing="1">
        <tr align="center"  height="50">
            <td>homeworkId</td>
            <td>teacherName</td>
            <td>homeworkTitle</td>
            <td>describe</td>
            <td>createTime</td>
            <td>operation</td>
        </tr>
        <%List<Homework> lh = (List<Homework>) request.getAttribute("lh");
            if (null == lh || lh.size() <= 0) {
                out.print("None data.");
            } else {
                for (Homework h : lh) {
        %>
        <tr align="center" bgcolor="white" height="30">
            <td><%=h.getHomeworkId()%>
            </td>
            <td><%=h.getTeacherName()%>
            </td>
            <td><%=h.getHomeworkTitle()%>
            </td>
            <td><%=h.getHomeworkContent()%>
            </td>
            <td><%=h.getCreateTime()%>
            </td>
            <td>
               <button style="height: 45px"onclick="location.href='${pageContext.request.contextPath}/student/editHomework/<%=h.getHomeworkId()%>'">check</button>
            </td>
        </tr>
        <%
                }
            }
        %>
    </table>
</div>
<div class="choose" style="width: 1000px">
    <h1>My Submit</h1>
    <h1 style="color: crimson;font-size: 35px"><%if(session.getAttribute("message")!=null){
    %>
        <%=session.getAttribute("message")%>
        <%}%>
    </h1>
    <table align="center" width="960" cellpadding="1" cellspacing="1">
        <tr align="center"  height="50">
            <td>homeworkId</td>
            <td>homeworkTitle</td>
            <td>submitContent</td>
            <td>submitTime</td>
            <td>operation</td>
        </tr>
        <%
            List<SubmitHomework> list = (List<SubmitHomework>) request.getAttribute("lsh");
            if (null == list || list.size() <= 0) {
                out.print("None data.");
            } else {
                for (SubmitHomework h : list) {
        %>
        <tr align="center" bgcolor="white" height="30">
            <td><%=h.getHomeworkId()%>
            </td>
            <td><%=h.getHomeworkTitle()%>
            </td>
            <td><%=h.getSubmitContent()%>
            </td>
            <td><%=h.getSubmitTime()%>
            </td>
            <td>
                <button style="height: 45px"onclick="location.href='${pageContext.request.contextPath}/student/editHomework/<%=h.getHomeworkId()%>'">edit</button>
            </td>
        </tr>
        <%
                }
            }
        %>
    </table>
    <br>
    <button type="button"  onclick="location.href='${pageContext.request.contextPath}/login/'">Logout</button>
</div>
</body>
</html>
editHomework.jsp
<%@ page import="com.javaee.homework_system.model.Homework" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>EditHomework</title>
    <link rel="stylesheet" type="text/css" href="/css/style.css">
</head>
<body>
<div class="choose" align="center" style="width:1000px">
    <h1>Edit Homework</h1>
    <table align="center" width="960" cellpadding="1" cellspacing="1">
        <tr align="center"  height="50">
            <td>homeworkId</td>
            <td>homeworkTitle</td>
            <td>teacherName</td>
            <td>describe</td>
            <td>createTime</td>
        </tr>
        <%
            Homework h = (Homework) request.getAttribute("homework");
            if (null == h) {
                out.print("None data.");
            } else {
        %>
        <tr align="center" bgcolor="white" height="30">
            <td><%=h.getHomeworkId()%>
            </td>
            <td><%=h.getHomeworkTitle()%>
            </td>
            <td><%=h.getTeacherName()%>
            </td>
            <td><%=h.getHomeworkContent()%>
            </td>
            <td><%=h.getCreateTime()%>
            </td>
        </tr>
        <%
            }
        %>
    </table>
    </div>
<div class="choose" align="center" style="width:1000px">
    <form method="post">
        <table align="center" style="margin-up: 20px">
            <tr>
                <td >Edit your content:</td>
            </tr>
            <tr>
                <%String cotent = (String) request.getAttribute("content");%>
                <td><textarea class="default-input" cols="50" rows="10" name="content"  required><%=cotent%></textarea></td>
            </tr>
        </table>
        <button type="submit">Submit</button>
        <button type="reset">Reset</button>
    </form>
</div>
</body>
</html>