<%@ page import="java.util.*,javax.servlet.http.*,sun.misc.BASE64Decoder" %>
<html>
<head>
<title>Sample Online Application</title>
</head>
<body>
<h1>Sample Online Application</h1>

<p>Request headers:
<table border="1">
    <% 
    /* collect parameters from request */
    for (Enumeration headers = request.getHeaderNames(); headers.hasMoreElements(); ) {
      String key = (String) headers.nextElement();
      String value = request.getHeader(key); %>
	<tr><td><%=key%></td><td><%=value%></td></tr>
    <% } %>
</table>
</p>

<% String query=request.getQueryString(); %>
<p>QueryString: "<%=query%>"
</p>

<p>Request parameters:
<table border="1">
    <%
    /* collect parameters from request */
    for (Enumeration params = request.getParameterNames(); params.hasMoreElements(); ) {
      String name = (String) params.nextElement();
      String value = request.getParameter(name); %>
	<tr><td><%=name%></td><td><%=value%></td></tr>
    <% } %>
</table>
</p>

<p>Cookies:
<table border="1">
    <%
    /* collect attributes from request */
    Cookie[] cookies = request.getCookies();
    if (cookies != null) {
      for (int i = 0; i < cookies.length; i++) {
        Cookie cookie = cookies[i]; %>
	  <tr><td><%=cookie.getName()%></td><td><%=cookie.getValue()%></td></tr>
      <% }
    }  %>
</table>
</p>

<% String authHeader = request.getHeader("Authorization");
   if (authHeader != null) {
      authHeader = authHeader.substring(authHeader.indexOf(" ")+1);
      String decAuthHeader = new String(new BASE64Decoder().decodeBuffer(authHeader));
%>
<p>Basic authentication credentials: <%=decAuthHeader%></p>
<% } %>
<p><a href="form.jsp">Form sample</a></p>
</body>
</html>