Home| New Wiki | | Login | User registry | Home Tree PDF
WebServer
Owner:csilva, Version: 6, Date:Wed 29, November 2006,

This is a very small web server (26kb w/sources) with support for http modules similar to servlets. Supports file retrieval from a root path and administration. It's meant for a portable tool and for embedded web servers.

Este es un pequeño webserver de 26Kb (fuentes incluidos) y que soporta modulos similares a servlets. Solo tiene soporte como web server de archivos (no dinamico) ademas de un modulo de administracion que se acede a traves de: http://sitio:puerta/admin/. Está pensado para soporte a webservers inmersos en otros proyectos.

Se puede ejecutar desde una carpeta y utilizará una carpeta ./www (por omision) como raiz.

java -jar webserver.jar

El archivo welcome debe llamarse index.html y debe estar presente en las carpetas para que funcione una llamada del estilo.

http://localhost:8080/

Tambien se puede usar con mas opciones.

java -jar webserver.jar -p 80 -r /var/www/html -m /etc/mime.types

Download

Los fuentes se pueden bajar aqui:

/lib/webserver.jar

Listado 1: Funcion (de HttpModule) que retorna los archivos desde el filesystem:

public void doTask (HttpRequest request, HttpResponse response)
     throws IOException  {		
  File test = new File(httpContext.getRoot(), request.getUri());
  if (test.isDirectory())
    test = new File(test,WELCOME_FILE);
  if (!test.exists()) {
    response.setStatusCode (404);
    return;
  }		
  
  String ext = getFileExt(test);
  
  String mimeType = httpContext.getMimeTypes().getMimeType(ext);
  
  response.setContentLength((int) test.length());
  response.setContentType(mimeType);
  InputStream is = new FileInputStream(test);
  OutputStream out = response.getOutputStream();
  byte buf[] = new byte[1024*8196];
  int nread = 0;
  while((nread=is.read(buf))>0)
    out.write(buf, 0, nread);			
  is.close();
  out.close();
}


History - Extract PDF - Extract Tree as PDF

Last Modified

Sun, May 18 Mon, May 12 Mon, Apr 28 Sun, Apr 13 Mon, Mar 24 Sat, Feb 23 Tue, Feb 19 Sat, Feb 16 Wed, Feb 13

Home| New Wiki