ServerSnoop.java Source code

Java tutorial

Introduction

Here is the source code for ServerSnoop.java

Source

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;

import javax.servlet.GenericServlet;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class ServerSnoop extends GenericServlet {

    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        res.setContentType("text/plain");
        PrintWriter out = res.getWriter();

        ServletContext context = getServletContext();
        out.println("req.getServerName(): " + req.getServerName());
        out.println("req.getServerPort(): " + req.getServerPort());
        out.println("context.getServerInfo(): " + context.getServerInfo());
        out.println("getServerInfo() name: " + getServerInfoName(context.getServerInfo()));
        out.println("getServerInfo() version: " + getServerInfoVersion(context.getServerInfo()));
        out.println("context.getAttributeNames():");
        Enumeration e = context.getAttributeNames();
        while (e.hasMoreElements()) {
            String name = (String) e.nextElement();
            out.println("  context.getAttribute(\"" + name + "\"): " + context.getAttribute(name));
        }
    }

    private String getServerInfoName(String serverInfo) {
        int slash = serverInfo.indexOf('/');
        if (slash == -1)
            return serverInfo;
        else
            return serverInfo.substring(0, slash);
    }

    private String getServerInfoVersion(String serverInfo) {
        // Version info is everything between the slash and the space
        int slash = serverInfo.indexOf('/');
        if (slash == -1)
            return null;
        int space = serverInfo.indexOf(' ', slash);
        if (space == -1)
            space = serverInfo.length();
        return serverInfo.substring(slash + 1, space);
    }
}