/* WebBox - Dein Server. Copyright (C) 2017 Ulrich Hilger, http://uhilger.de This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ package de.uhilger.wbx.web; import java.io.IOException; import java.io.OutputStream; import java.util.logging.Logger; import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Dieser Filter ist dem Beispiel auf * http://otndnld.oracle.co.jp/document/products/as10g/101300/B25221_03/web.1013/b14426/filters.htm#BCFIAAAH * entnommen und kann zum Testen von Filter-Konfigurationen oder als Ausgangsbasis * fuer komplexere Filter-Funktionen verwendet werden. * * Das Beispiel umschliesst eine beliebige Antwort vom Server mit *
PRE
POST * * @author ulrich */ public class PrePostFilter extends MyGenericFilter { private static final Logger logger = Logger.getLogger(PrePostFilter.class.getName()); public void doFilter(final ServletRequest request, final ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest hr = (HttpServletRequest) request; logger.info("requestURL: " + hr.getRequestURL().toString()); logger.info("ContextPath: " + hr.getContextPath()); logger.info("ServletPath: " + hr.getServletPath()); logger.info("PathInfo: " + hr.getPathInfo()); OutputStream out = response.getOutputStream(); out.write(new String("
PRE
").getBytes()); GenericResponseWrapper wrapper = new GenericResponseWrapper((HttpServletResponse) response); chain.doFilter(request,wrapper); out.write(wrapper.getData()); out.write(new String("
POST
").getBytes()); out.close(); } /* MarkdownProcessor p = new MarkdownProcessor(); response.getWriter().write(p.markdown(responseContent)); */ }