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