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系统的电脑 ...
随机推荐
- UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-25: ordinal not in range(128)
python报错:UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-25: ordinal not in ...
- 弹性(flex)布局
五大主流浏览器及其内核:谷歌浏览器:Google Chrome.内核是blink火狐浏览器:Mozilla Firefox.内核是Gecko:欧鹏浏览器:OPera.内核是blink苹果浏览器:Saf ...
- [转帖]一个FORK的面试题
一个FORK的面试题 https://coolshell.cn 搞不懂 fork 的含义. Linux 里面的线程不是教科书上面的标准的线程 好像用 父子进程来进行 模拟线程的处理 父子线程应该共享 ...
- PreparedStatement和Statement
1 . PreparedStatement 接口继承 Statement , PreparedStatement 实例包含已编译的 SQL 语句,所以其执行速度要快于 Statement 对象. 2 ...
- MySQL简介及安装
一.DBA工作内容及课程体系 二.MySQL课程体系介绍 三.DBA的职业素养 四.MySQL简介及安装 01 什么是数据? 02 什么是数据库管理系统 03 数据库管理系统种类 04 MySQL发展 ...
- Android——SMS接收发短信与运行权限
好久没写了,最近学习Android的相关知识,包括UI组件与布局.Activity生命周期等,而这次要讲的是,Broadcast Receiver的相关知识,主要是接收发短信,SmsManager.S ...
- python爬虫之线程池和进程池
一.需求 最近准备爬取某电商网站的数据,先不考虑代理.分布式,先说效率问题(当然你要是请求的太快就会被封掉,亲测,400个请求过去,服务器直接拒绝连接,心碎),步入正题.一般情况下小白的我们第一个想到 ...
- python之路--MySQl单表查询
一. 关键字的执行优先级(重点) from where group by having # 使用是要放在group by 后面而且前面必须有group by select distinct # 去重 ...
- uname -r查询版本不是安装的版本的问题
uname -r 查出来的版本与/lib/modules下面的内核版本不匹配.啥原因? 第一步,先strace uname -r看看这个uname -r到底从哪里获取的版本. strace没有看出来 ...
- Google css & Google fonts
最近用某开源模板做提案的时候, 抓包工具老是有外部Request. 问题出在某css中有这么一句: @import url(https://fonts.googleapis.com/css?famil ...