jsp实现在线考试系统

用jsp代码实现一个简易的在线考试系统
先登录,验证信息后跳转考试页面,然后再统计分数

1.登录页面 login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<script type="text/javascript">
function check(){
	var one=document.forms[0].name.value;
	var two=document.forms[0].pwd.value;
	
	 if(!one){
         alert("不允许为空!");
         return false;}
	 else if(!two){
         alert("不允许为空");
         return false;}
	 else {
		 document.forms[0].action="check.jsp";}
	
}
</script>
<body>
<form action="" method="post">
姓名<input type="text" name="name"><br><br>
  准考证号<input type="pwd" name="pwd"><br>  
  <input type="submit" name="sub" value="提交"  onclick="check()"> 
  <input type="reset" name="res" value="重置">
  </form>
</body>
</html>

2.检测页面 check.jsp,检查用户信息是否正确,若正确,跳转到考试系统,若不正确,返回登录页面
这里我们设置用户名为aaa,准考证号为123456

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<% request.setCharacterEncoding("GBK");
String name=request.getParameter("name");
String pwd=request.getParameter("pwd");

if((name.equals("aaa"))&&(pwd.equals("123456"))){
	out.print("登录成功,3秒后跳转到考试页面");
	
	 session.setAttribute("name",name);
	 response.setHeader("refresh","3;example.jsp");
	 session.setAttribute("name",name); 
	 session.setAttribute("pwd",pwd); 
}

else{
	response.setHeader("refresh","2;login.jsp");
}
session.setAttribute("pwd",pwd);   
%>

</body>
</html>

3.在线考试页面example.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%if (session.getAttribute("name")==null){%>
  <h1>用户还没有登录</h1>
  <%}else {%>
  <h1>欢迎<%= session.getAttribute("name")%>登录本系统</h1>
  <h2>准考证号:<%= session.getAttribute("pwd")%></h2>
    <a href="loginout.jsp">注销登录</a>
<form action="examplecheck.jsp" method="post">
<h3>一,单项选择题(每题2分)</h3>
<br>
1.下列哪个方法是获取 session中关键字是key的对象(    ) <br>
<input type="radio" name="r1" value="A">A. public void setAttribute(String key, Object obj) <br>
<input type="radio" name="r1" value="B"> B. public void removeAttribute(String key)<br>
<input type="radio" name="r1" value="C">C. publie Enuneration getAttributeNanes<br>
<input type="radio" name="r1" value="D">D. public 0bject getAttibute(String key)<br>

<h3>二、判断题(每题2分)</h3><br>

1.同一客户在多个wb服务目录中,所对应的 session对象是互不相同的 <br>
<input type="radio" name="r2" value="True ">True 
<input type="radio" name="r2" value="False">False<br>

<h3>三、多选题(每题3分)</h3><br>

1.以下属于JSP的内置对象有哪些<br>

<input type="checkbox" name="r3" value="A">A.request
<input type="checkbox" name="r3" value="B">B.response
<input type="checkbox" name="r3" value="C">C.session
<input type="checkbox" name="r3" value="D">D.JavaScript
<br>
<input type="submit" name="sub" value="提交"  > 
  <input type="reset" name="res" value="重置">
 <%}%>
</body>
</html>

4.确认提交页面examplecheck.jsp,当考试提交时,显示考生提交的答案,再点击提交才能进入成绩页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%if (session.getAttribute("name")==null){%>
  <h1>用户还没有登录</h1>
  <%}else {%>
  <h1>欢迎<%= session.getAttribute("name")%>登录本系统</h1>
  <h2>准考证号:<%= session.getAttribute("pwd")%></h2>
    <a href="loginout.jsp">注销登录</a>
<form action="grade.jsp" method="post">
<% request.setCharacterEncoding("UTF-8");
String r1=request.getParameter("r1");
String r2=request.getParameter("r2");
session.setAttribute("r1", r1);    
session.setAttribute("r2", r2);   
%>
<h3>一,单项选择题</h3>
1.<%out.print(r1);%>
<h3>二,判断题</h3>
2.<%out.print(r2);%>&nbsp;
<h3>三,多选题</h3>
3.
<%String r3[]=request.getParameterValues("r3");
if(r3!=null){
for(int a=0;a<r3.length;a++){
	out.print(r3[a]);
}}
session.setAttribute("r3", r3);   
 %>
  <%}%>
  <br>
 <input type="submit" name="sub" value="提交"  > <br>
    <a href="example.jsp">返回考试</a>
 </form>
</body>
</html>

5.显示成绩页面grade.jsp,提交后自动批改并显示成绩

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%if (session.getAttribute("name")==null){%>
  <h1>用户还没有登录</h1>
  <%}else {%>
  <h1>欢迎<%= session.getAttribute("name")%>登录本系统</h1>
  <h2>准考证号:<%= session.getAttribute("pwd")%></h2>
    <a href="loginout.jsp">注销登录</a>
<%
String r1= (String)session.getAttribute("r1");
String r2=(String)session.getAttribute("r2");
String r3[]=(String [])session.getAttribute("r3");
int sum=0;
if(r1.equals("D"));
{sum=sum+2;}
if(r2.equals("True"));
{sum=sum+2;}
if(r3[0].equals("A")&&r3[1].equals("B")&&r3[2].equals("C"))
{sum=sum+3;}

%>
<h2>您的成绩如下:</h2>
准考证号:<%= session.getAttribute("pwd")%><br>
成绩:<%=sum %>
<br>
    <a href="example.jsp">重新答题</a>
  <%}%>
 
</body>
</html>

6.注销登录页面loginout.jsp,点击注销登录时退出当前登录,返回登录页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>注销登录</title>
</head>
<body>

<%
  session.invalidate();
  response.sendRedirect("login.jsp");
 %>
<h1>您已成功退出本系统,两秒后跳转回首页,如果没有,请按<a href="login.jsp"></a>这里</h1>
	<% response.setHeader("refresh","2;login.jsp");
%>
</body>
</html>
发布了4 篇原创文章 · 获赞 1 · 访问量 239

猜你喜欢

转载自blog.csdn.net/weixin_45611051/article/details/104975950