diff options
author | ritchie <ritchie@gmx.at> | 2015-05-14 09:02:50 +0200 |
---|---|---|
committer | ritchie <ritchie@gmx.at> | 2015-05-14 09:02:50 +0200 |
commit | 5e2e2f19e06b9f4a01c6da83a2297eb18fe2b546 (patch) | |
tree | ebf8b2e1d2cd0516de354b3f417ac79f905278dc /samples/src/main/java/fi/iki | |
parent | 6a77bee0dad6e34e9789b5065c4367286f619efd (diff) | |
download | nanohttpd-5e2e2f19e06b9f4a01c6da83a2297eb18fe2b546.tar.gz |
reponces now created by factorymethods that can be overwritten, solves
#94
Diffstat (limited to 'samples/src/main/java/fi/iki')
3 files changed, 55 insertions, 54 deletions
diff --git a/samples/src/main/java/fi/iki/elonen/HelloServer.java b/samples/src/main/java/fi/iki/elonen/HelloServer.java index 7b8c9f0..ef250d5 100644 --- a/samples/src/main/java/fi/iki/elonen/HelloServer.java +++ b/samples/src/main/java/fi/iki/elonen/HelloServer.java @@ -8,18 +8,18 @@ package fi.iki.elonen; * %% * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: - * + * * 1. Redistributions of source code must retain the above copyright notice, this * list of conditions and the following disclaimer. - * + * * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. - * + * * 3. Neither the name of the nanohttpd nor the names of its contributors * may be used to endorse or promote products derived from this software without * specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. @@ -46,6 +46,10 @@ public class HelloServer extends NanoHTTPD { */ private static final Logger LOG = Logger.getLogger(HelloServer.class.getName()); + public static void main(String[] args) { + ServerRunner.run(HelloServer.class); + } + public HelloServer() { super(8080); } @@ -54,21 +58,18 @@ public class HelloServer extends NanoHTTPD { public Response serve(IHTTPSession session) { Method method = session.getMethod(); String uri = session.getUri(); - LOG.info(method + " '" + uri + "' "); + HelloServer.LOG.info(method + " '" + uri + "' "); String msg = "<html><body><h1>Hello server</h1>\n"; Map<String, String> parms = session.getParms(); - if (parms.get("username") == null) + if (parms.get("username") == null) { msg += "<form action='?' method='get'>\n" + " <p>Your name: <input type='text' name='username'></p>\n" + "</form>\n"; - else + } else { msg += "<p>Hello, " + parms.get("username") + "!</p>"; + } msg += "</body></html>\n"; - return new NanoHTTPD.Response(msg); - } - - public static void main(String[] args) { - ServerRunner.run(HelloServer.class); + return newFixedLengthResponse(msg); } } diff --git a/samples/src/main/java/fi/iki/elonen/TempFilesServer.java b/samples/src/main/java/fi/iki/elonen/TempFilesServer.java index 2e0828f..aacd926 100644 --- a/samples/src/main/java/fi/iki/elonen/TempFilesServer.java +++ b/samples/src/main/java/fi/iki/elonen/TempFilesServer.java @@ -8,18 +8,18 @@ package fi.iki.elonen; * %% * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: - * + * * 1. Redistributions of source code must retain the above copyright notice, this * list of conditions and the following disclaimer. - * + * * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. - * + * * 3. Neither the name of the nanohttpd nor the names of its contributors * may be used to endorse or promote products derived from this software without * specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. @@ -43,20 +43,6 @@ import fi.iki.elonen.debug.DebugServer; */ public class TempFilesServer extends DebugServer { - public static void main(String[] args) { - TempFilesServer server = new TempFilesServer(); - server.setTempFileManagerFactory(new ExampleManagerFactory()); - ServerRunner.executeInstance(server); - } - - private static class ExampleManagerFactory implements TempFileManagerFactory { - - @Override - public TempFileManager create() { - return new ExampleManager(); - } - } - private static class ExampleManager implements TempFileManager { private final String tmpdir; @@ -64,31 +50,45 @@ public class TempFilesServer extends DebugServer { private final List<TempFile> tempFiles; private ExampleManager() { - tmpdir = System.getProperty("java.io.tmpdir"); - tempFiles = new ArrayList<TempFile>(); - } - - @Override - public TempFile createTempFile() throws Exception { - DefaultTempFile tempFile = new DefaultTempFile(tmpdir); - tempFiles.add(tempFile); - System.out.println("Created tempFile: " + tempFile.getName()); - return tempFile; + this.tmpdir = System.getProperty("java.io.tmpdir"); + this.tempFiles = new ArrayList<TempFile>(); } @Override public void clear() { - if (!tempFiles.isEmpty()) { + if (!this.tempFiles.isEmpty()) { System.out.println("Cleaning up:"); } - for (TempFile file : tempFiles) { + for (TempFile file : this.tempFiles) { try { System.out.println(" " + file.getName()); file.delete(); } catch (Exception ignored) { } } - tempFiles.clear(); + this.tempFiles.clear(); } + + @Override + public TempFile createTempFile() throws Exception { + DefaultTempFile tempFile = new DefaultTempFile(this.tmpdir); + this.tempFiles.add(tempFile); + System.out.println("Created tempFile: " + tempFile.getName()); + return tempFile; + } + } + + private static class ExampleManagerFactory implements TempFileManagerFactory { + + @Override + public TempFileManager create() { + return new ExampleManager(); + } + } + + public static void main(String[] args) { + TempFilesServer server = new TempFilesServer(); + server.setTempFileManagerFactory(new ExampleManagerFactory()); + ServerRunner.executeInstance(server); } } diff --git a/samples/src/main/java/fi/iki/elonen/debug/DebugServer.java b/samples/src/main/java/fi/iki/elonen/debug/DebugServer.java index 7780576..10f777d 100644 --- a/samples/src/main/java/fi/iki/elonen/debug/DebugServer.java +++ b/samples/src/main/java/fi/iki/elonen/debug/DebugServer.java @@ -8,18 +8,18 @@ package fi.iki.elonen.debug; * %% * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: - * + * * 1. Redistributions of source code must retain the above copyright notice, this * list of conditions and the following disclaimer. - * + * * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. - * + * * 3. Neither the name of the nanohttpd nor the names of its contributors * may be used to endorse or promote products derived from this software without * specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. @@ -42,12 +42,16 @@ import fi.iki.elonen.ServerRunner; public class DebugServer extends NanoHTTPD { + public static void main(String[] args) { + ServerRunner.run(DebugServer.class); + } + public DebugServer() { super(8080); } - public static void main(String[] args) { - ServerRunner.run(DebugServer.class); + private void listItem(StringBuilder sb, Map.Entry<String, ? extends Object> entry) { + sb.append("<li><code><b>").append(entry.getKey()).append("</b> = ").append(entry.getValue()).append("</code></li>"); } @Override @@ -80,7 +84,7 @@ public class DebugServer extends NanoHTTPD { sb.append("</body>"); sb.append("</html>"); - return new Response(sb.toString()); + return newFixedLengthResponse(sb.toString()); } private String toString(Map<String, ? extends Object> map) { @@ -99,8 +103,4 @@ public class DebugServer extends NanoHTTPD { sb.append("</ul>"); return sb.toString(); } - - private void listItem(StringBuilder sb, Map.Entry<String, ? extends Object> entry) { - sb.append("<li><code><b>").append(entry.getKey()).append("</b> = ").append(entry.getValue()).append("</code></li>"); - } } |