]> WPIA git - gigi.git/commitdiff
ADD: Basic page abstraction
authorJanis Streib <janis@dogcraft.de>
Fri, 20 Jun 2014 16:12:33 +0000 (18:12 +0200)
committerFelix Dörre <felix@dogcraft.de>
Sat, 21 Jun 2014 14:34:09 +0000 (16:34 +0200)
src/org/cacert/gigi/Gigi.java
src/org/cacert/gigi/LoginPage.java [new file with mode: 0644]
src/org/cacert/gigi/Page.java [new file with mode: 0644]

index 88c85ce17144d935b52519d9c7f650d0a9f783b5..953530d53b41d70f20104b1446b815b91f5eda06 100644 (file)
@@ -2,6 +2,7 @@ package org.cacert.gigi;
 
 import java.io.IOException;
 import java.security.cert.X509Certificate;
+import java.util.HashMap;
 
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
@@ -10,6 +11,13 @@ import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
 
 public class Gigi extends HttpServlet {
+       private HashMap<String, Page> pages = new HashMap<String, Page>();
+       @Override
+       public void init() throws ServletException {
+               pages.put("login", new LoginPage());
+               super.init();
+       }
+
        @Override
        protected void service(HttpServletRequest req, HttpServletResponse resp)
                        throws ServletException, IOException {
@@ -38,13 +46,8 @@ public class Gigi extends HttpServlet {
                }
 
                if (hs == null || !((Boolean) hs.getAttribute("loggedin"))) {
-                       resp.setContentType("text/html");
                        resp.getWriter().println("Access denied. Sending login form.");
-                       resp.getWriter()
-                                       .println(
-                                                       "<form method='POST' action='/login'>"
-                                                                       + "<input type='text' name='username'>"
-                                                                       + "<input type='password' name='password'> <input type='submit' value='login'></form>");
+                       pages.get("login").doGet(req, resp);
                        return;
                }
                resp.getWriter().println("Access granted.");
diff --git a/src/org/cacert/gigi/LoginPage.java b/src/org/cacert/gigi/LoginPage.java
new file mode 100644 (file)
index 0000000..419ebb4
--- /dev/null
@@ -0,0 +1,20 @@
+package org.cacert.gigi;
+
+import java.io.IOException;
+
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+
+public class LoginPage extends Page {
+       @Override
+       public void doGet(ServletRequest req, ServletResponse resp)
+                       throws IOException {
+               super.doGet(req, resp);
+               resp.getWriter()
+                               .println(
+                                               "<form method='POST' action='/login'>"
+                               + "<input type='text' name='username'>"
+                               + "<input type='password' name='password'> <input type='submit' value='login'></form>");
+       }
+
+}
diff --git a/src/org/cacert/gigi/Page.java b/src/org/cacert/gigi/Page.java
new file mode 100644 (file)
index 0000000..77ffbb6
--- /dev/null
@@ -0,0 +1,18 @@
+package org.cacert.gigi;
+
+import java.io.IOException;
+
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+
+public abstract class Page {
+       public void doGet(ServletRequest req, ServletResponse resp)
+                       throws IOException {
+               resp.setContentType("text/html");
+       }
+
+       public void doPost(ServletRequest req, ServletResponse resp)
+                       throws IOException {
+               doGet(req, resp);
+       }
+}