blob: b1483276ef642e54a7994adbf3161ec9468a01ae [file] [log] [blame]
package com.psibt.framework.net;
import java.io.*;
import java.net.*;
import java.util.*;
/**
* This class implements a RequestHandler for the root path "/" in the PluggableHTTPServer.
* A simple HTML message will be replied to the client.
*
* @author <a HREF="mailto:V.Mentzner@psi-bt.de">Volker Mentzner</a>
*/
public class RootRequestHandler implements HTTPRequestHandler {
private String title;
private String description;
private String handledPath;
private String ReplyType = "Content-type: text/html\r\n\r\n";
private String ReplyHTML = "<HTML><HEAD><TITLE>Root</TITLE></HEAD>\r\n"
+ "<BODY><H1>Root</H1>\r\n"
+ "</BODY></HTML>\r\n";
/**
* Creates a new RootRequestHandler object
*/
public RootRequestHandler() {
this.setTitle("root page");
this.setDescription("root page");
this.setHandledPath("/");
}
/**
* Gets the content type of the reply HTTP message
*
* @return content type as String
*/
public String getReplyType() {
return this.ReplyType;
}
/**
* Sets the content type of the reply HTTP message
*
* @param ReplyType - content type as String
*/
public void setReplyType(String ReplyType) {
this.ReplyType = ReplyType;
}
/**
* Gets the HTML data of the reply HTTP message
*
* @return HTML message as String
*/
public String getReplyHTML() {
return this.ReplyHTML;
}
/**
* Sets the HTML data of the reply HTTP message
*
* @param ReplyHTML - HTML message as String
*/
public void setReplyHTML(String ReplyHTML) {
this.ReplyHTML = ReplyHTML;
}
/**
* Gets the title for html page
*/
public String getTitle() {
return this.title;
}
/**
* Sets the title for html page
*/
public void setTitle(String title) {
this.title = title;
}
/**
* Gets the description for html page
*/
public String getDescription() {
return this.description;
}
/**
* Sets the description for html page
*/
public void setDescription(String description) {
this.description = description;
}
/**
* Gets the server path
*
* @return the server path
*/
public String getHandledPath() {
return this.handledPath;
}
/**
* Sets the server path
*
* @param path - the server path
*/
public void setHandledPath(String path) {
this.handledPath = path;
}
/**
* Handles the given request and writes the reply to the given out-stream.
*
* @param request - client browser request
* @param out - Out stream for sending data to client browser
* @return if the request was handled by this handler : true, else : false
*/
public boolean handleRequest(String request, Writer out) {
String path = "";
String query = null;
try {
URL url = new URL("http://localhost"+request);
path = url.getPath();
query = url.getPath();
if (path.equals(handledPath) == false) {
return false;
}
out.write("HTTP/1.0 200 OK\r\n");
if (ReplyType != null)
out.write(ReplyType);
if (ReplyHTML != null)
out.write(ReplyHTML);
out.flush();
return true;
} catch (Exception ex) {
return false;
}
}
}