1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.springframework.extensions.surf.util;
20
21 import java.util.Enumeration;
22
23 import javax.servlet.http.HttpServletRequest;
24 import javax.servlet.http.HttpServletResponse;
25
26 import org.apache.commons.logging.Log;
27 import org.apache.commons.logging.LogFactory;
28 import org.springframework.extensions.surf.util.FakeHttpServletResponse;
29 import org.springframework.extensions.surf.util.WrappedHttpServletRequest;
30
31
32
33
34
35
36 public class OverlayUtil
37 {
38 private static Log logger = LogFactory.getLog(OverlayUtil.class);
39
40
41
42
43
44
45
46
47
48 public static void include(HttpServletRequest request, HttpServletResponse realResponse, StringBuilder buffer,
49 String path)
50 {
51 WrappedHttpServletRequest wrappedRequest = new WrappedHttpServletRequest(
52 request);
53 FakeHttpServletResponse fakeResponse = new FakeHttpServletResponse(realResponse,
54 false);
55
56 try
57 {
58
59 request.getRequestDispatcher(path).include(wrappedRequest,
60 fakeResponse);
61
62
63 buffer.append(fakeResponse.getContentAsString());
64
65
66 buffer.append("\r\n");
67 }
68 catch (Exception ex)
69 {
70 logger.warn("Unable to include '" + path + "', " + ex.getMessage());
71 }
72 }
73
74
75
76
77
78
79
80
81 public static StringBuilder getCachedResource(HttpServletRequest request,
82 String key)
83 {
84 return (StringBuilder) request.getSession().getAttribute(
85 "CACHED_RESOURCE_" + key);
86 }
87
88
89
90
91
92
93
94
95 public static void setCachedResource(HttpServletRequest request,
96 String key, StringBuilder buffer)
97 {
98 request.getSession().setAttribute("CACHED_RESOURCE_" + key, buffer);
99 }
100
101
102
103
104
105
106
107
108
109 public static void removeCachedResource(HttpServletRequest request,
110 String key)
111 {
112 request.getSession().removeAttribute("CACHED_RESOURCE_" + key);
113 }
114
115
116
117
118
119
120
121 public static void removeCachedResources(HttpServletRequest request,
122 String key)
123 {
124 Enumeration en = request.getSession().getAttributeNames();
125 while (en.hasMoreElements())
126 {
127 String attributeName = (String) en.nextElement();
128 if (attributeName.startsWith("CACHED_RESOURCE_" + key))
129 {
130 request.getSession().removeAttribute(attributeName);
131 }
132 }
133 }
134
135
136
137
138
139
140 public static String getWebStudioHostPort(HttpServletRequest request)
141 {
142 String url = request.getScheme();
143 url += "://";
144 url += request.getServerName();
145 if (request.getServerPort() != 80)
146 {
147 url += ":" + request.getServerPort();
148 }
149 url += request.getContextPath();
150
151 return url;
152 }
153
154
155
156
157
158
159
160
161 public static String getWebStudioURL(HttpServletRequest request,
162 String relativePath)
163 {
164 return getWebStudioHostPort(request) + relativePath;
165 }
166
167
168
169
170
171
172
173 public static String getOriginalContextPath(HttpServletRequest request)
174 {
175 String contextPath = request.getParameter("contextPath");
176 if (contextPath == null)
177 {
178 contextPath = "/";
179 }
180
181 return contextPath;
182 }
183
184
185
186
187
188
189
190
191 public static String getOriginalURL(HttpServletRequest request,
192 String relativePath)
193 {
194 return getOriginalContextPath(request) + relativePath;
195 }
196
197 }