JAVAEE简易作业提交系统(Version1)

简易作业提交系统(Version1)

1.系统功能分析

  • 本次作业主要是基于Mysql,Servlet,JSP做一个简易的作业管理系统,主要是为了了解三者之间的相互交互与参数的传递,经过分析,version1在不涉及权限与登录状态下的功能分析如下:

  • 学生端:输入学号登录,查看自己已提交的作业,查看作业列表,提交作业。
    老师端:查看所有学生的作业,根据条件筛选查看作业,添加学生,添加需要提交的作业。

  • Version1主要是为了熟悉交互与信息传递,所以就简单的设计了一些功能,其中登录模块是做一个测试,为了以后的迭代打下基础,在第二模块会详细介绍一些设计与预留的功能。

2.系统设计与架构

  • 在设计系统中,我首先考虑将展示List的界面提出来,作为公用的界面,这样可以多次使用,减少重复代码的量,不论是筛选,还是查看全部,都可以将结果List作为参数传递给ShowAllHome.jsp界面,界面中获取这个参数,即可显示。
  • 同时,由于每次jdbc需要多次的访问数据库,所以我将其中的连接部分和关闭部分单独提出来,写成了一个单独的类DBConnection,也是有效的减少了代码的重复量。
  • 为了之后更好的迭代,我的index界面设计为用户角色选择,可以有助于后续开发,在选择用户之后,不同身份有不同的功能,同时,为了后续开发记住登陆状态,我在学生端尝试了首先让用户手动输入学号,之后在界面中进行学号参数的传递,以保证学生状态的记录,所以也就开发了查看自己的作业的功能,后续尝试用Cookies记住状态,但是觉得安全系数有问题,所以还在考虑这方面的问题。
  • 接下来附上自己的代码逻辑图在这里插入图片描述
    -模块的介绍与界面截图见第三部分

3.界面截图与功能逻辑说明

  1. index.jsp(也被设置为启动页)
    这个页面主要就是为了后续开发提供一个接口页面,可以在这个页面上做更进一步的登录页和选择页,就像常见的网站的登录页的作用,可以针对不同用户,提供不同的功能。
    在这里插入图片描述
  2. StudentLogin.jsp+StudentOperation.jsp
    在学生选择自己身份后,会进入登录界面,这个界面主要是模拟日后要开发的登陆界面,主要是为了记住学生状态,因为学生仅仅只可查看与自己有关的信息。
    这里贴一段代码,是将这个界面中所获得的学生学号传递到学生操作界面。
    登陆界面:
 <label>
            <span>学生学号:</span>
            <input id="s_id" type="text" name="my_id"  class="error" placeholder="学生序号"/>
            <div class="error-msg"></div>
 </label>

学生选择操作界面:

<%
    //获得学生ID
    String str=request.getParameter("my_id");
    int my_id=Integer.parseInt(str);
%>

登陆界面:
在这里插入图片描述
学生选择操作界面:
在这里插入图片描述

  1. 查看我的作业
    这个功能的界面使用的其实就是ShowAllHome.jsp,这个功能的实现是将选择操作界面中得到的学生ID继续传递给MyHomeworkServlet,在其中按照ID去筛选,去使用JDBC从数据库中取出响应数据,返回一个List。
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/2020031114572389.png

  2. 提交作业
    这个界面,因为之前记住了用户的学号,所以学号是自动填写的,这个界面是从选择操作界面直接跳转到SubmitHome.jsp,这个Jsp调用SubmitHomeworkServlet提供的接口,向数据库中添加信息,添加成功后,跳转到自己所提交的所有作业的界面,这里还是仅仅展示了自己提交的作业,考虑到隐私的问题。
    在这里插入图片描述

  3. 查看作业列表
    这个界面就是调用了NeedHomeworkServlet提供的接口,查询数据,返回到ShowNeedSub.jsp界面。
    在这里插入图片描述

  4. 老师选择操作界面:
    这个界面与之前的学生选择操作界面类似,所以不再赘述。
    在这里插入图片描述

  5. 添加作业+添加学生
    两个功能的逻辑类似,一起说明,都是跳转到相应的添加页面(AddHomework.jsp与AddStudent.jsp),然后分别调用相应的servlet提供的接口,在Servlet中针对各自的表进行添加数据,最后返回一个list,到相应的JSP界面(ShowAllStu.jsp与ShowNeedSub.jsp)进行展示。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 根据条件查询学生作业
    这个功能的主要逻辑还是一样的,调用SearchByConServlet提供的接口,按照条件进行筛查,并返回List即可。
    这里需要注意的是在筛选界面,我加入了Check功能,要求必须至少填一个筛选条件。筛选可以只填写学生学号,可以只填写作业序号,也可以二者都填写,联合查询,提供了三种查询方式。
    附上代码
 <script>
        function CheckForm(form) {
            if(form.seastu_id.value == "") {
                if(form.seahome_id.value=="")
                {
                    alert('至少填写一个筛选条件');
                    form.seastu_id.focus();
                    return false
                }
                else
                {
                    return true;
                }

            }
            return true;
        }
    </script>

在相应的Servlet界面,也有处理

List<StudentHomework> list=null;

        String seastu_id=req.getParameter("seastu_id");
        String seahome_id=req.getParameter("seahome_id");

        if(seastu_id=="")
        {
            System.out.println(seahome_id);
            list = StudentHomeworkJdbc.selectbyhome(seahome_id);
        }else if(seahome_id=="")
        {
            list = StudentHomeworkJdbc.selectbystu(seastu_id);
        }
        else
        {
            list = StudentHomeworkJdbc.selectbycross(seastu_id,seahome_id);
        }

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 展示所有学生作业
    这个功能较为简单,直接调用StudentHomeworkServlet提供的接口,进行查询并返回即可。

在这里插入图片描述
4.代码部分简要说明
这是所有部分的代码模块,JSP部分我为了清晰,对不同角色进行了分类,主要就是三个jdbc对应3个model,作为从数据库中提取数据。Servlet与jsp交互,包括jsp之间交互,实现界面与功能,DBConnection是单独的连接数据库与断开的部分。
在这里插入图片描述
这里是学生作业的筛选所对应的不同的函数,包括根据学号查询,作业号查询,联合查询,查询我的作业,查询全部作业。
在这里插入图片描述5.项目总结
本次小项目的练习,让我明确了三者之间的交互,如何获取数据并显示,如何筛查数据,如何提交数据都进行了练习,之后的数据库基本操作,增删改查基本的逻辑都与现在的类似,不需要做过大的修改。
我主要是前期先对表单提交进行了测试,后期在参数的传递方面进行了尝试,本次也尝试了记住用户状态,可以有助于下一次的开发。
还有就是体会到在功能设计阶段,为后续开发预留界面,接口,功能的重要性,我本次尝试了角色选择,登录,记住状态等,主要是为下一个版本的迭代服务。
最后附上我学习JSP和Servlet的地址。相关知识我就不列举了。
Servlet
JSP

以及我的源码地址。
源码地址

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值