DEPARTMENT OF COMPUTER APPLICATIONS
THANTHAI HANS ROEVER COLLEGE
(AUTONOMOUS)
(Affiliated to Bharathidasan University)
Accredited with ‘A’Grade by NAAC (3rd cycle) with CGPA 3.23 out of 4
ELAMBALUR (P.O), PERAMBALUR – 621 220
PRACTICAL RECORD
M.C.A
(Master of Computer Applications)
Advanced Java Programming Lab
24PCA1CC2BP
Name : _______________________
Class :_______________________
Reg No : _______________________
First Semester
November - 2024
DEPARTMENT OF COMPUTER APPLICATIONS
THANTHAI HANS ROEVER COLLEGE
(AUTONOMOUS)
(Affiliated to Bharathidasan University)
Accredited with ‘A’Grade by NAAC (3rd cycle) with CGPA 3.23 out of 4
ELAMBALUR (P.O), PERAMBALUR – 621 220
Certificate
This is to certify that the bonafide record of the work done in the computer
Laboratory during the academic year 2024-2025 was submitted by
Name :__________________________
Reg.No :_________________________
Class :___________________________
Semester :________________________
Title :____________________________
Subject Code :______________________
Practical Examination held on _________________
Staff In-Charge Head of the Department
Examiners
1.
2.
CONTENTS
Page
S.NO Date Title of the Program Staff Sign.
No.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Develop a program to implement Calculator using Swing technology
package com.example.calcdemo;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;
public class Calculator extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
private JPanel contentPane;
private JTextField inputField;
private JButton[] numberButtons = new JButton[10];
private JButton[] functionButtons = new JButton[8];
private JButton addButton, subButton, mulButton, divButton;
private JButton decButton, equButton, delButton, clrButton;
private JPanel panel;
private double num1 = 0, num2 = 0, result = 0;
private char operator;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Calculator frame = new Calculator();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Calculator() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setTitle("Calculator");
setSize(420, 550);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(null);
// Input field
inputField = new JTextField();
inputField.setBounds(50, 25, 300, 50);
inputField.setFont(new Font("Arial", Font.BOLD, 20));
inputField.setEditable(false);
add(inputField);
// Function buttons
addButton = new JButton("+");
subButton = new JButton("-");
mulButton = new JButton("*");
divButton = new JButton("/");
decButton = new JButton(".");
equButton = new JButton("=");
delButton = new JButton("Del");
clrButton = new JButton("Clr");
functionButtons[0] = addButton;
functionButtons[1] = subButton;
functionButtons[2] = mulButton;
functionButtons[3] = divButton;
functionButtons[4] = decButton;
functionButtons[5] = equButton;
functionButtons[6] = delButton;
functionButtons[7] = clrButton;
for (int i = 0; i < 8; i++) {
functionButtons[i].addActionListener(this);
functionButtons[i].setFont(new Font("Arial", Font.BOLD, 18));
functionButtons[i].setFocusable(false);
}
// Number buttons
for (int i = 0; i < 10; i++) {
numberButtons[i] = new JButton(String.valueOf(i));
numberButtons[i].addActionListener(this);
numberButtons[i].setFont(new Font("Arial", Font.BOLD, 18));
numberButtons[i].setFocusable(false);
}
// Panel for buttons
panel = new JPanel();
panel.setBounds(50, 100, 300, 300);
panel.setLayout(new GridLayout(4, 4, 10, 10));
// Adding buttons to panel
panel.add(numberButtons[1]);
panel.add(numberButtons[2]);
panel.add(numberButtons[3]);
panel.add(addButton);
panel.add(numberButtons[4]);
panel.add(numberButtons[5]);
panel.add(numberButtons[6]);
panel.add(subButton);
panel.add(numberButtons[7]);
panel.add(numberButtons[8]);
panel.add(numberButtons[9]);
panel.add(mulButton);
panel.add(decButton);
panel.add(numberButtons[0]);
panel.add(equButton);
panel.add(divButton);
add(panel);
delButton.setBounds(50, 430, 145, 50);
clrButton.setBounds(205, 430, 145, 50);
add(delButton);
add(clrButton);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
for (int i = 0; i < 10; i++) {
if (e.getSource() == numberButtons[i]) {
inputField.setText(inputField.getText().concat(String.valueOf(i)));
}
}
if (e.getSource() == decButton) {
inputField.setText(inputField.getText().concat("."));
}
if (e.getSource() == addButton) {
num1 = Double.parseDouble(inputField.getText());
operator = '+';
inputField.setText("");
}
if (e.getSource() == subButton) {
num1 = Double.parseDouble(inputField.getText());
operator = '-';
inputField.setText("");
}
if (e.getSource() == mulButton) {
num1 = Double.parseDouble(inputField.getText());
operator = '*';
inputField.setText("");
}
if (e.getSource() == divButton) {
num1 = Double.parseDouble(inputField.getText());
operator = '/';
inputField.setText("");
}
if (e.getSource() == equButton) {
num2 = Double.parseDouble(inputField.getText());
switch (operator) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
result = num1 / num2;
break;
}
inputField.setText(String.valueOf(result));
num1 = result;
}
if (e.getSource() == clrButton) {
inputField.setText("");
}
if (e.getSource() == delButton) {
String string = inputField.getText();
inputField.setText("");
for (int i = 0; i < string.length() - 1; i++) {
inputField.setText(inputField.getText() + string.charAt(i));
}
} }}
Output Screen:
Develop a program that displays two textboxes for entering a students‟
Rollno and Name with appropriate labels and buttons.
package com.example.labeldemo;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class Frame1 extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel contentPane;
private JTextField regnoField;
private JTextField nameField;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Frame1 frame = new Frame1();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Frame1() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel lblNewLabel = new JLabel("Enter ur Register No");
lblNewLabel.setBounds(55, 50, 107, 14);
contentPane.add(lblNewLabel);
JLabel lblNewLabel_1 = new JLabel("Enter ur Name");
lblNewLabel_1.setBounds(55, 105, 107, 14);
contentPane.add(lblNewLabel_1);
regnoField = new JTextField();
regnoField.setBounds(205, 47, 99, 20);
contentPane.add(regnoField);
regnoField.setColumns(10);
nameField = new JTextField();
nameField.setBounds(205, 102, 99, 20);
contentPane.add(nameField);
nameField.setColumns(10);
JButton btnSubmit = new JButton("Submit");
btnSubmit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String regno = regnoField.getText();
String name = nameField.getText();
JOptionPane.showMessageDialog(null,"Roll No: "
+ regno + "\nName: " + name );
}
});
btnSubmit.setBounds(55, 160, 89, 23);
contentPane.add(btnSubmit);
JButton btnClear = new JButton("Clear");
btnClear.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
regnoField.setText("");
nameField.setText("");
}
});
btnClear.setBounds(186, 160, 89, 23);
contentPane.add(btnClear);
}
}
Output Screen:
Develop a Java program that makes a connection with database using
JDBC and prints metadata of this connection.
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DatabaseMeta {
public static void main(String[] args) {
// Database URL, username, and password (replace with your database
details)
String url = "jdbc:mysql://localhost:3306/db";
String username = "root";
String password = "";
// Establish the connection
try (Connection connection = DriverManager.getConnection(url,
username, password)) {
// Print connection success message
System.out.println("Connected to the database successfully!");
// Retrieve and print database metadata
DatabaseMetaData metadata = connection.getMetaData();
// Print some useful metadata information
System.out.println("Database Product Name: " +
metadata.getDatabaseProductName());
System.out.println("Database Product Version: " +
metadata.getDatabaseProductVersion());
System.out.println("Driver Name: " + metadata.getDriverName());
System.out.println("Driver Version: " +
metadata.getDriverVersion());
System.out.println("JDBC Major Version: " +
metadata.getJDBCMajorVersion());
System.out.println("JDBC Minor Version: " +
metadata.getJDBCMinorVersion());
System.out.println("URL: " + metadata.getURL());
System.out.println("User Name: " + metadata.getUserName());
} catch (SQLException e) {
System.err.println("Connection failed: " + e.getMessage());
}
}
}
Output Screen:
Develop a java program for one way TCP communication for server
and client, where server will response to client with current data and
time.
import java.io.*;
import java.net.*;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateServer {
public static void main(String[] args) {
try {
// Create a server socket that listens on port 6789
ServerSocket serverSocket = new ServerSocket(6789);
System.out.println("Server is waiting for client on port 6789...");
// Wait for a client to connect
Socket connectionSocket = serverSocket.accept();
System.out.println("Client connected.");
// Get the output stream of the client
DataOutputStream outToClient = new
DataOutputStream(connectionSocket.getOutputStream());
// Generate the current date and time
String currentTime = new SimpleDateFormat("yyyy/MM/dd
HH:mm:ss").format(new Date());
// Send the current date and time to the client
outToClient.writeBytes("Current Date and Time: " + currentTime + "\n");
// Close the connection
connectionSocket.close();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
DateClient.java
import java.io.*;
import java.net.*;
public class DateClient {
public static void main(String[] args) {
try {
// Create a socket to connect to the server on localhost and port 6789
Socket clientSocket = new Socket("localhost", 6789);
// Get the input stream from the server
BufferedReader inFromServer = new BufferedReader(new
InputStreamReader(clientSocket.getInputStream()));
// Read the date and time sent by the server
String serverResponse = inFromServer.readLine();
// Print the response from the server
System.out.println("From Server: " + serverResponse);
// Close the connection
clientSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Output Screen:
Develop a java program for two way TCP communication for server
and client. It should look like a simple chat application.
ChatServer.java
import java.io.*;
import java.net.*;
public class ChatServer {
public static void main(String[] args) {
try {
// Create server socket on port 8080
ServerSocket serverSocket = new ServerSocket(8080);
System.out.println("Server is waiting for client connection...");
// Accept client connection
Socket socket = serverSocket.accept();
System.out.println("Client connected.");
// Get input and output streams for communication
BufferedReader inputFromClient = new BufferedReader(new
InputStreamReader(socket.getInputStream()));
PrintWriter outputToClient = new
PrintWriter(socket.getOutputStream(), true);
// Get input from server side (console)
BufferedReader serverInput = new BufferedReader(new
InputStreamReader(System.in));
String clientMessage, serverMessage;
// Chat loop: read from client and respond
while (true) {
// Receive message from client
clientMessage = inputFromClient.readLine();
if (clientMessage.equalsIgnoreCase("bye")) {
System.out.println("Client has disconnected.");
break;
}
System.out.println("Client: " + clientMessage);
// Send message to client
System.out.print("Server: ");
serverMessage = serverInput.readLine();
outputToClient.println(serverMessage);
if (serverMessage.equalsIgnoreCase("bye")) {
System.out.println("Server is shutting down.");
break;
}
}
// Close resources
inputFromClient.close();
outputToClient.close();
socket.close();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
ChatClient.java
import java.io.*;
import java.net.*;
public class ChatClient {
public static void main(String[] args) {
try {
// Connect to the server at localhost on port 8080
Socket socket = new Socket("localhost", 8080);
// Get input and output streams for communication
BufferedReader inputFromServer = new BufferedReader(new
InputStreamReader(socket.getInputStream()));
PrintWriter outputToServer = new
PrintWriter(socket.getOutputStream(), true);
// Get input from client side (console)
BufferedReader clientInput = new BufferedReader(new
InputStreamReader(System.in));
String serverMessage, clientMessage;
// Chat loop: send to server and receive responses
while (true) {
// Send message to server
System.out.print("Client: ");
clientMessage = clientInput.readLine();
outputToServer.println(clientMessage);
if (clientMessage.equalsIgnoreCase("bye")) {
System.out.println("Client is exiting.");
break;
}
// Receive message from server
serverMessage = inputFromServer.readLine();
System.out.println("Server: " + serverMessage);
if (serverMessage.equalsIgnoreCase("bye")) {
System.out.println("Server has closed the connection.");
break;
}
}
// Close resources
inputFromServer.close();
outputToServer.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Output Screens:
Develop a java program for UDP Communication where client will send
name of country and server will return the capital of that country.
UDPServer.java
import java.net.*;
import java.util.HashMap;
public class UDPServer {
public static void main(String[] args) throws Exception {
DatagramSocket serverSocket = new DatagramSocket(9876);
// Store some countries and their capitals in a HashMap
HashMap<String, String> countryCapitals = new HashMap<>();
countryCapitals.put("India", "New Delhi");
countryCapitals.put("USA", "Washington, D.C.");
countryCapitals.put("Germany", "Berlin");
countryCapitals.put("France", "Paris");
byte[] receiveData = new byte[1024];
byte[] sendData = new byte[1024];
System.out.println("Server is running and waiting for client request...");
while (true) {
DatagramPacket receivePacket = new DatagramPacket(receiveData,
receiveData.length);
serverSocket.receive(receivePacket);
String country = new String(receivePacket.getData(), 0,
receivePacket.getLength());
System.out.println("Received country: " + country);
// Find the capital of the country
String capital = countryCapitals.getOrDefault(country, "Capital not
found");
sendData = capital.getBytes();
InetAddress clientIPAddress = receivePacket.getAddress();
int port = receivePacket.getPort();
DatagramPacket sendPacket = new DatagramPacket(sendData,
sendData.length, clientIPAddress, port);
serverSocket.send(sendPacket);
}
}
}
UDPClient.java
import java.net.*;
import java.util.Scanner;
public class UDPClient {
public static void main(String[] args) throws Exception {
DatagramSocket clientSocket = new DatagramSocket();
InetAddress IPAddress = InetAddress.getByName("localhost");
byte[] sendData = new byte[1024];
byte[] receiveData = new byte[1024];
Scanner scanner = new Scanner(System.in);
System.out.print("Enter the name of a country: ");
String country = scanner.nextLine();
sendData = country.getBytes();
DatagramPacket sendPacket = new DatagramPacket(sendData,
sendData.length, IPAddress, 9876);
clientSocket.send(sendPacket);
DatagramPacket receivePacket = new DatagramPacket(receiveData,
receiveData.length);
clientSocket.receive(receivePacket);
String capital = new String(receivePacket.getData(), 0,
receivePacket.getLength());
System.out.println("Capital of " + country + " is: " + capital);
clientSocket.close();
scanner.close();
}
}
Output Screen:
Create Servlet That Prints „Hello World‟ and Today‟s Date.
HelloServlet.java
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
/**
* Servlet implementation class HelloServlet
*/
public class HelloServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public HelloServlet() {
super();
}
/**
* @see HttpServlet#doGet(HttpServletRequest request,
HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
response.setContentType("text/html");
// Get the current date and time
SimpleDateFormat formatter = new SimpleDateFormat("EEE, d
MMM yyyy HH:mm:ss");
Date date = new Date();
// Get the response's writer
PrintWriter out = response.getWriter();
// Print Hello World and current date to the HTML response
out.println("<html><body>");
out.println("<h1>Hello, World!</h1>");
out.println("<p>Today's date and time is: " +
formatter.format(date) + "</p>");
out.println("</body></html>");
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}}
Output Screen:
Create Servlet for login page, if the username and password is correct then
prints message “Hello username” else a message” login failed”
Login.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Login Form</title>
</head>
<body>
<h2>Login Form</h2>
<form action="LoginServlet" method="post">
<label for="username">Username:</label>
<input type="text" id="username" name="username"
required><br><br>
<label for="password">Password:</label>
<input type="password" id="password" name="password"
required><br><br>
<input type="submit" value="Login">
</form>
</body>
</html>
LoginServlet.java
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
/**
* Servlet implementation class LoginServlet
*/
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public LoginServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doPost(HttpServletRequest request,
HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
PrintWriter out = response.getWriter();
String correctUsername = "Ram";
String correctPassword = "Roever123";
if (username.equals(correctUsername) &&
password.equals(correctPassword)) {
out.println("<html><body>");
out.println("<h1>Hello, " + username + "!</h1>");
out.println("</body></html>");
} else {
out.println("<html><body>");
out.println("<h1>Login failed. Invalid username or password.</h1>");
out.println("</body></html>");
}
}}
Output Screens:
Create Servlet that uses cookies to store the number of times a user has
visited the servlet.
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.Cookie;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
/**
* Servlet implementation class VisitCountServlet
*/
public class VisitCountServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public VisitCountServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request,
HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
// Get all cookies from the request
Cookie[] cookies = request.getCookies();
int visitCount = 0;
boolean found = false;
// Check if there's already a cookie for visit count
if (cookies != null) {
for (Cookie cookie : cookies) {
if (cookie.getName().equals("visitCount")) {
visitCount = Integer.parseInt(cookie.getValue());
found = true;
break;
}
}
}
// If no visitCount cookie is found, this is the first visit
if (!found) {
visitCount = 1;
} else {
// Increment visit count if cookie exists
visitCount++;
}
// Create or update the visitCount cookie
Cookie visitCountCookie = new Cookie("visitCount",
Integer.toString(visitCount));
visitCountCookie.setMaxAge(60 * 60 * 24 * 365); // Cookie will expire
in 1 year
response.addCookie(visitCountCookie);
// Display the visit count to the user
out.println("<html><body>");
out.println("<h1>Welcome!</h1>");
out.println("<p>You have visited this page " + visitCount + "
times.</p>");
out.println("</body></html>");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request,
HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
Output Screens:
Create a Servlet for demo of KBC game. There will be continuous two
or three pages with different MCQs. Each correct answer carries Rs.
10000. At the end as per user‟s selection of answers total prize he won
should be declared. User should not be allowed to backtrack.
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;
/**
* Servlet implementation class KBCServlet
*/
public class KBCServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
// Array of questions
private String[] questions = {
"Q1: What is the capital of India?",
"Q2: Who is known as the Father of the Nation in India?",
"Q3: What is the currency of Japan?"
};
// Array of answer options
private String[][] options = {
{"New Delhi", "Mumbai", "Kolkata", "Chennai"},
{"Mahatma Gandhi", "Jawaharlal Nehru", "Subhas Chandra Bose", "Bhagat
Singh"},
{"Yen", "Dollar", "Rupee", "Pound"}
};
// Array of correct answers (indices corresponding to the options array)
private int[] correctAnswers = {0, 0, 0}; // Correct answer index for each
question
/**
* @see HttpServlet#HttpServlet()
*/
public KBCServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request,
HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
// TODO Auto-generated method stub
// Get the current session or create a new one
HttpSession session = request.getSession(true);
// Get the current question number
Integer currentQuestion = (Integer) session.getAttribute("currentQuestion");
if (currentQuestion == null) {
currentQuestion = 0;
session.setAttribute("currentQuestion", currentQuestion);
session.setAttribute("score", 0);
// Generate the MCQ form for the current question
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html><body>");
out.println("<h1>Welcome to KBC Game!</h1>");
// If all questions have been answered, show the final score
if (currentQuestion >= questions.length) {
int score = (Integer) session.getAttribute("score");
out.println("<h2>Congratulations! You've completed the game.</h2>");
out.println("<h3>Total prize: Rs. " + score + "00</h3>");
session.invalidate(); // End the session
} else {
// Display the current question and options
out.println("<h2>" + questions[currentQuestion] + "</h2>");
out.println("<form method='post' action='KBCServlet'>");
for (int i = 0; i < options[currentQuestion].length; i++) {
out.println("<input type='radio' name='answer' value='" + i + "' required>
" + options[currentQuestion][i] + "<br>");
out.println("<input type='submit' value='Submit Answer'>");
out.println("</form>");
out.println("</body></html>");
/**
* @see HttpServlet#doPost(HttpServletRequest request,
HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
// TODO Auto-generated method stub
// Get the session
HttpSession session = request.getSession(false);
// Get the current question number
Integer currentQuestion = (Integer) session.getAttribute("currentQuestion");
// Get the user's selected answer
int selectedAnswer = Integer.parseInt(request.getParameter("answer"));
// Get the current score from the session
int score = (Integer) session.getAttribute("score");
// Check if the answer is correct
if (selectedAnswer == correctAnswers[currentQuestion]) {
score += 1; // Each correct answer adds Rs. 10,000
// Update the session with the new score and increment the question number
session.setAttribute("score", score);
currentQuestion++;
session.setAttribute("currentQuestion", currentQuestion);
// Redirect back to the same servlet to display the next question
response.sendRedirect("KBCServlet");
Output Screens: