/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements.  See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License.  You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/* $Id$
 *
 */

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ResourceBundle;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import util.HTMLFilter;

/**
 * Example servlet showing request information.
 *
 * @author James Duncan Davidson <duncan@eng.sun.com>
 */

public class RequestInfoExample extends HttpServlet {

    private static final long serialVersionUID = 1L;

    private static final ResourceBundle RB = ResourceBundle.getBundle("LocalStrings");

    @Override
    public void doGet(HttpServletRequest request,
                      HttpServletResponse response)
        throws IOException, ServletException
    {
        response.setContentType("text/html");

        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<head>");

        String title = RB.getString("requestinfo.title");
        out.println("<title>" + title + "</title>");
        out.println("</head>");
        out.println("<body bgcolor=\"white\">");

        // img stuff not req'd for source code html showing
        // all links relative!

        // XXX
        // making these absolute till we work out the
        // addition of a PathInfo issue

        out.println("<a href=\"../reqinfo.html\">");
        out.println("<img src=\"../images/code.gif\" height=24 " +
                    "width=24 align=right border=0 alt=\"view code\"></a>");
        out.println("<a href=\"../index.html\">");
        out.println("<img src=\"../images/return.gif\" height=24 " +
                    "width=24 align=right border=0 alt=\"return\"></a>");

        out.println("<h3>" + title + "</h3>");
        out.println("<table border=0><tr><td>");
        out.println(RB.getString("requestinfo.label.method"));
        out.println("</td><td>");
        out.println(request.getMethod());
        out.println("</td></tr><tr><td>");
        out.println(RB.getString("requestinfo.label.requesturi"));
        out.println("</td><td>");
        out.println(HTMLFilter.filter(request.getRequestURI()));
        out.println("</td></tr><tr><td>");
        out.println(RB.getString("requestinfo.label.protocol"));
        out.println("</td><td>");
        out.println(request.getProtocol());
        out.println("</td></tr><tr><td>");
        out.println(RB.getString("requestinfo.label.pathinfo"));
        out.println("</td><td>");
        out.println(HTMLFilter.filter(request.getPathInfo()));
        out.println("</td></tr><tr><td>");
        out.println(RB.getString("requestinfo.label.remoteaddr"));

        String cipherSuite=
            (String)request.getAttribute("javax.servlet.request.cipher_suite");
        out.println("</td><td>");
        out.println(request.getRemoteAddr());
        out.println("</table>");

        if(cipherSuite!=null){
            out.println("</td></tr><tr><td>");
            out.println("SSLCipherSuite:");
            out.println("</td>");
            out.println("<td>");
            out.println(request.getAttribute("javax.servlet.request.cipher_suite"));
            out.println("</td>");
        }
    }

    @Override
    public void doPost(HttpServletRequest request,
                      HttpServletResponse response)
        throws IOException, ServletException
    {
        doGet(request, response);
    }

}


@@ -3451,25 +3451,24 @@
 ddr%22));%0A
-%0A
         
 String c
@@ -3463,105 +3463,77 @@
     
-String cipherSuite=%0A            (String)request.getAttribute(%22javax.servlet.request.cipher_suite%22
+out.println(%22%3C/td%3E%3Ctd%3E%22);%0A        out.println(request.getRemoteAddr()
 );%0A 
@@ -3554,39 +3554,41 @@
 ntln(%22%3C/td%3E%3C
-td
+/tr
 %3E%22);%0A
+%0A
         
 out.println(
@@ -3579,80 +3579,112 @@
     
-out.println(request.getRemoteAddr());%0A        out.println(%22%3C/table%3E
+String cipherSuite=%0A                (String)request.getAttribute(%22javax.servlet.request.cipher_suite
 %22);%0A
-%0A
     
@@ -3732,38 +3732,28 @@
 t.println(%22%3C
-/td%3E%3C/
 tr%3E%3C
-tr%3E%3C
 td%3E%22);%0A     
@@ -3813,32 +3813,36 @@
 t.println(%22%3C/td%3E
+%3Ctd%3E
 %22);%0A            
@@ -3857,14 +3857,19 @@
 tln(
-%22%3Ctd%3E%22
+cipherSuite
 );%0A 
@@ -3895,73 +3895,34 @@
 tln(
-request.getAttribute(%22javax.servlet.request.cipher_suite%22)
+%22%3C/td%3E%3C/tr%3E%22
 );%0A    
+    %7D%0A%0A
     
@@ -3945,23 +3945,16 @@
 %22%3C/t
-d%3E%22);%0A        %7D
+able%3E%22);
 %0A   

Simplify code and correct HTML markup