Sol·licitud de prova en línia: revisió de prova



En aquest post hem afegit la funcionalitat de revisió de qüestionaris a la nostra sol·licitud de prova en línia. L'usuari pot veure les respostes correctes per a totes les preguntes del qüestionari.

Aquest és el tercer post de la sèrie de creació d'una aplicació de prova en línia mitjançant JSP Servlet.

Si no heu llegit les publicacions anteriors, consulteu-la, ja que us facilitarà seguir aquesta publicació i entendre-la completament.





Part 1 -

Part 2 - Sol·licitud de prova: implementació del temporitzador de compte enrere



En aquest post afegirem les següents funcionalitats a la nostra aplicació de prova

1. Donar a l'usuari l'opció de revisar les seves respostes en acabar el qüestionari

2. Marcar les respostes de l'usuari com a correctes o incorrectes



3. Marcar les preguntes sense intentar com a sense resposta

A continuació es mostra la instantània de la pàgina de resultats de la prova creada.

Pàgina de resultats de la prova

Què més necessitem perquè funcioni la revisió?

L'usuari pot acabar el qüestionari en qualsevol moment, en acabar el qüestionari, tindrà l'opció de revisar les seves respostes. Si l'usuari no respon una pregunta i la salta fent clic al botó següent, aquesta pregunta es mostrarà com a sense resposta a la pàgina de revisió de l'examen.

Per proporcionar a l'usuari el resum del qüestionari, tot el que hem de fer és desar les respostes de l'usuari i, quan acaba el qüestionari, compareu-lo amb la resposta real de la pregunta.

Si la resposta de l’usuari coincideix amb la resposta correcta de la pregunta, mostrarem el símbol correcte, el símbol de la creu (x).

Sol·licitud de prova en línia

Afegirem un nou controlador anomenat ReviewController, que extreurà totes les dades i les enviarà a una pàgina JSP per mostrar-les.

Nota: obtenim preguntes del fitxer XML quan l'usuari fa clic al botó següent o anterior.

Suposem que un usuari inicia un qüestionari i intenta només una pregunta i, a continuació, fa clic al botó Finalitza.

Ara, a la pàgina de revisió del concurs, hem de mostrar totes les preguntes amb les seves opcions i la resposta de l’usuari si era correcta o no. Com que en aquest escenari l'usuari no completa el qüestionari complet, la resta de les 9 preguntes es mostraran sense resposta.

analitzant fitxers XML a Java

Per tant, quan l’usuari fa clic al Test de revisió per veure les seves respostes juntament amb la resposta correcta per a aquesta pregunta, hem de buscar totes les preguntes del fitxer XML i la seva resposta correcta.

Estructura del projecte en IDE Eclipse

Nota: Acabem d’incloure un nou controlador ReviewController.

ReviewController.java

@WebServlet ('/ exam / review') public class ReviewController estén HttpServlet {private static long long serialVersionUID = 1L / ** * @ veure HttpServlet # HttpServlet () * / public ReviewController () {super () // TODO Generat automàticament constructor stub} / ** * @ veure HttpServlet # doGet (HttpServletRequest request, HttpServletResponse response) * / protected void doGet (HttpServletRequest request, HttpServletResponse response) llança ServletException, IOException {// TODO examen generat automàticament request.getSession (). getAttribute ('currentExam') request.setAttribute ('totalQuestion', exam.getTotalNumberOfQuestions ()) ArrayList reviewQuestionList = new ArrayList () Document dom = exam.getDom () for (int i = 0i

Nota: He configurat tota la informació necessària en una ArrayList de QuizQuestion i he configurat aquesta ArrayList com a atribut en l'àmbit de la sol·licitud.

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

A la pàgina JSP només hem de recuperar els valors emmagatzemats a l'atribut reviewQuestions.
He creat una pàgina JSP anomenada examReview.jsp, que mostrarà el resum de la prova.

Mostrant QuizQuestion juntament amb les opcions

A la pàgina JSP fem servir JSTL c: forEach per repetir la llista de QuizQuestion establerta per ReviewController

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

$ {counter.count}. $ {option}

Es mostra la resposta correcta

Tingueu en compte que al fitxer XML he emmagatzemat opcions a partir de l’índex 0.

classe __init__ pitó

Per això, n’hem afegit una mentre mostrem la resposta correcta a l’usuari, ja que és intuïtiu per a l’usuari.

Resposta correcta: $ {question.correctOptionIndex + 1} 

Marcar una pregunta sense resposta

No és obligatori que l’usuari provi totes les preguntes. Només pot saltar-lo fent clic al botó següent. Llavors, com esbrinar si es va respondre o no a una pregunta?

He fet un canvi al constructor de l’examen, de manera que quan creem un examen nou, per a cada pregunta també establim la resposta de l’usuari com a -1 inicialment. Per tant, quan l'usuari comenci el test, tindrem la selecció de l'usuari per a cada pregunta, fins i tot si l'usuari només fa clic al botó d'acabar de qualsevol pregunta que hi ha entre el qüestionari.

Però si l’usuari respon realment a una pregunta, -1 se substituirà per la selecció de l’usuari per a aquesta pregunta.

Examen públic (Prova de cadenes, int totalNumberOfQuestions) llença SAXException, ParserConfigurationException, IOException, URISyntaxException {dom = CreateDOM.getDOM (test) per a (int i = 0i

Per tant, si l’usuari no respon cap pregunta i passa a la següent pregunta o simplement fa clic al botó d’acabar, la resposta inicial de -1 hi serà. A la pàgina JSP podem comparar si la selecció de l’usuari és -1 o no. Si és -1, significa que l'usuari no ha respost a aquesta pregunta. I marcarem aquesta pregunta com a sense resposta.

Sense resposta 

Es mostra la resposta de l'usuari

Si l’usuari respon realment a una pregunta, la resposta inicial de -1 se substituirà per la resposta de l’usuari i se substituirà per 1,2,3 o 4, ja que tenim 4 opcions per a cada pregunta.

Heu escollit: $ {question.userSelected} 

Estem fent una prova c: if per assegurar-nos que l’usuari ha respost realment a una pregunta i, a continuació, mostra la resposta de l’usuari.

Marcant una resposta com a correcta

Si la selecció de l'usuari i la resposta correcta per a la pregunta coincideixen, mostrarem una imatge amb una marca correcta.

   

Marcar una resposta com a incorrecta

Una simple c: si es fa una prova per comparar la resposta de l’usuari amb l’opció correcta de la pregunta. Si tots dos no són iguals, significa que l'usuari ha respost la pregunta de manera incorrecta i mostrem una imatge que mostra una marca creuada.

   

Feu clic al botó de descàrrega per descarregar el codi.

[buttonleads form_title = 'Codi de descàrrega' redirect_url = https: //edureka.wistia.com/medias/q2kgiq4su3/download? media_file_id = 67378724 course_id = 44 button_text = 'Codi de descàrrega']

Tens alguna pregunta? Esmenta’l a la secció de comentaris i et respondrem.

Articles Relacionats: