Online quiztoepassing: quizrecensie



In dit bericht hebben we quizbeoordelingsfunctionaliteit toegevoegd aan onze online quiztoepassing. De gebruiker kan de juiste antwoorden op alle quizvragen zien.

Dit is het derde bericht in de serie over het maken van een online quiztoepassing met JSP Servlet.

Als je de vorige berichten niet hebt gelezen, neem deze dan door, want dat maakt het gemakkelijker voor je om dit bericht te volgen en volledig te begrijpen.





Deel 1 -

Deel 2 - Quiz-applicatie - Countdown Timer implementeren



In deze post gaan we de volgende functionaliteiten toevoegen aan onze quizapplicatie

1. De gebruiker een optie geven om zijn antwoorden na het beëindigen van de quiz te bekijken

2. Het markeren van de reacties van de gebruiker als correct of incorrect



3. De onbeantwoorde vragen markeren als onbeantwoord

Hieronder ziet u de momentopname van de gemaakte quizresultatenpagina.

Quiz Resultaatpagina

Wat hebben we nog meer nodig om de beoordelingsfunctionaliteit te laten werken?

De gebruiker kan de quiz op elk moment afmaken, bij het beëindigen van de quiz heeft hij de mogelijkheid om zijn antwoorden te bekijken. Als de gebruiker een vraag niet beantwoordt en deze overslaat door op de knop Volgende te klikken, wordt die vraag als onbeantwoord weergegeven op de toetsoverzichtspagina.

Om de gebruiker de samenvatting van de quiz te geven, hoeven we alleen de gebruikersreacties op te slaan en wanneer hij de quiz heeft voltooid, deze te vergelijken met het daadwerkelijke antwoord van de vraag.

Als het antwoord van de gebruiker overeenkomt met het juiste antwoord op de vraag, dan geven we het juiste symbool anders kruis (x) -symbool weer.

Online Quiz-applicatie

We zullen een nieuwe controller toevoegen met de naam ReviewController, die alle gegevens extraheert en naar een JSP-pagina stuurt om te tonen.

Opmerking: we halen vragen op uit het XML-bestand wanneer de gebruiker op de volgende of vorige knop klikt.

Stel dat een gebruiker een quiz start en slechts één vraag probeert en vervolgens op de knop Voltooien klikt.

Nu moeten we op de quizbeoordelingspagina alle vragen met de opties en het antwoord van de gebruiker laten zien, of het nu juist was of niet. Omdat in dit scenario de gebruiker niet de hele quiz voltooit, wordt de rest van de 9 vragen als onbeantwoord weergegeven.

Dus als de gebruiker op Review Quiz klikt om zijn antwoorden samen met het juiste antwoord op die vraag te zien, moeten we alle vragen uit het XML-bestand en het juiste antwoord halen.

Projectstructuur in Eclipse IDE

Opmerking: we hebben zojuist een nieuwe controller ReviewController toegevoegd.

ReviewController.java

@WebServlet ('/ exam / review') public class ReviewController breidt HttpServlet uit {private static final long serialVersionUID = 1L / ** * @see HttpServlet # HttpServlet () * / public ReviewController () {super () // TODO Automatisch gegenereerd constructor stub} / ** * @see HttpServlet # doGet (HttpServletRequest-verzoek, HttpServletResponse-antwoord) * / protected void doGet (HttpServletRequest-verzoek, HttpServletResponse-antwoord) gooit ServletException, IOException {// TODO Exam Exam-examenmethode (stub Exam) Exam-examenmethode request.getSession (). getAttribute ('currentExam') request.setAttribute ('totalQuestion', exam.getTotalNumberOfQuestions ()) ArrayList reviewQuestionList = nieuwe ArrayList () Document dom = exam.getDom () voor (int i = 0i

Opmerking: ik heb alle vereiste informatie in een ArrayList van QuizQuestion ingesteld en die ArrayList ingesteld als een attribuut in het aanvraagbereik.

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

In de JSP-pagina hoeven we alleen de waarden op te halen die zijn opgeslagen in het kenmerk reviewQuestions.
Ik heb een JSP-pagina gemaakt met de naam examReview.jsp, waarop de samenvatting van de quiz wordt weergegeven.

Toont QuizQuestion samen met opties

In de JSP-pagina gebruiken we JSTL c: forEach om de lijst met QuizQuestion te herhalen die is ingesteld door ReviewController

  
$ {counter.count}. $ {question.question}

$ {counter.count}. $ {optie}

Toont het juiste antwoord

Merk op dat ik in XML-bestand opgeslagen opties heb beginnend bij index 0.

Daarom hebben we er een toegevoegd terwijl we het juiste antwoord aan de gebruiker lieten zien, want dat is intuïtief voor de gebruiker.

Correct antwoord: $ {question.correctOptionIndex + 1} 

Een vraag als onbeantwoord markeren

Het is niet verplicht voor de gebruiker om alle vragen te proberen. Hij kan het gewoon overslaan door op de volgende knop te klikken. Dus hoe komen we erachter of een vraag is beantwoord of niet?

Ik heb één wijziging aangebracht in de examenconstructor, zodat wanneer we een nieuw examen maken, we voor elke vraag in eerste instantie ook het antwoord van de gebruiker instellen op -1. Dus wanneer de gebruiker de quiz start, hebben we de gebruikersselectie voor elke vraag, zelfs als de gebruiker gewoon op de knop Voltooien klikt op een vraag tussen de quiz in.

Maar als de gebruiker een vraag daadwerkelijk beantwoordt, wordt -1 vervangen door de selectie van de gebruiker voor die vraag.

public Exam (String test, int totalNumberOfQuestions) gooit SAXException, ParserConfigurationException, IOException, URISyntaxException {dom = CreateDOM.getDOM (test) voor (int i = 0i

Dus als de gebruiker een vraag niet beantwoordt en naar de volgende vraag springt of gewoon op de voltooiingsknop klikt, is het eerste antwoord van -1 daar. Op de JSP-pagina kunnen we vergelijken of de gebruikersselectie -1 is of niet. Als het -1 is, betekent dit dat de gebruiker die vraag niet heeft beantwoord. En we zullen die vraag als onbeantwoord markeren.

Onbeantwoord 

Gebruikersreactie weergeven

Als de gebruiker een vraag daadwerkelijk heeft beantwoord, wordt het eerste antwoord van -1 vervangen door het antwoord van de gebruiker en wordt het vervangen door 1, 2, 3 of 4, aangezien we voor elke vraag 4 opties hebben.

U heeft gekozen: $ {question.userSelected} 

We maken een c: if-test om er zeker van te zijn dat de gebruiker een vraag daadwerkelijk heeft beantwoord en vervolgens het antwoord van de gebruiker weer te geven.

Een antwoord als correct markeren

Als de selectie van de gebruiker en het juiste antwoord voor de vraag overeenkomen, geven we een afbeelding weer met een correct teken.

   

Een antwoord als onjuist markeren

Een simpele c: if test wordt gedaan om de reactie van de gebruiker te vergelijken met de juiste optie van de vraag. Als beide niet gelijk zijn, betekent dit dat de gebruiker de vraag verkeerd heeft beantwoord en wordt een afbeelding weergegeven met een kruisje.

   

Klik op de downloadknop om de code te downloaden.

[buttonleads form_title = 'Downloadcode' redirect_url = https: //edureka.wistia.com/medias/q2kgiq4su3/download? media_file_id = 67378724 course_id = 44 button_text = 'Downloadcode']

Heeft u een vraag voor ons? Vermeld het in het opmerkingengedeelte en we nemen contact met u op.

Gerelateerde berichten:

php instellen op windows