Slip No 4 Q B

Write a SERVLET program that provides information about a HTTP request from a client, such as IP address and browser type. The servlet also provides information about the server on which the servlet is running, such as the operating system type, and the
names of currently loaded servlets.

Answer

import java.io.; import java.util.;
import javax.servlet.; import javax.servlet.http.;
import javax.servlet.annotation.WebServlet;

@WebServlet("/RequestInfoServlet")
public class RequestInfoServlet extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    response.setContentType("text/html");
    PrintWriter out = response.getWriter();

    // Client Information
    String clientIP = request.getRemoteAddr();
    String browserType = request.getHeader("User-Agent");

    // Server Information
    String osName = System.getProperty("os.name");
    String serverName = request.getServerName();
    int serverPort = request.getServerPort();

    // Loaded Servlets
    ServletContext context = getServletContext();
    Map<String, ? extends ServletRegistration> servlets =
            context.getServletRegistrations();

    out.println("<html><head><title>Request & Server Information</title></head>");
    out.println("<body>");

    out.println("<h2>Client Information</h2>");
    out.println("<p><b>Client IP Address:</b> " + clientIP + "</p>");
    out.println("<p><b>Browser Type:</b> " + browserType + "</p>");

    out.println("<h2>Server Information</h2>");
    out.println("<p><b>Operating System:</b> " + osName + "</p>");
    out.println("<p><b>Server Name:</b> " + serverName + "</p>");
    out.println("<p><b>Server Port:</b> " + serverPort + "</p>");

    out.println("<h2>Currently Loaded Servlets</h2>");
    out.println("<ul>");
    for (String servletName : servlets.keySet()) {
        out.println("<li>" + servletName + "</li>");
    }
    out.println("</ul>");

    out.println("</body></html>");
    out.close();
}
}

Spread the love

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top