Create an online multiple-choice quiz using JSP/Servlets technology. The quiz should draw questions from an array of predefined questions (at least fifteen). You should use a meaningful topic for your questions and there should be no repeated questions/answers. Questions should be implemented based on a class Question as follows:
- 2 Question constructors (default and non-default)
- Private fields
1) Description (String)
2) Answers (String array or ArraList of four elements)
3) CorrectAnswer (integer that represent the position of the correct answer in the array/ArrayList)
4) Difficulty (integer that can have values of 1 - easy, 2 - average, or 3 - hard)
- get/set methods for all the fields
Every question should be displayed in a different page and proper navigation should be provided for users to move through questions of the quiz. Quiz should randomly pick 5 questions from the array of questions but they should all be different questions.
The last page of the quiz should display the score of the quiz both as a "percentage" and "x out of 5" format.
1. Quiz should keep track of how many users have taken the quiz since the server has been restarted and how many users are currently taking the quiz. This information should be displayed for all users to see.
2. Quiz should contain at least one question from each difficulty levels (1 - easy, 2 - average, 3 - hard)
3. If the user scores less than 60%, on the last page of the quiz, they should be given an option to retake the quiz.
4. If they score 60%, "You have barely passed the test." message should be displayed.
5. If they score 80%, "Congratulations! You almost got a perfect score." message should be displayed.
6. If they score 100%, "You are a genius!" message should be displayed.