开发基于Mysql,Servlet,Jsp的作业管理系统

项目名称:

开发基于Mysql,Servlet,Jsp的作业管理系统

功能要求:

老师:添加作业,查询作业,添加学生;
学生:提交作业。

git源码地址

https://github.com/zheng666999/javaee01/blob/master/Javaee-Homework1.rar

环境配置:见我另外一篇博客

https://blog.csdn.net/weixin_45862925/article/details/104642209

项目简介:

这次的作业管理系统呢,其实比较简单,大多数操作原理是相同的。根据老师布置的要求,这四个功能我在设计时把他们进行了细化分解。例如:在StudentDao类里,我加入了判断学生是否存在,查询学生信息,查询学生作业,查询学生课程这几个基础方法。
TeacherDao类也同理。这样做的目的就是其实有些代码避免冗余:在登陆时,我们需要判断这个人在不在,加入学生时也要判断,这样就可以使用相同方法。大致是这样,我们还是直接看代码吧。

源码讲解:

  1. jdbc的使用:
    首先设计一个调用数据库的类:这里我把一些通用操作都封装在这一个类里,每次直接new就可以了,createConnection():建立连接;createPstmt():这里我使用的是预编译。
    开发基于Mysql,Servlet,Jsp的作业管理系统开发基于Mysql,Servlet,Jsp的作业管理系统
    开发基于Mysql,Servlet,Jsp的作业管理系统
    上面这两大致相同,就是查返回的是结果集,增删改直接就是true 或false。这个工具类就介绍到这里,毕竟都是JDBC基本知识。
  2. 两个实体类:
    这两个实体类就是分别对应数据中两张表,我这里只构建了两张,功能足够实现了,不多解释,直接源码。
    开发基于Mysql,Servlet,Jsp的作业管理系统
  3. 功能实现类:
    上述两个步骤实际只是为了方便起见,避免代码冗余以及一些不必要的麻烦构建的,这里的两个Dao类才是功能实现:
    以StudentDao为例:(TeacherDao类同理)

下面这个方法就是根据学号查询学生信息,直接调用刚刚第一步写好的方法,对象就建一个全局的Database db = null;就可以。
开发基于Mysql,Servlet,Jsp的作业管理系统
接下来就是根据上面的方法判断某位学生是否存在表中:
开发基于Mysql,Servlet,Jsp的作业管理系统
上面两个基本方法只是为了登录判段,添加判断等基本方法。下面的是这次项目学生应改实现的功能:
一个提交作业,一个查看老师布置的作业,可以看到,其实内部结构与之前的方法大同小异,只不过sql语句变了,传参变了。
开发基于Mysql,Servlet,Jsp的作业管理系统
4. 前后端的连接:
这里就是要将servlet的应用了,这里我通过servlet将前端请求传到后端Dao类,再由servlet将后端响应结果传到前端。
开发基于Mysql,Servlet,Jsp的作业管理系统
我这里还是一样分功能写servlet,内部原理大致相同,以一个为例:
开发基于Mysql,Servlet,Jsp的作业管理系统
这里可以看到通过request的getParameter 方法,我们把前端的发送请求的数据得到,再创建了一个Student对象,将信息同new一个StudentDao对象并调用其方法传到后端。并请求转发到下个页面,这里重定向也可以,因为结果只是一个“操作成功”,不需要对request域的值进行操作request.getRequestDispatcher(“Success.jsp”).forward(request, response);

效果展示:

因为我前端不会,所以页面也非常粗糙,这里仅仅看功能截图:
我这里设计了一个简要的登录验证,这个功能是已经实现的,在我的源码里有这部分代码
开发基于Mysql,Servlet,Jsp的作业管理系统
我们选择学生的话就会跳到学生界面:最开始的话都是空的,因为老师没有加入学生。
开发基于Mysql,Servlet,Jsp的作业管理系统
我们进入老师的界面:把刚才那位同学添加进来,并布置作业:
开发基于Mysql,Servlet,Jsp的作业管理系统
这样就添加好学生了
开发基于Mysql,Servlet,Jsp的作业管理系统
我们回到学生界面提交作业后,再回老师界面就可以显示出学生提交的作业了
开发基于Mysql,Servlet,Jsp的作业管理系统

总结

大致就是这样,主要是前端一窍不通,页面难看。还有就是重复操作我给省略了;比如老师查看学生作业,其实与添加,布置流程差不多,只不过是一个查,一个改。这里我就没有添加按钮,直接在老师第二次登陆时就显示出来了。