View Javadoc

1   // ========================================================================
2   // Copyright (c) 1996-2009 Mort Bay Consulting Pty. Ltd.
3   // ------------------------------------------------------------------------
4   // All rights reserved. This program and the accompanying materials
5   // are made available under the terms of the Eclipse Public License v1.0
6   // and Apache License v2.0 which accompanies this distribution.
7   // The Eclipse Public License is available at 
8   // http://www.eclipse.org/legal/epl-v10.html
9   // The Apache License v2.0 is available at
10  // http://www.opensource.org/licenses/apache2.0.php
11  // You may elect to redistribute this code under either of these licenses. 
12  // ========================================================================
13  
14  package com.acme;
15  import java.io.IOException;
16  import java.io.PrintWriter;
17  
18  import javax.servlet.ServletException;
19  import javax.servlet.http.Cookie;
20  import javax.servlet.http.HttpServlet;
21  import javax.servlet.http.HttpServletRequest;
22  import javax.servlet.http.HttpServletResponse;
23  
24  
25  /* ------------------------------------------------------------ */
26  /** Test Servlet Cookies.
27   *
28   * 
29   */
30  public class CookieDump extends HttpServlet
31  {
32      int redirectCount=0;
33  
34      /* ------------------------------------------------------------ */
35      protected void handleForm(HttpServletRequest request,
36                            HttpServletResponse response) 
37      {
38          String name =  request.getParameter("Name");
39          String value =  request.getParameter("Value");
40          String age =  request.getParameter("Age");
41  
42          if (name!=null && name.length()>0)
43          {
44              Cookie cookie = new Cookie(name,value);
45              if (age!=null && age.length()>0)
46                  cookie.setMaxAge(Integer.parseInt(age));
47              response.addCookie(cookie);
48          }
49      }
50      
51      /* ------------------------------------------------------------ */
52      @Override
53      public void doPost(HttpServletRequest request,
54                         HttpServletResponse response) 
55          throws ServletException, IOException
56      {
57          handleForm(request,response);
58          String nextUrl = getURI(request)+"?R="+redirectCount++;
59          String encodedUrl=response.encodeRedirectURL(nextUrl);
60          response.sendRedirect(encodedUrl);
61      }
62          
63      /* ------------------------------------------------------------ */
64      @Override
65      public void doGet(HttpServletRequest request,
66                        HttpServletResponse response) 
67          throws ServletException, IOException
68      {
69          handleForm(request,response);
70          
71          response.setContentType("text/html");
72  
73          
74          PrintWriter out = response.getWriter();
75          out.println("<h1>Cookie Dump Servlet:</h1>");       
76          
77          Cookie[] cookies = request.getCookies();
78          
79          for (int i=0;cookies!=null && i<cookies.length;i++)
80          {
81              out.println("<b>"+deScript(cookies[i].getName())+"</b>="+deScript(cookies[i].getValue())+"<br/>");
82          }
83          
84          out.println("<form action=\""+response.encodeURL(getURI(request))+"\" method=\"post\">"); 
85  
86          out.println("<b>Name:</b><input type=\"text\" name=\"Name\" value=\"name\"/><br/>");
87          out.println("<b>Value:</b><input type=\"text\" name=\"Value\" value=\"value\"/><br/>");
88          out.println("<b>Max-Age:</b><input type=\"text\" name=\"Age\" value=\"60\"/><br/>");
89          out.println("<input type=\"submit\" name=\"Action\" value=\"Set\"/>");
90  
91      }
92  
93      /* ------------------------------------------------------------ */
94      @Override
95      public String getServletInfo() {
96          return "Session Dump Servlet";
97      }
98  
99      /* ------------------------------------------------------------ */
100     private String getURI(HttpServletRequest request)
101     {
102         String uri=(String)request.getAttribute("javax.servlet.forward.request_uri");
103         if (uri==null)
104             uri=request.getRequestURI();
105         return uri;
106     }
107 
108     /* ------------------------------------------------------------ */
109     protected String deScript(String string)
110     {
111         if (string==null)
112             return null;
113         string=string.replace("&", "&amp;");
114         string=string.replace( "<", "&lt;");
115         string=string.replace( ">", "&gt;");
116         return string;
117     }
118     
119 }