JSP-Seite und Servlet ergänzt, die eine Exception werfen
[percentcodec] / examples / servlet / src / main / java / de / halbekunst / cachecontrol / examples / FaultyServlet.java
diff --git a/examples/servlet/src/main/java/de/halbekunst/cachecontrol/examples/FaultyServlet.java b/examples/servlet/src/main/java/de/halbekunst/cachecontrol/examples/FaultyServlet.java
new file mode 100644 (file)
index 0000000..bc382db
--- /dev/null
@@ -0,0 +1,43 @@
+package de.halbekunst.cachecontrol.examples;
+
+import java.io.IOException;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ *
+ * @author kai
+ */
+public class FaultyServlet extends HttpServlet {
+  private final static Logger log = LoggerFactory.getLogger(FaultyServlet.class);
+  private final static long lastModified = System.currentTimeMillis();
+
+
+  @Override
+  protected long getLastModified(HttpServletRequest req) {
+    return lastModified;
+  }
+
+  @Override
+  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
+    int n = 0;
+    try {
+      /**
+       * Wenn der Parameter n gesetzt ist, wird ein Antwort-Body erzeugt, der
+       * exakt die Anzahl der geforderten Bytes enthält.
+       */
+      n = Integer.parseInt(request.getParameter("n"));
+    }
+    catch(Exception e) {}
+    log.debug("Error will be risen after {} bytes: {}", n, request.getRequestURI());
+    ServletOutputStream out = response.getOutputStream();
+    for (int i=0; i<n; i++)
+      out.write(i%2 + 48); /** ASCII-Codes für "0" und "1" */
+    log.debug("Failing.... NOW:");
+    throw new RuntimeException("Oh, no!");
+  }
+}