private void startHandling(object threadInformation) { try { Tokenizer ip = new Tokenizer((string)client.Client.RemoteEndPoint.ToString(), ":"); // Create the request object Request request = new Request(this.stream, server); try { request.m_ClientIP = ip.nextToken(); } catch (Exception e) { request.server.handleVerbosity(e); } Response response = new Response(ref stream, request); Servlet instance; server.handleVerbosity("Client requested " + request.Page); if (request.Page == "") request.Page = "index"; Type type = Servlet.getServlet(request.Page); if (type != null) { try { instance = (Servlet)Activator.CreateInstance(type); try { if (request.getParameter("method") != null) instance.invokeMethod(type, request.getParameter("method"), request, response); else if (request.Method == "GET") instance.doGet(request, response); else if (request.Method == "POST") instance.doPost(request, response); } catch (Exception) { } } catch (Exception) { request.server.handleVerbosity("Resource " + request.Page + " not found."); } } else if (request.Page == "index") { if (fileExists("index.htm")) response.printFile(server.rootPath + "index.htm", false); else if (fileExists("Index.htm")) response.printFile(server.rootPath + "Index.htm", false); else if (fileExists("index.html")) response.printFile(server.rootPath + "index.html", false); else if (fileExists("Index.html")) response.printFile(server.rootPath + "Index.html", false); else Servlet.doGetIndex(request, response); } else if (fileExists(HTMLHelper.decode(request.Page))) { if (server.rootPath!=null) response.printFile(server.rootPath + HTMLHelper.decode(request.Page), false); } else if (request.Page.ToUpper() == "FAVICON.ICO") { Servlet.doGetFavicon(request, response); } else if (request.Page.ToUpper() == "TOPEKA.PNG") { Servlet.doGetTopekaLogo(request, response); } else if (server.resources.Count>0 && Servlet.findResourceStream(server, request.Page.Replace("/", ".")) != null) { string extension = request.Page.Substring(request.Page.LastIndexOf(".")+1); ResourceAssembly resource_assembly = Servlet.findResourceStream(server, request.Page.Replace("/", ".")); string resource = resource_assembly.assembly_namespace + "." + request.Page.Replace("/", "."); Servlet.printResource(resource_assembly.assembly, resource, extension, request, response); } else { response.statusCode = "404"; response.println("<font face='verdana'>Resource <b>\"" + HTMLHelper.decode(request.Page) + "\"</b> not found.</font>"); } response.flush(); request = null; response = null; } catch (Exception e) { server.handleVerbosity(e); } finally { this.client.Close(); } }
internal static void doGetIndex(Request request, Response response) { response.println("<img src=\"Topeka.png\" border=0 /><br>"); response.println("<font size=1 face=verdana>"); response.println("A lightweight multi-threaded free and easy to use Web Server<br>"); response.println("Programmed by <b>Juanchi</b> @ 2010<br>"); response.println("Server Started: <b>" + request.server.startTime + "</b></br>"); response.println("Server Version: <b>"+Assembly.GetExecutingAssembly().GetName().Version.ToString()+"</b><br>"); response.println("</font>"); }
public override void doGet(Request request, Response response) { response.println("Hello TestServer"); }