package javaforce.utils; /** Simple web server that serves files from current folder. * * @author pquiring * * Created : Mar 4, 2014 */ import java.io.*; import javaforce.*; import javaforce.service.*; public class web implements WebHandler { public static void main(String args[]) { System.out.println("Starting web server on port 80..."); Web server = new Web(); server.start(new web(), 80, false); } public void doPost(WebRequest req, WebResponse res) { doGet(req, res); } public void doGet(WebRequest req, WebResponse res) { String url = req.getURL(); if (url.equals("")) url = "/"; if (url.endsWith("/")) { //generate folder listing String path = url; if (path.startsWith("/")) path = url.substring(1); if (path.equals("")) path = "."; File folder = new File(path); File files[] = folder.listFiles(); if (files == null) files = new File[0]; StringBuilder sb = new StringBuilder(); try { sb.append("Index of " + url); sb.append("<br><br>"); for(int a=0;a<files.length;a++) { String name = files[a].getName(); if (files[a].isDirectory()) { sb.append("<a href='" + name + "/'>"); sb.append(name); sb.append("</a><br>"); } else { sb.append("<a href='" + name + "'>"); sb.append(name); sb.append("</a><br>"); } } OutputStream os = res.getOutputStream(); os.write(sb.toString().getBytes()); } catch (Exception e) { JFLog.log(e); } } else { //send file if (url.startsWith("/")) url = url.substring(1); FileInputStream fis = null; try { File file = new File(url); if (!file.exists()) { res.setStatus(404, "Not found"); return; } fis = new FileInputStream(url); JF.copyAll(fis, res.getOutputStream()); fis.close(); } catch (Exception e) { if (fis != null) try{fis.close();} catch (Exception e2) {} } } } }