/*Kristina Laukkonen. *Uppgift 1.1.2 *En servlet som skriver ut omgivningsvariabler */ import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; import com.oreilly.servlet.VersionDetector; public class A112 extends HttpServlet { //Skriver ut omgivningsvariabler med hjälp av en PrintWriter public void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("text/plain"); PrintWriter out = res.getWriter(); HttpSession session = req.getSession(); //Hämtar sessions och ger dess värde ServletContext context = getServletContext(); //Hämtar SerlvetContext och ger dess värde //skriver ut server-info out.println("SERVER-SIDE INFORMATION\n"); out.println("SERVLET INFORMATION"); out.println("Servlet name: " + getServletName() + "\n"); //skriver ut namnet på servern out.println("****"); out.println("SERVER INFO"); out.println("Server name: " + req.getServerName()); out.println("Server port: " + req.getServerPort()); out.println("Server info: " + context.getServerInfo() + "\n"); out.println("Server Info version: " + getServerInfoVersion(context.getServerInfo())); out.println("****"); out.println("SERVER ATTRIBUTES"); //skapar element som skrivs ut i "text/plain" Enumeration enum = context.getAttributeNames(); while (enum.hasMoreElements()) { String name = (String) enum.nextElement(); out.println(" context.getAttribute(\"" + name + "\"): " + context.getAttribute(name)); } //skriver ut den Runtime-versions out.println("****"); out.println("RUNTIME VERSIONS"); out.println("Servlet version: " + VersionDetector.getServletVersion()); out.println("Java version: " + VersionDetector.getJavaVersion() + "\n"); //skriver ut klient-information out.println("****"); out.println("CLIENT-SIDE INFORMATION"); out.println("Remote Host: " + req.getRemoteHost()); out.println("Remote User: " + req.getRemoteUser()); out.println("Remote Adress: " + req.getRemoteAddr() + "\n"); //skapar element som skrivs ut i "text/plain" out.println("****"); out.println("HEADERS"); Enumeration names = req.getHeaderNames(); while (names.hasMoreElements()) { String name = (String) names.nextElement(); Enumeration values = req.getHeaders(name); if (values != null) { while (values.hasMoreElements()) { String value = (String) values.nextElement(); out.println(" " + names + " : " + value); } } } } //hämtar SeverInfoName som läggs i "serverInfo" private String getServerInfoName(String serverInfo) { int slash = serverInfo.indexOf('/'); if (slash == -1) return serverInfo; else return serverInfo.substring (0, slash); } // Hämtar version info private String getServerInfoVersion(String serverInfo) { 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); } }