/*
* 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 + "
");
}
}
}