Veebiviktoriini veebirakendus: viktoriini ülevaade



Selles postituses oleme oma veebiviktoriinirakendusele lisanud viktoriini ülevaatuse funktsionaalsuse. Kasutaja näeb kõigile viktoriiniküsimustele õigeid vastuseid.

See on JSP Servleti abil veebiviktoriinirakenduse loomise seeria kolmas postitus.

Kui te pole eelmisi postitusi lugenud, vaadake seda läbi, sest see hõlbustab teil selle postituse jälgimist ja sellest täielikku mõistmist.





1. osa -

2. osa - Viktoriinirakendus - taimeri rakendamine



Selles postituses lisame oma viktoriinirakendusele järgmised funktsioonid

1. Andes kasutajale võimaluse oma vastused viktoriini lõpuleviimisel üle vaadata

2. Kasutaja vastuste õigeks või valeks märkimine



3. Püüdmata küsimuste märkimine vastuseta

Allpool on viktoriini tulemuste lehe hetktõmmis.

Viktoriini tulemuste leht

Mida veel vajame, et ülevaatefunktsioon toimiks?

Kasutaja saab viktoriini igal ajal lõpetada, viktoriini lõppedes on tal võimalus oma vastused üle vaadata. Kui kasutaja ei vasta küsimusele ja jätab selle järgmisel nupul klõpsates vahele, kuvatakse see küsimus eksami ülevaatuse lehel vastuseta.

Kasutajale viktoriini kokkuvõtte esitamiseks peame vaid salvestama kasutaja vastused ja kui ta viktoriini lõpetab, võrrelda seda küsimuse tegeliku vastusega.

Kui kasutaja vastus vastab küsimusele õige vastusega, kuvame õige sümboli muu rist (x) sümbol.

Veebiviktoriini rakendus

Lisame uue kontrolleri nimega ReviewController, mis eraldab kõik andmed ja saadab need JSP-lehele kuvamiseks.

Märkus. Hankime küsimusi XML-failist, kui kasutaja klõpsab järgmisel või eelmisel nupul.

kas saate Java-s teha hulga objekte

Oletame, et kasutaja alustab viktoriini ja proovib ainult ühte küsimust ning klõpsab seejärel nuppu Lõpeta.

Nüüd peame viktoriini ülevaatuse lehel näitama kõiki küsimusi koos võimalustega ja kasutaja vastust, kas see oli õige või mitte. Kuna selle stsenaariumi korral ei lõpeta kasutaja kogu viktoriini, kuvatakse ülejäänud 9 küsimust vastuseta.

Nii et kui kasutaja klõpsab ülevaatuse viktoriinil, et näha oma vastuseid koos selle küsimuse õige vastusega, peame kõik küsimused tooma XML-failist ja selle õige vastuse.

Projekti struktuur Eclipse IDE-s

Märkus. Lisasime äsja ühe uue kontrolleri ReviewController.

ReviewController.java

@WebServlet ('/ exam / review') avaliku klassi ReviewController laiendab HttpServlet {private static final long serialVersionUID = 1L / ** * @see HttpServlet # HttpServlet () * / public ReviewController () {super () // TODO automaatselt loodud konstruktori stub} / ** * @see HttpServlet # doGet (HttpServletRequest päring, HttpServletResponse vastus) * / kaitstud void doGet (HttpServletRequest päring, HttpServletResponse vastus) viskab ServletException, IOException {Exam TODO Exam Exam request.getSession (). getAttribute ('currentExam') request.setAttribute ('totalQuestion', exam.getTotalNumberOfQuestions ()) ArrayList reviewQuestionList = new ArrayList () Dokumendi dom = exam.getDom () jaoks (int i = 0i

Märkus. Olen määranud kogu nõutava teabe QuizQuestioni massiiviloendisse ja määranud selle massiiviloendi päringu ulatuse atribuudiks.

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

JSP-lehel peame lihtsalt leidma atribuudi reviewQuestions salvestatud väärtused.
Olen loonud JSP lehe nimega examReview.jsp, mis näitab viktoriini kokkuvõtet.

QuizQuestioni kuvamine koos võimalustega

JSP-lehel kasutame JSTL c: forEachi, et korrata ReviewControlleri määratud QuizQuestioni loendit

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

$ {counter.count}. $ {option}

Kuvatakse õige vastus

Pange tähele, et XML-faili olen salvestanud suvandeid alates indeksist 0.

Seetõttu lisasime ühe, näidates samal ajal kasutajale õiget vastust, kuna see on kasutajale intuitiivne.

Õige vastus: $ {question.correctOptionIndex + 1} 

Küsimuse märkimine vastuseta

Kasutaja ei pea kõiki küsimusi proovima. Ta saab selle lihtsalt vahele jätta, klõpsates järgmisel nupul. Kuidas siis teada saada, kas küsimusele vastati või mitte?

Olen teinud eksamikonstruktoris ühe muudatuse, nii et uue eksami loomisel määrasime iga küsimuse jaoks ka kasutaja vastuseks esialgu -1. Niisiis, kui kasutaja viktoriini alustab, on meil iga küsimuse jaoks kasutaja valik, isegi kui kasutaja klõpsab viktoriini vahel oleval küsimusel lihtsalt nuppu Lõpeta.

Kuid kui kasutaja tegelikult vastab küsimusele, asendatakse -1 kasutaja selle küsimuse valimisega.

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

Nii et kui kasutaja ei vasta küsimusele ja hüppab järgmise küsimuse juurde või klõpsab lihtsalt nuppu Lõpeta, on esialgne vastus -1. JSP-lehel saame võrrelda, kas kasutajate valik on -1 või mitte. Kui see on -1, tähendab see, et kasutaja ei vastanud sellele küsimusele. Ja märgime selle küsimuse vastuseta.

Vastuseta 

Kuvatakse kasutaja vastus

Kui kasutaja tegelikult küsimusele vastas, asendatakse esialgne vastus -1 kasutaja vastusega ja see asendatakse väärtusega 1,2,3 või 4, kuna meil on iga küsimuse jaoks neli võimalust.

Teie valisite: $ {question.userSelected} 

Teeme testi c: if, et veenduda, et kasutaja tegelikult vastas küsimusele, ja kuvada seejärel kasutaja vastus.

Vastuse märkimine õigeks

Kui kasutaja valik ja küsimusele vastab õige vastus, kuvame pildi, millel on õige märk.

   

Vastuse märkimine valeks

Lihtne c: kui tehakse test kasutaja vastuse võrdlemiseks küsimuse õige valikuga. Kui mõlemad pole võrdsed, tähendab see, et kasutaja vastas küsimusele valesti ja kuvame ristmärki kujutava pildi.

   

Koodi allalaadimiseks klõpsake nuppu Laadi alla.

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

Kas teil on meile küsimus? Palun mainige seda kommentaaride jaotises ja võtame teiega ühendust.

Seonduvad postitused: