Web development server initial prototype.
2 * To change this template, choose Tools | Templates
3 * and open the template in the editor.
5 package org.apidesign.bck2brwsr.dew;
7 import java.io.ByteArrayInputStream;
8 import java.io.ByteArrayOutputStream;
9 import java.io.IOException;
10 import java.io.InputStream;
11 import java.io.InputStreamReader;
12 import java.io.OutputStream;
13 import java.util.logging.Logger;
14 import org.glassfish.grizzly.http.Method;
15 import org.glassfish.grizzly.http.server.HttpHandler;
16 import org.glassfish.grizzly.http.server.Request;
17 import org.glassfish.grizzly.http.server.Response;
18 import org.glassfish.grizzly.http.util.HttpStatus;
19 import org.json.JSONObject;
20 import org.json.JSONTokener;
26 public class Dew extends HttpHandler {
27 private static String html = "Nazdar!";
30 public void service(Request request, Response response) throws Exception {
32 if ( request.getMethod() == Method.POST ) {
33 InputStream is = request.getInputStream();
34 JSONTokener tok = new JSONTokener(new InputStreamReader(is));
35 JSONObject obj = new JSONObject(tok);
36 html = obj.getString("html");
39 response.getOutputStream().write("[]".getBytes());
40 response.setStatus(HttpStatus.OK_200);
45 String r = request.getHttpHandlerPath();
46 if (r == null || r.equals("/")) {
49 if (r.equals("/result.html")) {
50 response.setContentType("text/html");
51 response.getOutputBuffer().write(html);
52 response.setStatus(HttpStatus.OK_200);
56 if (r.startsWith("/")) {
59 if (r.endsWith(".html") || r.endsWith(".xhtml")) {
60 response.setContentType("text/html");
62 OutputStream os = response.getOutputStream();
63 try (InputStream is = Dew.class.getResourceAsStream(r) ) {
64 copyStream(is, os, request.getRequestURL().toString() );
65 } catch (IOException ex) {
66 response.setDetailMessage(ex.getLocalizedMessage());
68 response.setStatus(404);
71 private static final Logger LOG = Logger.getLogger(Dew.class.getName());
73 static void copyStream(InputStream is, OutputStream os, String baseURL) throws IOException {