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