Post Views: 3
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();
}
}