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.ServletConfig;
19  import javax.servlet.ServletException;
20  import javax.servlet.http.Cookie;
21  import javax.servlet.http.HttpServlet;
22  import javax.servlet.http.HttpServletRequest;
23  import javax.servlet.http.HttpServletResponse;
24  
25  
26  /* ------------------------------------------------------------ */
27  /** Test Servlet Cookies.
28   *
29   * 
30   */
31  public class CookieDump extends HttpServlet
32  {
33      int redirectCount=0;
34  
35      /* ------------------------------------------------------------ */
36      public void init(ServletConfig config)
37           throws ServletException
38      {
39          super.init(config);        
40      }
41  
42      /* ------------------------------------------------------------ */
43      protected void handleForm(HttpServletRequest request,
44                            HttpServletResponse response) 
45      {
46          String action = request.getParameter("Action");
47          String name =  request.getParameter("Name");
48          String value =  request.getParameter("Value");
49          String age =  request.getParameter("Age");
50  
51          if (name!=null && name.length()>0)
52          {
53              Cookie cookie = new Cookie(name,value);
54              if (age!=null && age.length()>0)
55                  cookie.setMaxAge(Integer.parseInt(age));
56              response.addCookie(cookie);
57          }
58      }
59      
60      /* ------------------------------------------------------------ */
61      public void doPost(HttpServletRequest request,
62                         HttpServletResponse response) 
63          throws ServletException, IOException
64      {
65          handleForm(request,response);
66          String nextUrl = getURI(request)+"?R="+redirectCount++;
67          String encodedUrl=response.encodeRedirectURL(nextUrl);
68          response.sendRedirect(encodedUrl);
69      }
70          
71      /* ------------------------------------------------------------ */
72      public void doGet(HttpServletRequest request,
73                        HttpServletResponse response) 
74          throws ServletException, IOException
75      {
76          handleForm(request,response);
77          
78          response.setContentType("text/html");
79  
80          
81          PrintWriter out = response.getWriter();
82          out.println("<h1>Cookie Dump Servlet:</h1>");       
83          
84          Cookie[] cookies = request.getCookies();
85          
86          for (int i=0;cookies!=null && i<cookies.length;i++)
87          {
88              out.println("<b>"+cookies[i].getName()+"</b>="+cookies[i].getValue()+"<br/>");
89          }
90          
91          out.println("<form action=\""+response.encodeURL(getURI(request))+"\" method=\"post\">"); 
92  
93          out.println("<b>Name:</b><input type=\"text\" name=\"Name\" value=\"name\"/><br/>");
94          out.println("<b>Value:</b><input type=\"text\" name=\"Value\" value=\"value\"/><br/>");
95          out.println("<b>Max-Age:</b><input type=\"text\" name=\"Age\" value=\"60\"/><br/>");
96          out.println("<input type=\"submit\" name=\"Action\" value=\"Set\"/>");
97  
98      }
99  
100     /* ------------------------------------------------------------ */
101     public String getServletInfo() {
102         return "Session Dump Servlet";
103     }
104 
105     /* ------------------------------------------------------------ */
106     private String getURI(HttpServletRequest request)
107     {
108         String uri=(String)request.getAttribute("javax.servlet.forward.request_uri");
109         if (uri==null)
110             uri=request.getRequestURI();
111         return uri;
112     }
113     
114 }