jsp作业——简单的试卷和自动打分

时间:2022-07-23
本文章向大家介绍jsp作业——简单的试卷和自动打分,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1.jsp

基本html表单 单选框radio和多选框checkbox使用时,所有选项的name要相同。

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>试卷</title>
</head>
<body>
    <header>
        <h1 style="text-align:center;">试卷测试</h1>
    </header>
    <main>
        <form action="2.jsp" method="get">
            <div id="t1">
                <h1>一、填空题</h1>
                <h3>html语义化标签自带缩进的是哪个标签?</h3>
                <input type="text" name="tiankong" id="tiankong" >  
            </div>
        
            <div id="t2">
                <h1>二、单选题</h1>
                <h3>下面哪个属性不会让 div 脱离文档流(normal flow)?</h3>
                <input type="radio" name="danxuan" value="A">A.position: absolute;
                <input type="radio" name="danxuan" value="B">B.position: fixed;
                <br>
                <input type="radio" name="danxuan" value="C">C.position: relative;
                <input type="radio" name="danxuan" value="D">D.float:left;          
            </div>
        
            <div id="t3">
                <h1>三、多选题</h1>
                <h3>可继承的样式属性包括哪些</h3>
                <input type="checkbox" name="duoxuan" value="A">A.color
                <input type="checkbox" name="duoxuan" value="B">B.background-color
                <br>
                <input type="checkbox" name="duoxuan" value="C">C.font-size
                <input type="checkbox" name="duoxuan" value="D">D.border
            </div>
            
            <div id="t4">
                <h1>四、判断题</h1>
                <h3>中国是伟大的</h3>
                <input type="radio" name="panduan" value="true">是的
                <input type="radio" name="panduan" value="false">不是
            </div>
            
            <button type="submit">提交答案</button>
        </form>
    
    </main>
</body>
</html>

pingfen.jsp

相关知识: 1.对于多选框获得的是一个字符串数组,在打印数组的时候要使用Array.toString(arr),需要引入java.util.Arrays

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8" import="java.util.Arrays"%>

2.字符串对比使用equals()函数

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8" import ="java.util.Arrays"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>试题评分</title>
</head>
<body>

    <%
        int score = 0;
        String tiankong = request.getParameter("tiankong");
        String danxuan = request.getParameter("danxuan");
        String[] duoxuan = request.getParameterValues("duoxuan");//Arrays.toString(duoxuan)
        String panduan = request.getParameter("panduan");
        out.println(tiankong+"<br>"+danxuan+"<br>"+Arrays.toString(duoxuan)+"<br>"+panduan+"<br>");

        if(tiankong.equals("block quote")){
            score+=30;
        }else{
            out.println("<p style="color:red;">填空题错误!</p>");
        }

        if(danxuan.equals("C")){
            score+=30;
        }else{
            out.println("<p style="color:red;">单选题错误!</p>");
        }
        
        if(duoxuan.length == 2){
            if(duoxuan[0].equals("A")&& duoxuan[1].equals("C")){
                score+=30;
            }else{
                out.println("<p style="color:red;">多选题错误!</p>");
            }
        }else{
            out.println("<p style="color:red;">多选题错误!<p>");
        }
        
        if(panduan.equals("true")){
            score+=10;
        }else{
            out.println("<p style="color:red;">判断题错误!<p>");
        }
        
        out.println("<h1>分数:"+score+"</h1>");
    %>
    

    
</body>
</html>