1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.cms.util;
35
36 import info.magnolia.cms.beans.runtime.Document;
37 import info.magnolia.cms.beans.runtime.MultipartForm;
38 import info.magnolia.context.MgnlContext;
39
40 import java.io.UnsupportedEncodingException;
41 import java.net.URLDecoder;
42 import java.util.HashMap;
43 import java.util.Map;
44
45 import javax.servlet.http.HttpServletRequest;
46
47 import org.apache.commons.lang3.StringUtils;
48
49
50
51
52
53
54
55
56 @Deprecated
57 public class RequestFormUtil {
58
59 private MultipartForm form;
60
61 private HttpServletRequest request;
62
63 public RequestFormUtil(HttpServletRequest request) {
64 this(request, MgnlContext.getPostedForm());
65 }
66
67 public RequestFormUtil(HttpServletRequest request, MultipartForm form) {
68 super();
69 this.form = form;
70 this.request = request;
71 }
72
73 public String getParameter(String name) {
74 return getParameter(this.request, this.form, name);
75 }
76
77 public static String getParameter(HttpServletRequest request, String name) {
78 return getParameter(request, MgnlContext.getPostedForm(), name);
79 }
80
81
82
83
84 public static String getParameter(HttpServletRequest request, MultipartForm from, String name) {
85 String param = null;
86 if (from != null) {
87 param = from.getParameter(name);
88 }
89 if (param == null) {
90 if (request.getMethod().equals("GET")) {
91 param = getURLParameterDecoded(request, name, "UTF8");
92 } else {
93 param = request.getParameter(name);
94 }
95 }
96 return param;
97
98 }
99
100 public String getParameter(String name, String defaultValue) {
101 return getParameter(this.request, this.form, name, defaultValue);
102 }
103
104 public static String getParameter(HttpServletRequest request, String name, String defaultValue) {
105 return getParameter(request, MgnlContext.getPostedForm(), name, defaultValue);
106 }
107
108
109
110
111 public static String getParameter(HttpServletRequest request, MultipartForm from, String name, String defaultValue) {
112 String param = getParameter(request, from, name);
113 if (param == null) {
114 param = defaultValue;
115 }
116 return param;
117 }
118
119
120
121
122 public static String getURLParameterDecoded(HttpServletRequest request, String name, String charset) {
123 return getURLParametersDecoded(request, charset).get(name);
124 }
125
126
127
128
129
130
131 public static Map<String, String> getURLParametersDecoded(HttpServletRequest request, String charset) {
132
133 String queryString = request.getQueryString();
134 if (queryString != null) {
135 return getURLParametersDecoded(queryString, charset);
136 }
137 return new HashMap<String, String>();
138 }
139
140
141
142
143
144
145
146 public static Map<String, String> getURLParametersDecoded(String queryString, String charset) {
147 Map<String, String> map = new HashMap<String, String>();
148 String[] params = queryString.split("&");
149 for (int i = 0; i < params.length; i++) {
150 String name = StringUtils.substringBefore(params[i], "=");
151 String value = StringUtils.substringAfter(params[i], "=");
152 try {
153 value = URLDecoder.decode(value, charset);
154 } catch (UnsupportedEncodingException e) {
155
156 }
157
158 map.put(name, value);
159 }
160 return map;
161 }
162
163 public MultipartForm getForm() {
164 return form;
165 }
166
167
168
169
170
171 public Document getDocument(String name) {
172 return form.getDocument(name);
173 }
174
175
176
177
178
179 public Map getDocuments() {
180 if (form == null) {
181 return new HashMap();
182 }
183
184 return form.getDocuments();
185 }
186
187
188
189
190
191 public Map getParameters() {
192 return getParameters(this.request);
193 }
194
195 public static Map getParameters(HttpServletRequest request) {
196 MultipartForm form = MgnlContext.getPostedForm();
197 if (form == null) {
198
199 if (request.getMethod() == "GET") {
200 return getURLParametersDecoded(request, "UTF8");
201 }
202 return request.getParameterMap();
203 }
204 return form.getParameters();
205 }
206
207
208
209
210
211 public String[] getParameterValues(String name) {
212 if (this.form != null) {
213 return this.form.getParameterValues(name);
214 }
215 return request.getParameterValues(name);
216 }
217
218
219
220
221
222 public void removeParameter(String name) {
223 form.removeParameter(name);
224 }
225
226 }