From c27be9ac861bb74f9be1ec375034d8d2ed0c35dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kjetil=20=C3=98rbekk?= Date: Tue, 7 Feb 2012 10:09:13 +0100 Subject: Improve StateServlet interface. --- .../java/com/orbekk/same/http/StateServlet.java | 55 ++++++++++++++++++++-- 1 file changed, 50 insertions(+), 5 deletions(-) (limited to 'same/src') diff --git a/same/src/main/java/com/orbekk/same/http/StateServlet.java b/same/src/main/java/com/orbekk/same/http/StateServlet.java index 0ca1682..fdb2eb9 100644 --- a/same/src/main/java/com/orbekk/same/http/StateServlet.java +++ b/same/src/main/java/com/orbekk/same/http/StateServlet.java @@ -3,6 +3,7 @@ package com.orbekk.same.http; import static com.orbekk.same.StackTraceUtil.throwableToString; import java.io.IOException; +import java.io.PrintWriter; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; @@ -17,6 +18,7 @@ import com.orbekk.same.UpdateConflict; public class StateServlet extends HttpServlet { private Logger logger = LoggerFactory.getLogger(getClass()); private Client.ClientInterface client; + private final static String TITLE = "State viewer"; public StateServlet(Client.ClientInterface client) { this.client = client; @@ -46,10 +48,53 @@ public class StateServlet extends HttpServlet { HttpServletResponse response) throws IOException { if ("set".equals(request.getParameter("action"))) { handleSetState(request, response); - } - - response.setContentType("text/plain; charset=utf8"); - response.getWriter().println(client.getState()); - response.setStatus(HttpServletResponse.SC_OK); + response.sendRedirect(request.getServletPath() + "?message=OK"); + } else { + response.setContentType("text/html; charset=utf8"); + writeHeader(response); + if (request.getParameter("message") != null) { + response.getWriter().println("

"); + response.getWriter().println(request.getParameter("message")); + } + writeState(response); + writeSetStateForm(response); + writeFooter(response); + response.setStatus(HttpServletResponse.SC_OK); + } + } + + private void writeState(HttpServletResponse response) throws IOException { + PrintWriter w = response.getWriter(); + w.println("

State

"); + w.println("
");
+        w.println(client.getState());
+        w.println("
"); + } + + private void writeSetStateForm(HttpServletResponse response) + throws IOException { + PrintWriter w = response.getWriter(); + w.println("

Change state

"); + w.println("
"); + w.println("

Key: "); + w.println("

Value: "); + w.println(""); + w.println("

"); + w.println("

"); + } + + private void writeHeader(HttpServletResponse response) throws IOException { + PrintWriter w = response.getWriter(); + w.println(""); + w.println(""); + w.println("" + TITLE + ""); + w.println(""); + w.println(""); + } + + private void writeFooter(HttpServletResponse response) throws IOException { + PrintWriter w = response.getWriter(); + w.println(""); + w.println(""); } } -- cgit v1.2.3