/* * TestXPoweredByServlet - "X-Powered-By" is optional thru configuration * For Standalone Tomcat 5, edit conf/server.xml * and ADD xpoweredBy="true" to the * element. Also edit conf/web.xml and CHANGE * xpoweredBy to true */ package servlet_tests; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.net.*; public class TestXPoweredByServlet extends HttpServlet{ private ServletContext context; private PrintWriter out; private String host; private int port; private String headerName = "X-powered-by:"; // EE version private String headerName2 = "X-Powered-By:"; public void init(ServletConfig config) throws ServletException { super.init(config); System.out.println("[TestXPoweredByServlet.init]"); context = config.getServletContext(); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("[TestXPoweredByServlet.doGet]"); doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("[TestXPoweredByServlet.doPost]"); response.setContentType("text/html"); out = response.getWriter(); if (request.getParameter("HeaderName") != null) { headerName = request.getParameter("HeaderName"); headerName = headerName + ":"; } HttpSession session = request.getSession(); out.println(""); out.println(""); out.println("TestXPoweredByServlet

"); if (session != null) { host = request.getServerName(); port = request.getServerPort(); // Invoke TestCookieProperties.jsp and look at X-Powered-By // response header. invokeJsp(); } out.println("
"); out.println(""); } private void invokeJsp() throws IOException { try { Socket sock = new Socket(host, new Integer(port).intValue()); OutputStream os = sock.getOutputStream(); String get = "GET " + "/" + context.getServletContextName() + "/jsp/TestCookieProperties.jsp" + " HTTP/1.0\n"; os.write(get.getBytes()); os.write("\n".getBytes()); InputStream is = sock.getInputStream(); BufferedReader bis = new BufferedReader(new InputStreamReader(is)); String line = null; while ((line = bis.readLine()) != null) { if (line.startsWith(headerName) || line.startsWith(headerName2)) { break; } } if (line != null) { System.out.println("[TestXPoweredByServlet.invokeJsp] " + line); out.print("\"" + headerName + "\" response header has the " + "followings: "); out.println(line.substring(headerName.length() + 1, line.length()) + "
"); } else { out.println("Error: Missing " + headerName + " response header
"); } } catch (Exception e) { out.println("Exception!! " + e + "
"); } } }