比如,做一个在线测试的网站,每页测试5道题,共50道题,需要测10页,如何保存上一页用户测试的结果,在用户测试完50道题后,统一提交计算成绩?1、存数据库?
如果用户中途放弃答题怎么办?2、放session?
在线人数很多时,会不会增加服务器负担?谢谢:)

解决方案 »

  1.   

    如果这样的话,那用session也无妨
      

  2.   

    我也是个初学者,和你们学习一下,不过提个小意见,写cookie会不会比写session省资源呢
      

  3.   

    首先谢谢二位。
    一位朋友提议用数据库存储每页的试题答案,
    然后写一个数据库的job,
    定时去清理那些没有完成答卷或者session超时的用户的答卷诸位以为如何?
      

  4.   

    楼上,hidden是否过于复杂?
    用hidden保存每一个页面的答案?
      

  5.   

    dreamover(梦醒了) ( ) 信誉:100 
         <input type="hidden">
    ======================================
    个人觉得可行  存下结果 !
      

  6.   

    谢谢各位了!
    另外有一个与在线测试相关的问题:
    如何控制测试时间?
    如果是通过javascript来控制的话,客户刷新怎么处理?
    是否有更好的办法?
      

  7.   

    hidden复杂?
    java.util.Map results = request.getParameterMap();
    for(Object key:results.keySet()){
    out.println("<input type=\"hidden\" name=\""+key+"\" value=\""+results.get(key)+"\">");
    }//里面有同名多选项的话,需要修改一下代码这不比每页操作数据库简单?而且不用担心在数据库中产生垃圾数据,还要清理
      

  8.   

    谢谢各位了!
    另外有一个与在线测试相关的问题:
    如何控制测试时间?
    如果是通过javascript来控制的话,客户刷新怎么处理?
    是否有更好的办法?=======================================这个可以用session+javascript处理用session记录开始时间
    session.setAttribute("begintime",new Date());<script type="text/javascript">
    leavetime=60*60*1000-<%=(new Date() - session.getAttribute("begintime"))%>;
    //60是考试时间,然后减去考生已用的时间
    //当然实际代码不能这么写,我只是表达一下大体意思setTimeout("交卷函数()",leavetime);
    //复杂点,还可以加上提醒功能
    </script>
      

  9.   

    to dreamover(梦醒了) 
    ----------------------------------
    hidden复杂?
    java.util.Map results = request.getParameterMap();
    for(Object key:results.keySet()){
    out.println("<input type=\"hidden\" name=\""+key+"\" value=\""+results.get(key)+"\">");
    }//里面有同名多选项的话,需要修改一下代码
    -----------------------------------------------------------------------------
    个人也比较倾向于这个方法,谢谢!