All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sf.hulp.profiler.ProfilerServlet Maven / Gradle / Ivy

The newest version!
// Copyright (c) 1999 Frank Gerard
//    
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the "Software"), to deal in the Software without
// restriction, including without limitation the rights to use,
// copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following
// conditions:
//    
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//    
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
// OTHER DEALINGS IN THE SOFTWARE.

package net.sf.hulp.profiler;

import net.sf.hulp.util.Markup;
import net.sf.hulp.util.MarkupHtml;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Exposes accumulated measurement data in a servlet
 */
public class ProfilerServlet extends HttpServlet {

    private static final long serialVersionUID = 1777967092267346221L;

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws
        IOException, ServletException {
        MarkupHtml f = new MarkupHtml();

        if (request.getQueryString() == null) {
            response.setContentType("text/html");
            PrintWriter out = response.getWriter();
            out.print(f.pageFrame());
        } else if ("menu".equals(request.getQueryString())) {
            response.setContentType("text/html");
            PrintWriter out = response.getWriter();
            out.println(new MarkupHtml.Menu("Profiler")
                .add("?cmd=dump", "Dump")
                .add("?cmd=dumptext", "Dump text")
                .add("?cmd=clear", "Clear")
                .add("?cmd=help", "Help")
                );
        } else if ("body".equals(request.getQueryString()) || "help".equals(request.getParameter("cmd"))) {
            response.setContentType("text/html");
            PrintWriter out = response.getWriter();
            out.println(f.beginPage());
            Profiler.get().help(out, f);
            out.println(f.endPage());
        } else if ("dump".equals(request.getParameter("cmd"))) {
            response.setContentType("text/html");
            PrintWriter out = response.getWriter();
            out.println(f.beginPage());
            dump(out, f);
            out.println(f.endPage());
        } else if ("dumptext".equals(request.getParameter("cmd"))) {
            response.setContentType("text/plain");
            PrintWriter out = response.getWriter();
            Markup ftext = new Markup();
            dump(out, ftext);
        } else if ("clear".equals(request.getParameter("cmd"))) {
            response.setContentType("text/html");
            PrintWriter out = response.getWriter();
            out.println(f.beginPage());
            out.println(f.beginArea() + "This will clear all accumulated measurements.");
            out.println("

Proceed? "); out.println("Yes"); out.println(f.endPage()); } else if ("wipe".equals(request.getParameter("cmd"))) { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println(f.beginPage()); clear(out, f); out.println(f.endPage()); } else { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println(f.beginPage()); out.println("Unknown request " + request.getRequestURL() + " ... " + request.getQueryString()); out.println(f.endPage()); } } public void dump(PrintWriter out, Markup f) throws IOException, ServletException { out.println(f.beginTable(Markup.TABLESTYLE_BANNEREGAL)); Profiler.get().dump(out, f); out.println(f.endTable()); } public void clear(PrintWriter out, Markup f) throws IOException, ServletException { Profiler.get().clear(); out.println("Cleared"); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy