Copy & Paste this Code into Main.java file
Code Examples
Java
// PortalServlet class simulates basic servlet lifecycle and request handling
class PortalServlet {
// init() method is called before processing requests
public void init() {
System.out.println("Portal Servlet Initialized");
}
// service() method handles different student requests
public synchronized void service(String request) {
// Dispatch request based on request type
if (request.equalsIgnoreCase("login")) {
System.out.println("Forwarded to Login Page");
}
else if (request.equalsIgnoreCase("lecture")) {
System.out.println("Forwarded to Lecture Page");
}
else if (request.equalsIgnoreCase("logout")) {
System.out.println("Forwarded to Logout Page");
}
else {
System.out.println("Invalid Request");
}
}
// destroy() method is called after all requests are completed
public void destroy() {
System.out.println("\nPortal Servlet Destroyed");
}
}
// StudentRequest class represents each student request as a separate thread
class StudentRequest extends Thread {
// Data members to store request type and servlet object
private String request;
private PortalServlet servlet;
// Constructor receives thread name, request type, and servlet object
public StudentRequest(String threadName, String request, PortalServlet servlet) {
super(threadName);
this.request = request;
this.servlet = servlet;
}
// run() method executes when the thread starts
public void run() {
// Display which student is processing which request
System.out.println("\n" + getName() + " processing " + request + " request");
// Call servlet service method to handle the request
servlet.service(request);
// Display completion message after request is handled
System.out.println(request + " request completed");
}
}
// Main class must be public because file name is Main.java
public class Main {
public static void main(String[] args) {
PortalServlet servlet = new PortalServlet();
servlet.init();
StudentRequest r1 = new StudentRequest("Student-1", "login", servlet);
StudentRequest r2 = new StudentRequest("Student-2", "lecture", servlet);
StudentRequest r3 = new StudentRequest("Student-3", "logout", servlet);
r1.start();
r2.start();
r3.start();
try {
r1.join();
r2.join();
r3.join();
} catch (InterruptedException e) {
System.out.println("Request interrupted");
}
servlet.destroy();
}
}