基于SSM作业提交与批改

2024-03-27 05:52
文章标签 ssm 作业 提交 批改

本文主要是介绍基于SSM作业提交与批改,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基于SSM作业提交与批改的设计与实现

摘要

社会的进步导致人们对于学习的追求永不止境,那么追求学习的方式也从单一的书本教程变成了多样化的学习方式。多样化的学习方式不仅仅是需要人们智慧的依靠,还需要能够通过软件的加持进行信息化的价值体现。软件和系统的产生,从表面上来看是方便了某一行业和某一行业的用户,其实是从本质上来说是提高了社会的进步。就拿我们常见的出行而言,滴滴出行看似是为了打车和出行的人方便,但其实通过另外一种程度上来说,可以通过软件应用的调度和发展来为社会、城市出行的发展做出巨大的贡献。我们国家从最早的中国制造业演变到现在的“智造”,就是因为有软件信息系统的价值,能够将一些智慧的因素加入到制造的过程当中,而这一点就是软件系统来改变生产和现实的需求。在计算机时代日益发展的今天,计算机网络正快速融入这个社会的每一个领域。学习也成为大家生活当中必不可少的一种习惯,但面对学习的方式,我们往往是依靠书本或者是教师上课的形式进行讲解,老师批改作业的过程当中难能够将每一位学生的思路看明白,而且面对学生如此之多,老师的工作量也是非常大的,为此开发和设计SSM作业提交与批改,该系统内容丰富多彩,用户可以在线进行作业批改等。本文还是使用JSP的方式来进行管理的,但在系统建设过程当中也考虑了许许多多信息安全的保护。

系统实现页面

首页

后台管理系统页面 

老师信息 

作业信息添加 

相关技术介绍 

SSM技术

Java语言之所以能够被程序爱好者喜欢和使用,是因为它在语法和框架的不断演变中逐渐提升其强大的功能。此次的设计呢,我们采用的是SSM框架。那么SSM框架也是Java开发框架当中的一个典型,那么分别就将SSM这三个字母进行一个简单介绍。首先,第一个S是Spring。第二个S是SpringMVC。第三个M是MyBatis。它们三个字母分别代表折Java体系中的三大类型,那么spring是Java的黏合剂,他的思想就是控制反转和面向切片编程,那么spring mvc里边呢?无需多介绍,他的核心其实相当于SSH框架中的struts,其实起到一个三层架构访问的形式,提供的更多是一种规范约束。最后是MyBatis,它是持久化框架中的一种,通过它可以和数据库永久的交互,那么交互起来也更加方便。那么每一项技术的加持形成了框架的组合,给程序员带来的是框架性的解决问题。

MySQL数据库介绍

在关系型数据库当中有一种数据库对于技术的发展和贡献有着非常大的影响,它就是MYSQL数据库。之所以它的地位非常的重要是因为它本身所拥有的特性是我们所不能忽略的。首先做为开源而且免费的数据库之一来说,无论是用运在商业场景当中还是用在我们个人的毕业设计上都是没有问题的,其次,开源免费只是它的一个基本特征更重要的一点原因就是它可以轻松容易的上手解决各种各样的问题。无论是简单的增、删、改、查还是复杂的存储过程这些问题都不在话下。那么对于此次的设计而言呢如果遇到问题查找资料或者解决问题的方法相对来说也比较多一点,所以此次也就使用了MSYQL数据库。

网络安全环境

我们都知道,对于一个作业提交与批改系统来说,不仅系统功能和非常重要,高性能的网络安全环境也是非常重要,网络安全的环境是直接影响应用系统是否安全的关键因素,但网络安全的保证是要从软件、硬件等各个方面进行一个有效性的综合提升。在专业的应用服务器中所必要的防火墙以及网络设备是必须要存在的,且在应用服务器当中与应用无关的所有端口号都要进行一定的屏蔽。对于内外网之间也要进行一个有效的隔离。在应用服务器中,所有的操作日志需定期进行一个有效的记录,具备应用审计、审查等功能。同时,在应用服务器当中应该有足够大的存储空间来为应用服务器进行一个灾备。防止意外发生时,能够及时有效地将应用服务器当中的所有内容进行一个恢复。所以说,那么SSM作业提交与批改等网络环境安全方面,我们一定要有一个保障,才能安安心心的做网站的开发

部分源码

package com.controller;import java.io.File;
import java.io.IOException;import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.io.PrintWriter;import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;import com.entity.Xinwentongzhi;
//import com.chengxusheji.po.News;
import com.server.XinwentongzhiServer;
import com.util.PageBean;
import net.sf.json.JSONObject;@Controller
public class XinwentongzhiController {@Resourceprivate XinwentongzhiServer xinwentongzhiService;//	@RequestMapping("showXinwentongzhi.do")public String showXinwentongzhi(int id,ModelMap map,HttpSession session){/*  Map<String,Object> bmap=new HashMap<String,Object>();bmap.put("uid", id);*/// map.put("blist", xinwentongzhiService.getAll(bmap));map.put("xinwentongzhi", xinwentongzhiService.getById(id));return "read";}@RequestMapping("addXinwentongzhi.do")public String addXinwentongzhi(HttpServletRequest request,Xinwentongzhi xinwentongzhi,HttpSession session){Timestamp time=new Timestamp(System.currentTimeMillis());//Users u=(Users)session.getAttribute("user");/*if(u==null||u.equals("")){return "redirect:showIndex.do";}else{*/xinwentongzhi.setAddtime(time.toString().substring(0, 19));xinwentongzhiService.add(xinwentongzhi);session.setAttribute("backxx", "添加成功");session.setAttribute("backurl", "xinwentongzhiList.do?lb="+request.getParameter("leibie"));return "redirect:postback.jsp";/*}*/}//	处理编辑@RequestMapping("doUpdateXinwentongzhi.do")public String doUpdateXinwentongzhi(int id,ModelMap map,Xinwentongzhi xinwentongzhi){xinwentongzhi=xinwentongzhiService.getById(id);map.put("xinwentongzhi", xinwentongzhi);return "xinwentongzhi_updt";}//	后台详细@RequestMapping("XinwentongzhiDetail.do")public String XinwentongzhiDetail(int id,ModelMap map,Xinwentongzhi xinwentongzhi){xinwentongzhi=xinwentongzhiService.getById(id);map.put("xinwentongzhi", xinwentongzhi);return "xinwentongzhi_detail";}
//	前台详细@RequestMapping("xwtzDetail.do")public String xwtzDetail(int id,ModelMap map,Xinwentongzhi xinwentongzhi){xinwentongzhi=xinwentongzhiService.getById(id);map.put("xinwentongzhi", xinwentongzhi);return "gg_detail";}//	@RequestMapping("updateXinwentongzhi.do")public String updateXinwentongzhi(int id,ModelMap map,Xinwentongzhi xinwentongzhi,HttpServletRequest request,HttpSession session){xinwentongzhiService.update(xinwentongzhi);//return "redirect:xinwentongzhiList.do";session.setAttribute("backxx", "修改成功");session.setAttribute("backurl", request.getHeader("Referer"));return "redirect:postback.jsp";}
//	所有List
//	@RequestMapping("xinwentongzhiList.do")
//	public String xinwentongzhiList(ModelMap map,HttpSession session){
//		map.put("list", xinwentongzhiService.getAll(null));
//		map.put("clist", xinwentongzhiService.getAll(null));
//		return "xinwentongzhi";
//	}
//	分页查询@RequestMapping("xinwentongzhiList.do")public String xinwentongzhiList(@RequestParam(value="page",required=false)String page,ModelMap map,HttpSession session,Xinwentongzhi xinwentongzhi, String biaoti, String leibie, String neirong, String shouyetupian, String dianjilv, String tianjiaren,String lb){/*if(session.getAttribute("user")==null){return "login";}*/if(page==null||page.equals("")){page="1";}PageBean pageBean=new PageBean(Integer.parseInt(page), 5);Map<String, Object> pmap=new HashMap<String,Object>();pmap.put("pageno", pageBean.getStart());pmap.put("pageSize", 20);if(biaoti==null||biaoti.equals("")){pmap.put("biaoti", null);}else{pmap.put("biaoti", biaoti);}if(leibie==null||leibie.equals("")){pmap.put("leibie", null);}else{pmap.put("leibie", leibie);}if(lb==null||lb.equals("")){pmap.put("lb", null);}else{pmap.put("lb", lb);}if(neirong==null||neirong.equals("")){pmap.put("neirong", null);}else{pmap.put("neirong", neirong);}if(shouyetupian==null||shouyetupian.equals("")){pmap.put("shouyetupian", null);}else{pmap.put("shouyetupian", shouyetupian);}if(dianjilv==null||dianjilv.equals("")){pmap.put("dianjilv", null);}else{pmap.put("dianjilv", dianjilv);}if(tianjiaren==null||tianjiaren.equals("")){pmap.put("tianjiaren", null);}else{pmap.put("tianjiaren", tianjiaren);}int total=xinwentongzhiService.getCount(pmap);pageBean.setTotal(total);List<Xinwentongzhi> list=xinwentongzhiService.getByPage(pmap);map.put("page", pageBean);map.put("list", list);session.setAttribute("p", 1);return "xinwentongzhi_list";}@RequestMapping("xwtzList.do")public String xwtzList(@RequestParam(value="page",required=false)String page,ModelMap map,HttpSession session,Xinwentongzhi xinwentongzhi, String biaoti, String leibie, String neirong, String shouyetupian, String dianjilv, String tianjiaren,String lb){/*if(session.getAttribute("user")==null){return "login";}*/if(page==null||page.equals("")){page="1";}PageBean pageBean=new PageBean(Integer.parseInt(page), 20);Map<String, Object> pmap=new HashMap<String,Object>();pmap.put("pageno", pageBean.getStart());pmap.put("pageSize", 20);if(biaoti==null||biaoti.equals("")){pmap.put("biaoti", null);}else{pmap.put("biaoti", biaoti);}if(leibie==null||leibie.equals("")){pmap.put("leibie", null);}else{pmap.put("leibie", leibie);}if(lb==null||lb.equals("")){pmap.put("lb", null);}else{pmap.put("lb", lb);}if(neirong==null||neirong.equals("")){pmap.put("neirong", null);}else{pmap.put("neirong", neirong);}if(shouyetupian==null||shouyetupian.equals("")){pmap.put("shouyetupian", null);}else{pmap.put("shouyetupian", shouyetupian);}if(dianjilv==null||dianjilv.equals("")){pmap.put("dianjilv", null);}else{pmap.put("dianjilv", dianjilv);}if(tianjiaren==null||tianjiaren.equals("")){pmap.put("tianjiaren", null);}else{pmap.put("tianjiaren", tianjiaren);}int total=xinwentongzhiService.getCount(pmap);pageBean.setTotal(total);List<Xinwentongzhi> list=xinwentongzhiService.getByPage(pmap);map.put("page", pageBean);map.put("list", list);session.setAttribute("p", 1);return "news";}@RequestMapping("deleteXinwentongzhi.do")public String deleteXinwentongzhi(int id,HttpServletRequest request,HttpSession session){xinwentongzhiService.delete(id);return "redirect:"+request.getHeader("Referer");}}

可行性分析 

运行可行性从一定程度上来讲就是应用系统。通过开发和实现起来,在其服务器上是否能够运行,其实,运行可行性还主要是有经济可行性和软件的操作可行性等技术可行性支撑而言。首先,在技术可行性中,如果能够实现的话就能够表明业务所需要的处理角度或者范围都能够通过技术而实现,那么我们把这些可行性最终综合到应用服务器当中,达到运行可行性的需求。本文其实在应用服务器中的运行可行性就是一台普通的电脑,它的请求并发量并不是很大,所以运行可行性是可行的。

功能需求

基于SSM作业提交与批改主要还是与采用后台的一个管理形势,通过不同角色来区分,主要有管理员、学生和老师。学生的主要功能有个人资料管理、作业成绩管理、作业管理。管理员的主要功能有系统用户管理、学生管理和老师管理。老师的主要功能有个人资料管理、作业成绩管理、作业管理。

测试

系统的测试目的就是为了让能够让系统的功能更加完善,能够让我们所做的功能补充在bug,这一点是非常重要的。测试的目的就是为了能够在系统上线之前,把所有的严重性bug和非严重性bug进行一个整理。我们只是根据测试的目的,把所需要整理的问题进行一个优先级的排序,通过优先级来讲程序的问题进行一个汇总解决。

我们通常进行的程序测试,包括白盒测试、黑盒测试都是相关的测试方法。首先,什么是白盒测试,什么是黑盒测试呢?不懂测试或者没有从事软件开发工作的朋友们可能不太清楚,那么对于白盒测试呢,就是简单的理解为可以通过肉眼进行一个我们代码结构或者布局的设计。然后通过简单的方式来对我们的整体结构和代码进行一个判断,是否存在漏洞或者存在有不合理的地方。黑河测试就是我们要通过实际的用例测试才能知道具体的业务流程是否准确,那么我们就从这几方面进行,比如说登录模块,点进去用户名、密码和验证码之后,是否能够按照要求跳入到指定页面。那么,对于增加信息或者修改信息,能否通过对应的信息录入实现信息的修改和增加。对于做了物理的删除功能来说,我们要通过删除信息来判断是否数据库真正进行了删除,然后所有的数据是否进行清空等等。

这篇关于基于SSM作业提交与批改的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/851133

相关文章

Redis 多规则限流和防重复提交方案实现小结

《Redis多规则限流和防重复提交方案实现小结》本文主要介绍了Redis多规则限流和防重复提交方案实现小结,包括使用String结构和Zset结构来记录用户IP的访问次数,具有一定的参考价值,感兴趣... 目录一:使用 String 结构记录固定时间段内某用户 IP 访问某接口的次数二:使用 Zset 进行

Git提交代码详细流程及问题总结

《Git提交代码详细流程及问题总结》:本文主要介绍Git的三大分区,分别是工作区、暂存区和版本库,并详细描述了提交、推送、拉取代码和合并分支的流程,文中通过代码介绍的非常详解,需要的朋友可以参考下... 目录1.git 三大分区2.Git提交、推送、拉取代码、合并分支详细流程3.问题总结4.git push

spring6+JDK17实现SSM起步配置文件

《spring6+JDK17实现SSM起步配置文件》本文介绍了使用Spring6和JDK17配置SSM(Spring+SpringMVC+MyBatis)框架,文中通过示例代码介绍的非常详细,对大家的... 目录1.配置POM文件2.在resource目录下新建beans.XML文件,用于配置spirng3

作业提交过程之HDFSMapReduce

作业提交全过程详解 (1)作业提交 第1步:Client调用job.waitForCompletion方法,向整个集群提交MapReduce作业。 第2步:Client向RM申请一个作业id。 第3步:RM给Client返回该job资源的提交路径和作业id。 第4步:Client提交jar包、切片信息和配置文件到指定的资源提交路径。 第5步:Client提交完资源后,向RM申请运行MrAp

HTML提交表单给python

python 代码 from flask import Flask, request, render_template, redirect, url_forapp = Flask(__name__)@app.route('/')def form():# 渲染表单页面return render_template('./index.html')@app.route('/submit_form',

Python3 BeautifulSoup爬虫 POJ自动提交

POJ 提交代码采用Base64加密方式 import http.cookiejarimport loggingimport urllib.parseimport urllib.requestimport base64from bs4 import BeautifulSoupfrom submitcode import SubmitCodeclass SubmitPoj():de

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

form表单提交编码的问题

浏览器在form提交后,会生成一个HTTP的头部信息"content-type",标准规定其形式为Content-type: application/x-www-form-urlencoded; charset=UTF-8        那么我们如果需要修改编码,不使用默认的,那么可以如下这样操作修改编码,来满足需求: hmtl代码:   <meta http-equiv="Conte

js异步提交form表单的解决方案

1.定义异步提交表单的方法 (通用方法) /*** 异步提交form表单* @param options {form:form表单元素,success:执行成功后处理函数}* <span style="color:#ff0000;"><strong>@注意 后台接收参数要解码否则中文会导致乱码 如:URLDecoder.decode(param,"UTF-8")</strong></span>

husky 工具配置代码检查工作流:提交代码至仓库前做代码检查

提示:这篇博客以我前两篇博客作为先修知识,请大家先去看看我前两篇博客 博客指路:前端 ESlint 代码规范及修复代码规范错误-CSDN博客前端 Vue3 项目开发—— ESLint & prettier 配置代码风格-CSDN博客 husky 工具配置代码检查工作流的作用 在工作中,我们经常需要将写好的代码提交至代码仓库 但是由于程序员疏忽而将不规范的代码提交至仓库,显然是不合理的 所