Online Quiz Application: Quiz Review



I det här inlägget har vi lagt till quizgranskningsfunktionalitet i vår onlinequiz-applikation. Användaren kan se rätt svar för alla frågesportfrågor.

Detta är det tredje inlägget i serien att skapa en onlinequiz-applikation med JSP Servlet.

Om du inte har läst de tidigare inläggen, gå igenom det, eftersom det kommer att göra det lättare för dig att följa det här inlägget och förstå det helt.





Del 1 -

Del 2 - Quiz Application - Implementering av nedräkningstimern



I det här inlägget ska vi lägga till följande funktioner i vår frågesportapplikation

1. Ge användaren möjlighet att granska sina svar när han avslutat frågesporten

2. Markera användarens svar som korrekta eller felaktiga



3. Markera de oförsökta frågorna som obesvarade

Nedan visas ögonblicksbilden av frågesportens resultatsida.

Sidan för frågesport

datavetenskap vad är det?

Vad behöver vi mer för att granskningsfunktionen ska fungera?

Användaren kan avsluta frågesporten när som helst, efter avslutad frågesport har han möjlighet att granska sina svar. Om användaren inte svarar på en fråga och hoppar över den genom att klicka på nästa knapp visas den frågan som obesvarad på granskningssidan.

För att ge användaren en sammanfattning av frågesporten är allt vi behöver göra att spara användarens svar och när han är klar med frågesporten jämför det med det faktiska svaret på frågan.

Om användarens svar överensstämmer med det rätta svaret på frågan, visar vi rätt symbol annars kryss (x) symbol.

Online Quiz ansökan

Vi kommer att lägga till en ny controller som heter ReviewController, som extraherar all information och skickar den till en JSP-sida för att visa.

Obs! Vi hämtar frågor från XML-filen när användaren klickar på nästa eller föregående knapp.

Antag att en användare startar en frågesport och bara försöker en fråga och sedan klickar på Slutför-knappen.

Nu, på frågesportens granskningssida måste vi visa alla frågor med dess alternativ och användarens svar om det var korrekt eller inte. Eftersom användaren i det här scenariot inte slutför hela frågesporten kommer resten av de nio frågorna att visas som obesvarade.

Så när användaren klickar på Review Quiz för att se sina svar tillsammans med rätt svar för den frågan, måste vi hämta alla frågor från XML-filen och dess rätta svar.

Projektstruktur i Eclipse IDE

Obs: Vi har precis inkluderat en ny kontroller ReviewController.

ReviewController.java

@WebServlet ('/ exam / review') public class ReviewController utökar HttpServlet {privat statisk slutlig lång serialVersionUID = 1L / ** * @ se HttpServlet # HttpServlet () * / public ReviewController () {super () // TODO Auto-genererad konstruktörstub} / ** * @see HttpServlet # doGet (HttpServletRequest-begäran, HttpServletResponse-svar) * / skyddad ogiltig doGet (HttpServletRequest-begäran, HttpServletResponse-svar) kastar ServletException, IOException {// TODO Examinerad metod (st) request.getSession (). getAttribute ('currentExam') request.setAttribute ('totalQuestion', exam.getTotalNumberOfQuestions ()) ArrayList reviewQuestionList = new ArrayList () Document dom = exam.getDom () för (int i = 0i

Obs! Jag har angett all nödvändig information i en ArrayList of QuizQuestion och ställt in den ArrayList som attribut i begäran.

ArrayList reviewQuestionList = ny ArrayList () request.setAttribute ('reviewQuestions', reviewQuestionList)

På JSP-sidan måste vi bara hämta värdena som lagras i attributet reviewQuestions.
Jag har skapat en JSP-sida som heter examReview.jsp, som visar frågesportöversikten.

Visar frågesport tillsammans med alternativ

På JSP-sidan använder vi JSTL c: forEach för att iterera över listan över QuizQuestion som ställts in av ReviewController

  
$ {counter.count}. $ {fråga.fråga}

$ {counter.count}. $ {option}

Visar rätt svar

Observera att i XML-filen har jag lagrade alternativ från index 0.

Det var därför vi lade till ett medan vi visade rätt svar för användaren, eftersom det är intuitivt för användaren.

Rätt svar: $ {question.correctOptionIndex + 1} 

Markera en fråga obesvarad

Det är inte obligatoriskt för användaren att försöka alla frågor. Han kan bara hoppa över den genom att klicka på nästa knapp. Så hur får vi reda på om en fråga har besvarats eller inte?

Jag har gjort en ändring i Exam constructor, så att när vi skapar en ny Exam, för varje fråga, ställer vi också in användarens svar till -1 initialt. Så när användaren startar frågesporten kommer vi att ha användarval för varje fråga även om användaren bara klickar på avslutningsknappen på en fråga mellan frågesporten.

Men om användaren faktiskt svarar på en fråga kommer -1 att ersättas av användarens val för den frågan.

public Exam (String test, int totalNumberOfQuestions) kastar SAXException, ParserConfigurationException, IOException, URISyntaxException {dom = CreateDOM.getDOM (test) för (int i = 0i

Så om användaren inte svarar på en fråga och hoppar till nästa fråga eller bara klickar på Slut-knappen kommer det första svaret på -1 att vara där. På JSP-sidan kan vi jämföra om användarvalet är -1 eller inte. Om det är -1 betyder det att användaren inte svarade på den frågan. Och vi kommer att markera den frågan som obesvarad.

hur man skapar en fil i java
Obesvarad 

Visar användarens svar

Om användaren faktiskt besvarade en fråga kommer det första svaret på -1 att ersättas med användarens svar och det kommer att ersättas med 1,2,3 eller 4, eftersom vi har fyra alternativ för varje fråga.

Du valde: $ {question.userSelected} 

Vi gör ett c: om test för att säkerställa att användaren faktiskt svarade på en fråga och sedan visar användarens svar.

Markera ett svar som korrekt

Om användarens val och rätta svar för frågan stämmer överens, visar vi en bild som visar rätt markering.

   

Markera ett svar som felaktigt

Ett enkelt c: om test görs för att jämföra användarens svar med rätt alternativ för frågan. Om båda inte är lika betyder det att användaren besvarade frågan felaktigt och vi visar en bild som visar ett korsmärke.

   

Klicka på nedladdningsknappen för att ladda ner koden.

[buttonleads form_title = ”Ladda ner kod” redirect_url = https: //edureka.wistia.com/medias/q2kgiq4su3/download? media_file_id = 67378724 course_id = 44 button_text = ”Ladda ner kod”]

Har du en fråga till oss? Vänligen nämna det i kommentarfältet så återkommer vi till dig.

Relaterade inlägg: