在写在线考试系统的时候,因为试题是随机出的,怎样才能防止考生刷新页面选题啊?或者使刷新失效,刷新后还是这些题目并且时间并不重新计算
------解决方案--------------------
把右键和菜单栏屏蔽了.
------解决方案--------------------
<html>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<head>
<script language="javascript">
var ie =navigator.appName=="Microsoft Internet Explorer"?true:false;
function keyDown(e)
{
if(!ie)
{
var nkey=e.which;
var iekey='现在是ns浏览器';
var realkey=String.fromCharCode(e.which);
}
if(ie)
{
var iekey=event.keyCode;
var nkey='现在是ie浏览器';
var realkey=String.fromCharCode(event.keyCode);
if(event.keyCode==32){realkey='\' 空格\''}
if(event.keyCode==13){realkey='\' 回车\''}
if(event.keyCode==27){realkey='\' Esc\''}
if(event.keyCode==16){realkey='\' Shift\''}
if(event.keyCode==17){realkey='\' Ctrl\''}
if(event.keyCode==18){realkey='\' Alt\''}
}
alert('ns浏览器中键值:' nkey '\n' 'ie浏览器中键值:' iekey '\n' '实际键为' realkey);
}
document.onkeydown = keyDown;
</script>
</head>
<body>
//Javascript Document.
<hr>
<center>
<h3>请按任意一个键。。。。</h3>
</center>
</body>
</html>
------解决方案--------------------
屏蔽右键也就是用JAVASCRIPT 可这毕竟是在客户端。 客户也可以把JAVASCRIPT禁用的。
把菜单栏屏蔽了也没啥用
按CTRL+N 就全出来了。
我觉得可以在SESSION里设置一个对象 这个对象就是这些试题。
每一次访问这个页面的时候 先检测SESSION里是否存在这个对象
如果存在 就直接从这个对象里把题取出来。
如果没有 再重新生成试题 并把它存到SESSION里
------解决方案--------------------
这个是你随机出题的问题,你当然不能在页面使用随机函数出题,应该在后台随机出来传递页面的时候也就是固定的题目了
------解决方案--------------------
客户端编程是不安全的
------解决方案--------------------
我觉得是一样情愿吧,如果我多打开几个浏览器呢
应该只有注册了账户了的,并且登陆之后才能查看,并且一个账户只能在一个地方登陆(就像QQ只能同时在一个地方登陆),然后按照5楼说的设一个session
------解决方案--------------------
很明显要解决这个问题不能考虑如何中在客户端中解决,而应该考虑在服务端加以控制.
比如,一个考生a,考题有100,可以新建一个string[] ,比如a做第10题,那么string[9]中就存入题目的序号.刷新页面时,根据题号9,找到string[9],判断是不是为空,如果不是空,则取出string[9]对应的题目,这样无论怎么刷新都是第一次的题目.
------解决方案--------------------
数据库设计问题,最好把数据库设计好,对于这样子的问题,不必要,也不能考虑到前台部分.
设计部分:要考虑到一个用户名,只能一次进行考试系统.当一个帐户已经使用时,不可再用些用户登录到系统.
二:当用户某一个帐号进入到系统,要把用户的相应信息存储起来,并把试题号存储起来,做算分处理啊,..
这些都是基本问题.要首先考虑....
------解决方案--------------------
1.把不让刷新的那个页面的数据保留在SESSION变量里了
2.数据库另加一张表,当用户登录后随机选择一道题目后,就存入这张表,这样用户跟试题对应起来,以后就一直是这份试题.
------解决方案--------------------
第一次生成界面时在SESSION里放个session值,下次访问判断session为不为null
在判断是取值还是返回原JSP,时间可是在第一次访问把时间放在session里,在刷新取当前时间相减
可能有误差,别的方法我不会