0

我正在创建一个测验应用程序。在这里,有 5 个 jsp 页面,有 5 个不同的测验。如果我使用 1 个 jsp 页面和结果页面,它工作正常..ie;它从 QuizPage5.jsp 重定向并在 ResultPage.jsp 中显示结果。我需要将 QuizPage1.jsp、QuizPage2.jsp、QuizPage3.jsp、QuizPage4.jsp 和 QuizPage5.jsp 的所有结果显示到 ResultPage.jsp。

我用了

在 jsp1 中传递值。

<form action="">
<input type="hidden" name="hidden" value="hidden">
<input type="submit" value="submit"></form>

在jsp2中获取价值

String value=request.getParameter("hidden");

但是,我越来越java.lang.NullPointerException

这是我的代码..

QuizPage1.jsp

<html>  
    <head>  
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
            <script language="JavaScript">  

            function check()  
               {  
                   var radio_choice = false;  
                   for (counter = 0; counter < myform.grp.length; counter++)  
                    {  
                        if (myform.grp[counter].checked)  
                        radio_choice = true;  
                    }  
                        if (!radio_choice)  
                         {  
                            alert("Please select one.")  
                            return (false);  
                         }  
                         return(true);  
                     }  
</script>  
    </head>  
   <body> 
        <h3>Quiz No.1</h3>

        Q1.Which one of the following is the Capital of India?<br><br>  
        <form action="QuizPage2.jsp" method="post" name="myform" onsubmit="return check();">  
            <input type="radio" name="grp" value="New Delhi" >New Delhi<br>  
             <input type="radio" name="grp" value="Kolkata" >Kolkata<br>  
                 <input type="radio" name="grp" value="Chennai" >Chennai<br>  
                     <input type="radio" name="grp" value="Mumbai" >Mumbai<br>  
                     <br><br><input type="submit" value="Next Question"> 
                     <input type="hidden" name="hidden" value="grp">
                     <input type="submit" value ="Back" onclick="window.history.back();"/> 

        </form>  
      </body>



</html> 

QuizPage2.jsp

<html>  
    <head>  
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
            <script language="JavaScript">  

            function check()  
               {  
                   var radio_choice = false;  
                   for (counter = 0; counter < myform2.grp2.length; counter++)  
                    {  
                        if (myform2.grp2[counter].checked)  
                        radio_choice = true;  
                    }  
                        if (!radio_choice)  
                         {  
                            alert("Please select any one Answer");  
                            return (false);  
                         }  
                         return(true);  
                     }  
</script>  
    </head>  
    <body>  
        <h3>Quiz No.2</h3>

        Q2. Where is Chennai Located?<br><br>  
        <form action="QuizPage3.jsp"method="post" name="myform2" onsubmit="return check();">  
            <input type="radio" name="grp2" value="Karnataka" >Karnataka<br>  
             <input type="radio" name="grp2" value="Tamilnadu" >Tamilnadu<br>  
                 <input type="radio" name="grp2" value="Andhra Pradesh" >Andhra Pradesh<br>  
                     <input type="radio" name="grp2" value="Maharashtra" >Maharashtra<br>  
                     <br><br><input type="submit" value="Next Question">  
                      <input type="hidden" name="hidden" value="grp2">
                     <input type="submit" value ="Back" onclick="window.history.back();"/> 


        </form>  
        <%
            String s1=request.getParameter("grp");
         %>
      </body>  
</html> 

QuizPage3.jsp

<html>  
    <head>  
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
            <script language="JavaScript">  

            function check()  
               {  
                   var radio_choice = false;  
                   for (counter = 0; counter < myform3.grp3.length; counter++)  
                    {  
                        if (myform3.grp3[counter].checked)  
                        radio_choice = true;  
                    }  
                        if (!radio_choice)  
                         {  
                            alert("Please select any one Answer");  
                            return (false);  
                         }  
                         return(true);  
                     }  
</script>  
    </head>  
    <body>  
        <h3>Quiz No.3</h3>
        Q3. What is the largest state in the USA<br><br>  
        <form action="QuizPage4.jsp"method="post" name="myform" onsubmit="return check();">  
            <input type="radio" name="grp3" value="New York" >New York<br>  
             <input type="radio" name="grp3" value="Alaska" >Alaska<br>  
                 <input type="radio" name="grp3" value="California" >California<br>  
                     <input type="radio" name="grp3" value="Melbourne" >Melbourne<br>  
                     <br><br><input type="submit" value="Next Question">  
                     <input type="hidden" name="hidden" value="grp3">
                     <input type="submit" value ="Back" onclick="window.history.back();"/> 

        </form>  
        <%
            String s2=request.getParameter("grp2");
         %>
      </body>  
</html> 

QuizPage4.jsp

<html>  
    <head>  
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
            <script language="JavaScript">  

            function check()  
               {  
                   var radio_choice = false;  
                   for (counter = 0; counter < myform4.grp4.length; counter++)  
                    {  
                        if (myform4.grp4[counter].checked)  
                        radio_choice = true;  
                    }  
                        if (!radio_choice)  
                         {  
                            alert("Please select any one Answer");  
                            return (false);  
                         }  
                         return(true);  
                     }  
</script>  
    </head>  
    <body>  
        <h3>Quiz No.4</h3>
        Q4. The famous Dilwara Temples are situated in<br><br>  
        <form action="QuizPage5.jsp"method="post" name="myform" onsubmit="return check();">  
            <input type="radio" name="grp4" value="Uttar Pradesh" >Uttar Pradesh<br>  
             <input type="radio" name="grp4" value="Maharashtra" >Maharashtra<br>  
                 <input type="radio" name="grp4" value="Andhra Pradesh" >Andhra Pradesh<br>  
                     <input type="radio" name="grp4" value="Rajasthan" >Rajasthan<br>  
                     <br><br><input type="submit" value="Next Question"> 
                     <input type="hidden" name="hidden" value="grp4">
                     <input type="submit" value ="Back" onclick="window.history.back();"/> 

        </form> 
        <%
            String s3=request.getParameter("grp3");
         %>
      </body>  
</html> 

QuizPage5.jsp

<html>  
    <head>  
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
            <script language="JavaScript">  

            function check()  
               {  
                   var radio_choice = false;  
                   for (counter = 0; counter < myform5.grp5.length; counter++)  
                    {  
                        if (myform5.grp5[counter].checked)  
                        radio_choice = true;  
                    }  
                        if (!radio_choice)  
                         {  
                            alert("Please select any one Answer");  
                            return (false);  
                         }  
                         return(true);  
                     }  
</script>  
    </head>  
    <body>  
        <h3>Quiz No.5</h3>
        Q5. The Indian Institute of Science is located at<br><br>  
        <form action="ResultPage.jsp"method="post" name="myform" onsubmit="return check();">  
            <input type="radio" name="grp5" value="Chennai" >Chennai<br>  
             <input type="radio" name="grp5" value="Bangalore" >Bangalore<br>  
                 <input type="radio" name="grp5" value="Mumbai" >Mumbai<br>  
                     <input type="radio" name="grp5" value="Hyderabad" >Hyderabad<br>  
                     <br><br><input type="submit" value="Show Result"> 
                     <input type="hidden" name="hidden" value="grp5"/>


        </form> 
        <%
            String s4=request.getParameter("grp4");
         %>
      </body>  
</html> 

结果页面.jsp

<html>  
    <head>  
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
        <title>Quiz Result</title>  
    </head>  
    <body>  
          <%  
     String answer="New Delhi";  
     String s1=request.getParameter("grp");  
     if(s1.equals(answer))  
         {  
        out.println("Correct Answer");  
         }  
     else  
         {out.println("Wrong Answer! The Correct Answer is :"+answer);  
     }  
    %> 
    <%  
     String answer2="Tamilnadu";  
     String s2=request.getParameter("grp2");  
     if(s2.equals(answer2))  
         {  
        out.println("Correct Answer");  
         }  
     else  
         {out.println("Wrong Answer! The Correct Answer is :"+answer2);  
     }  
    %> 
    <%  
     String answer3="Alaska";  
     String s3=request.getParameter("grp3");  
     if(s3.equals(answer3))  
         {  
        out.println("Correct Answer");  
         }  
     else  
         {out.println("Wrong Answer! The Correct Answer is :"+answer3);  
     }  
    %> 
    <%  
     String answer4="Rajasthan";  
     String s4=request.getParameter("grp4");  
     if(s4.equals(answer4))  
         {  
        out.println("Correct Answer");  
         }  
     else  
         {out.println("Wrong Answer! The Correct Answer is :"+answer4);  
     }  
    %> 
        <%  
         String answer5="Bangalore";  
         String s5=request.getParameter("grp5");  
         if(s5.equals(answer5))  
             {  
            out.println("Correct Answer");  
             }  
         else  
             {out.println("Wrong Answer! The Correct Answer is :"+answer5);  
         }  
        %> 


    </body> 
</html> 

非常感谢您的帮助。提前致谢

4

4 回答 4

5

如果您想要可以跨多个页面访问的数据,请考虑使用会话来存储数据。例如,如果 page1.jsp 向 page2.jsp 提交了一个表单参数“page1Result”,那么在 page2.jsp 中,执行以下操作:

String page1Result = request.getParameter("page1Result");
request.getSession().setAttribute("page1Result", page1Result);

然后在某个时候(比如第 5 页),您可以访问 page1 值,如下所示:

String page1Value = (String)request.getSession().getAttribute("page1Result);

==================================================== =============================== 所以将此应用于您的代码:

在 page2 jsp 中,将文件末尾的 scriptlet 更改为:

    <%
     String s1=request.getParameter("grp");
     request.getSession().setAttribute("s1", s1);
     %>

在第 3 页 JSP 中,将脚本 let 更改为:

    <%
     String s2=request.getParameter("grp2");
     request.getSession().setAttribute("s2", s2);
     %>

等等。

最后在 ResultPage.jsp 上(仅显示答案 2 的示例一行)

out.println("Wrong Answer! The Correct Answer for question 2 is :"+session.getAttribute("s2"));
于 2013-11-15T05:12:01.090 回答
0

在 jsp1 上

String passThis = "pass this value";
request.setAttribute("param1",passThis);

发送到 jsp 2

在jsp2中

String getParam = request.getAttribute("param1");
于 2013-11-15T05:10:44.220 回答
0

切换问题JavaScript并立即提交所有内容。

于 2013-11-15T05:11:20.967 回答
0

我没有详细看代码。但是这个问题需要一个多请求范式。但是 result.jsp 虽然从请求对象中获取了所有答案。而它应该是会话对象。每个问题的答案都应该存储在会话中。所以它是可访问的并且不会被破坏。

于 2013-11-15T05:15:19.670 回答