X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=cachecontrol%2Fsrc%2Ftest%2Fjava%2Fde%2Fhalbekunst%2Fjuplo%2Fcachecontrol%2FTestServlet.java;fp=cachecontrol%2Fsrc%2Ftest%2Fjava%2Fde%2Fhalbekunst%2Fjuplo%2Fcachecontrol%2FTestServlet.java;h=cb114fdd2494f45fad0826fcf3b766e2526b8055;hb=1bb1a0f0e1d347538ae93c23395bba172cd87342;hp=0000000000000000000000000000000000000000;hpb=3324545626f8f93c43e3b54cf56004d19af17da2;p=percentcodec diff --git a/cachecontrol/src/test/java/de/halbekunst/juplo/cachecontrol/TestServlet.java b/cachecontrol/src/test/java/de/halbekunst/juplo/cachecontrol/TestServlet.java new file mode 100644 index 00000000..cb114fdd --- /dev/null +++ b/cachecontrol/src/test/java/de/halbekunst/juplo/cachecontrol/TestServlet.java @@ -0,0 +1,81 @@ +package de.halbekunst.juplo.cachecontrol; + +import java.io.IOException; +import java.util.Map; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletException; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.junit.Ignore; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * + * @author kai + */ +@Ignore +public class TestServlet extends HttpServlet { + private final static Logger log = LoggerFactory.getLogger(TestServlet.class); + + private static final String FORWARDED = TestServlet.class.getName() + ".FORWARDED"; + private static final String INCLUDED = TestServlet.class.getName() + ".INCLUDED"; + + @Override + protected long getLastModified(HttpServletRequest req) { + try { + /** Der Reqeust-Parameter "lm" wird als Wert für Last-Modified zurückgegeben */ + return Long.parseLong(req.getParameter("l")); + } + catch (Exception e) { + return -1l; + } + } + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + /** Angeforderte Header setzen */ + Map map = request.getParameterMap(); + for (String param : map.keySet()) { + if (param.equals("n") || param.equals("l") || param.equals("f") || param.equals("i")) + continue; + /** + * Alle Request-Parameter außer die Sonder-Parameter "n" und "lm" + * werden als Schlüssel/Wert-Paare für die Antwort-Header interpretiert! + */ + for (String value : map.get(param)) + response.setHeader(param, value); + } + + 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("GET {} bytes: {}", n, request.getRequestURI()); + ServletOutputStream out = response.getOutputStream(); + for (int i=0; i