Java EE——基于Mysql、Servlet、JSP的作业管理系统(2)设计和实现

Java EE——基于Mysql、Servlet、JSP的作业管理系统(2)功能实现

一,再阅读一遍作业要求

1、开发基于Mysql、Servlet、JSP的作业管理系统;
2、老师:添加作业,添加学生。查询学生作业;
3、学生:根据老师添加的作业,进行作业提交;
4、作业提交以Blog形式,设计、源码简单介绍;
5、源码提供git地址:github或者gitee。

备注:
1、钉钉作业提交时带上学号
2、不要求CSS样式,功能优先,不涉及权限
3、有问题及时反馈

二,我的初步想法

1)交互方式,页面的设计

因为分两种不同的角色,且暂时不涉及权限,所以我们在初始页面设计两个按钮——学生/老师。
这两个按钮对应着使用者的不同身份。
在这里插入图片描述

A.进入老师界面后,可以行使老师的功能

在这里插入图片描述

1.查看作业 页面(显示数据库中所有的作业信息)

在这里插入图片描述

2.添加作业页面 简单的html

读取用户输入,再通过servlet接收信息,并利用JDBC来添加新的数值
在这里插入图片描述

3.查看学生 页面

在这里插入图片描述

4.添加学生 页面 简单的html

读取用户输入,再通过servlet接收信息,并利用JDBC来添加新的数值
在这里插入图片描述
点击提交后自动进入学生目录,产看添加情况。
在这里插入图片描述

5.查看作业完成情况

在这里插入图片描述

这时还没弄出作业编号和作业标题的一致性,和学生学号必须在学生列表里

B.进入学生界面,可以选择学生的功能

1.查看作业

和老师能查看到的页面一样

2.提交作业

在这里插入图片描述

因为有要求说根据老师留的作业来提交作业,所以有一个下拉条,从数据库读取作业列表,让学生根据老师留的作业来提交作业。

项目中的类

在这里插入图片描述
本次用到JDBC接口的函数,都写在了studentHomeworkJDBC中
主要函数有

1. public static List<StudentHomework> selectAll()

找到student数据库 s_student_homework 表中所有数据(用于查看作业完成情况)
并返回一个StudentHomework类的列表list<StudentHomework>

2.public static List<Student> selectAllStudent()

找到student数据库 s_student 表中所有数据(用于查看学生目录)
并返回一个Student类的列表list<Student>

3.public static List<Homework> selectAllHomework()

找到student数据库 s_homework 表中所有数据(用于查看作业目录)
并返回一个Homework类的列表list<Homework>

4.public static void addHomework(Homework homework)

根据传入的Homework对象,向student数据库 s_homework 表中添加一个元素(老师:添加作业)

5.public static void addStudent(Student student)

根据传入的Student对象,向student数据库 s_student 表中添加一个元素(老师:添加学生)

6.public static void addStudentHomework(StudentHomework sh)

根据传入的StudentHomework对象,向student数据库 s_student_homework 表中添加一个元素(学生:提交作业)

@WebServlet("/addStudentHomeworkServlet")
public class addStudentHomeworkServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        if(req == null){
            System.out.println("none data");                                    //判断是否为空
        }else{
            req.setCharacterEncoding("utf-8");
            resp.setContentType("text/html;charset=utf-8");
            String id = req.getParameter("sh_id");
            String student_id = req.getParameter("student_id");             //根据传入的req来获取学生id
            String homework_id = req.getParameter("homework_id");           //根据传入的req来获取作业id
            String homework_title =req.getParameter("homework_title");      //获取作业标题
            String homework_content =req.getParameter("homework_content");  //获取学生写的作业内容
            
            //转变数据类型,方便存入对象中
            long id_long = Long.valueOf(id);
            long homework_id_long = Long.valueOf(homework_id);
            long student_id_long = Long.valueOf(student_id);
            
            //实例化一个对象,等一下将对象存入数据库中
            StudentHomework sh = new StudentHomework(id_long,student_id_long,homework_id_long,homework_title,homework_content);
            
            //将对象存入数据库
            studentHomeworkJDBC.addStudentHomework(sh);
            
            //跳转到学生操作页面
            req.getRequestDispatcher("studentOperation.jsp").forward(req,resp);
        }

    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

在这里插入图片描述
这些Servlet用来相应用户的操作。
他们都extends HTTPServlet。

说明

1.两个OperationServlet 纯属是选择的时候用的,但后来发现直接通过<hrep>属性传到.jsp就可以,不用非得弄一个servlet。 一开始依葫芦画瓢闹的笑话
2.和test 相关的,都是对于这次作业无用的。
3.AddStudentHomeworkPageServlet。作用是,在选择要提交作业的时候,通过它来传给.jsp一个包含所有作业的list,好让学生选择作业。
4.show开头的,作用都是传给.jsp一个list让他的数据都显示出来
5.add开头的,都是用户在.jsp输入完数据之后,传入这个servlet,然后在其中,调用JDBC,给数据库加一条数据。

在这里插入图片描述

这是所有.jsp文件的汇总,他们主要是显示。

我想说一下下拉条

提交的作业标题
<select name="homework_title" >
    <%
        List<Homework> list = (List<Homework>) request.getAttribute("list");	//得到传入的list表
        if( list == null || list.size() <= 0 ){					//判断是否为空
            out.println("none Data");				
        }else{				
            for(Homework homework : list){					//不为空则遍历所有的homework对象

    %>										//读出Title,作为下拉框的值
    <option value="volvo"><%=homework.getHomeworkTitle()%></option>
    <%

            }
        }
    %>
</select>

这就是.jsp文件,读取数据库元素,形成下拉条的操作。依照了老师上课讲的用.jsp列出所有元素的例子。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值