利用JSP技能实现一个简朴的在线测试系统的实例

操作JSP技术实现一个简单的在线测试系统的实例

实现:

本界面由三部门组成,Footer.jsp,Index.jsp,Header.jsp

Header.jsp

<center> <h2>在线测试系统</h2> <p> <a href="https://www.jb51.net/Index.jsp" >登录</a> | <a href="https://www.jb51.net/test.jsp" >在线测试</a> | <a href="https://www.jb51.net/scorelist.jsp" >后果榜</a> </p> </center>

该部门主要实现主界面的头部信息,显示三个链接,别离可以跳转到登岸界面,在线测试界面,以及后果榜界面

Footer.jsp

<%!int pageCount = 0;%> <% pageCount++; %> <center> <p>Copyright @ 2018 | 会见次数:<%=pageCount%></p> </center>

该部门显示登录页面的底部信息,即显示会见次数等其他信息

Index.jsp

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <jsp:include page="Header.jsp" /> <center> <form action="check.jsp" method="get"> 用户名<input type="text" /> <br> 暗码<input type="password" /> <br><br> <button type="submit">登录</button> <button type="reset">重填</button> </center> <jsp:include page="Footer.jsp" /> </form> </body> </html>

该部门主要显示登岸界面的中间界面,用户可以输入用户名和暗码实现登岸系统

2、登岸检测

当用户点击登岸按钮,系统靠山会获取用户输入的用户名以及暗码,并与预设的举办比对,由于本例没有利用数据库,所以利用Map存储用户名及暗码

<%! Map<String,String> userlist= new HashMap<String,String>(); %> <% userlist.put("qq", "11"); userlist.put("ww","22"); userlist.put("ee","33"); %> <%! boolean check(String username,String psd){ if(userlist.containsKey(username)){ if(userlist.get(username).equals(psd)){ return true; } } return false; } %> <% String username=request.getParameter("username"); String psd=request.getParameter("psd"); if(check(username,psd)){ session.setAttribute("username", username); out.print("接待"+username); out.print("<a href='https://www.jb51.net/test.jsp'>开始测试</a>"); } else{ out.print("登岸失败,3秒钟后从头登录"); response.setHeader("refresh", "3;url='https://www.jb51.net/Index.jsp'"); } %>

当用户输入的用户名及暗码正确时,系统会显示用户姓名,以及跳转链接,同时利用session生存用户名,暗码不正确时,3秒后返回登岸界面,

 3、测试页面

用户输入用户名及暗码后便进入测试页面,测试页面的第一行显示用户名,之后显示题目信息。

<% String username=(String)session.getAttribute("username"); if(username==null){ out.print("未登岸,3秒钟后从头登录"); response.setHeader("refresh", "3;url='https://www.jb51.net/Index.jsp'"); } else{ %> 考生:<%=session.getAttribute("username") %> <h3>在线测试题</h3> <form action="submit.jsp" onsubmit="return confirm('确定提交吗?')"> 第1题:湖北省会是 <input type="text" /> <br><br> 第2题:宋朝建国天子是 <br> <input type="radio" value="赵匡胤"> 赵匡胤 <input type="radio" value="朱元璋"> 朱元璋 <input type="radio" value="李渊"> 李渊 <br><br> 第3题:四台甫著有 <br> <input type="checkbox" value="红楼梦"> 红楼梦 <input type="checkbox" value="水浒传"> 水浒传 <input type="checkbox" value="J2EE编程技能"> J2EE编程技能 <br><br> <button type="submit">提交</button> </form> <%}%>

进入页面之前,会再次检测用户是否登录,以防备用户通过其他路径会见到该页面。

点击提交时,系统会提示是否提交,点击确定后,系统靠山要做两件事,第一件事就是注销session,另一件事就是通过谜底获取相应的分数,而且将用户名和分数生存。

4、提交页面

用户完成题目点击提交后,系统会获取用户的谜底,并与尺度谜底比拟,获取相应的分数,同时利用application生存用户名和后果,这样就可以在后果榜中显示每个用户的后果信息

<%! Map<String, Integer> score_list = new HashMap<String, Integer>(); //存放用户名+后果 %> <% int score=0; String q1=request.getParameter("q1"); String q2=request.getParameter("q2"); String[] q3=request.getParameterValues("q3"); if(q1!=null&&q1.equals("武汉")){ score+=10; } if(q2!=null&&q2.equals("赵匡胤")){ score+=10; } if(q3!=null&&q3.length==2&&q3[0].equals("红楼梦")&&q3[1].equals("水浒传")){ score+=10; } //out.print("<h2>你的后果=" + score + "</h2>"); score_list.put((String)session.getAttribute("username"), score); application.setAttribute("scorelist", score_list); response.sendRedirect("logout.jsp"); %>

 5、后果榜

后果榜通过application显示所有登岸用户的用户名及后果,并凭据后果举办排序‘'

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsddfd.html