JavaWeb项目:在线评测系统
此项目为本人的Java大作业。
项目文件和相关资源已上传到本人的GitHub
一、项目概况
1.1设计内容
一个在线评测系统,分用户和管理员两种身份。用户能够通过注册登录,参加比赛,最后实时得到比赛结果,并保存历史比赛结果;管理员除此之外还能录入题目增加题库内容。
1.2开发工具
Eclipse,Java,MySQL,Redis,Html,CSS,JS。
二、详细设计
2.1网站结构
2.2主要功能
以下功能均对应相应的JSP,Servlet层,DAO层,Service层
注册:在JSP页面中输入需要注册账号的昵称,用户名,密码,确认密码。在Servlet中先进行密码和确认密码的判定,判定成功后,连接数据库MySQL,进行用户名的判定,再次判定成功后,将注册信息写入MySQL数据库中的User表单中,最后重定向到主页。
登录:在JSP页面输入用户名和密码。在Servlet中连接数据库MySQL,获取数据库User表单中对应账号的密码,再与输入的密码进行判定,最后重定向到主页。
注销:将对应用户储存的cookie和redis删除,重定向到登录界面。
信息修改:JSP页面中输入昵称,用户名,手机号,学号。在Servlet中连接数据库MySQL,将数据库User表单中对应的信息替换成输入的。最后再重定向到该页面,可发现信息已修改。
密码修改:在JSP页面中输入当前密码,新密码,确认密码。在Servlet中先进行新密码和确认密码的判定,判定成功后,连接数据库Mysql,获取User表单中当前账号的密码,与输入的当前密码进行判定,判定成功后用新密码替换当前密码,重定向到登录界面,重新登录。
头像修改:在Servlet中获取头像数据,转化成,连接数据库,将其替换当前账号已经储存的
单点登录(顶号):以过滤器过滤登录,注册的Servlet和对应的jsp,以redis存储登录状态,再次登录删除之前与当前账号相同的redis记录。
三、程序架构和使用说明
3.1程序架构
3.2使用说明
文件结构:Dao层,Service层,Servlet层。数据库操作在Dao层,Service层为相关服务,Servlet层获取从JSP得到的相关数据并重定向到其他jsp页面。
使用方式:本程序包含MySQL数据库文件,需先导入oj.sql到命名为oj的数据库中。再导入OnlineJudge项目到eclipse中。修改com.oj.util中DbUtil中登录数据库的账号密码(自己数据库的)。以Run On Service中选择tomcat运行项目文件。
JavaWeb项目:在线评测系统的更多相关文章
- 开源的在线评测系统——Vakuum
项目地址 http://code.google.com/p/vakuum-oj/ https://github.com/BYVoid/vakuum 简介 Vakuum是一个基于Linux+PHP的在线 ...
- CCF CSP认证考试在线评测系统
关于 CCF CSP 认证考试在线评测系统 CCF CSP 认证考试简介 CCF 是中国计算机学会的简称.CCF 计算机软件能力认证(简称 CCF CSP 认证考试)是 CCF 于 2014 年推出, ...
- 解决学校在线评测系统不支持C++11的问题
如图,我们老师搞的这个评测系统它不支持C++11.但分析错误信息可知GCC本身版本是支持C++11的,只不过没开开.平时的时候我们可以对"g++"后使用"-std=c++ ...
- JavaWeb项目——博客系统
系统介绍 博客是互联网平台上的个人信息交流中心.通常博客就是用来发表文章,所有的文章都是按照年份和日期排列,有些类似斑竹的日记.看上去平淡无奇,毫无可炫耀之处,但它可以让每个人零成本.零维护地创建自己 ...
- 基于asp.net+MINIUI的项目----在线学习系统
1 数据库列的自动计算: 描述:一张选课表,其中有学习的开始时间和结束时间,一个列用来计算学习的总时间(小时) 解决:选择该列 属性:计算列规范:公式:(datediff(hour,[StartTim ...
- 南洋理工大学 ACM 在线评测系统 矩形嵌套
矩形嵌套 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽.矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a& ...
- CCSUOJ评测系统
队名: BUGG 团队信息与分工: 开发: 周斌 B20150304221 舒 溢 B20150304209 测试: 许嘉荣 B20150304213 唐 浩 B20150304316 Product ...
- JavaWeb项目开发案例精粹-第3章在线考试系统-007View层
0.login.jsp <%@ page language="java" import="java.util.*" pageEncoding=" ...
- Linux服务器部署javaweb项目,从环境配置,到最终系统运行
部署准备:javaJDK1.7,Tomcat7.0,MySQL5.8,可运行的javaWeb项目,linux环境的服务器(可以是安装在windows电脑上的linux虚拟机,安装了linux系统的电脑 ...
随机推荐
- 使用node写一个简单的页面操作
let http = require('http'); let urlStr = require('url'); let fs = require('fs'); let path = require( ...
- [转帖]AMOLED的技术和OLED有哪些联系和区别
AMOLED的技术和OLED有哪些联系和区别 https://display.ofweek.com/2018-06/ART-11000-2300-30243226.html 硬件资料 导读: ?虽然L ...
- Android——MaterialDesign之一Toolbar
Toolbar 由于ActionBar设计原因只能存在活动的顶部,从而不能实现MaterialDesign的效果,现在推荐使用Toolbar,继承Actionbar,但是比起它更加的灵活. 设置主题: ...
- Django--ORM和单表查询
一 . ORM ORM是“对象-关系-映射”的简称.(Object Relational Mapping,简称ORM) 二. 单表操作 要想将模型转为mysql数据库中的表,需要在setting里面写 ...
- python之路-列表、元组、range
一 . 列表 # 列表的定义 列表就是能装对象的对象 在python中用[ ]来描述列表,内部元素用逗号隔开,对数据类型没有要求 索引和切片 lst = ["天龙八部", &quo ...
- jenkins的 git多分支自动构建
一.先做好jenkins和gitlab的webhook自动构建 二.选择哪个分支(我这是test分支) 三.选择build Triggers 四.过滤test分支 五.保存即可
- 去掉dede织梦position当前位置最后一个箭头的方法
理论是,dede的当前位置标签{dedefield name='position'}结构是 首页 > 主栏目 > 子栏目 > ,这就说明,而箭头符号字段数据都是在后台设置后存储在数据 ...
- Learning to Rank(转)
https://blog.csdn.net/kunlong0909/article/details/16805889 Table of Contents 1 前言 2 LTR流程 3 训练数据的获取4 ...
- Hibernate **关于hibernate4.3版本之后org.hibernate.service.ServiceRegistryBuilder被弃用**
之前一直都是使用hibernate4.2.21的我,有一天突然没有使用本地的jar包而是让IDEA自动下载最新版本的hibernate5.2.2之后,发现有几个经常使用的方法报错了. //创建配置对象 ...
- com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@1035079 -- APPARENT DEADLOCK!!! Complete Status:
com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@1035079 -- APPARENT DEADLOCK!!! C ...