annotate servlet3/src/main/java/digilib/servlet/DigilibServletRequest.java @ 1110:ffda96c2fde0

use RegExp for finding regions; use ID for highlighting
author hertzhaft
date Sun, 28 Oct 2012 15:10:41 +0100
parents 7779b37d1d05
children 7a4f27ee087f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
1 /*
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
2 * DigilibRequest.java
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
3 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
4 * lightweight class carrying all parameters for a request to digilib
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
5 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
6
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
7 Digital Image Library servlet components
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
8
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
9 Copyright (C) 2001, 2002 Robert Casties (robcast@mail.berlios.de),
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
10 Christian Luginbuehl
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
11
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
12 This program is free software; you can redistribute it and/or modify it
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
13 under the terms of the GNU General Public License as published by the
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
14 Free Software Foundation; either version 2 of the License, or (at your
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
15 option) any later version.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
16
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
17 Please read license.txt for the full details. A copy of the GPL
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
18 may be found at http://www.gnu.org/copyleft/lgpl.html
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
19
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
20 You should have received a copy of the GNU General Public License
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
21 along with this program; if not, write to the Free Software
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
22 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
23
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
24 * Created on 27. August 2002, 19:43
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
25 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
26
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
27 package digilib.servlet;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
28
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
29 import java.io.UnsupportedEncodingException;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
30 import java.net.URLDecoder;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
31 import java.util.Enumeration;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
32 import java.util.StringTokenizer;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
33
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
34 import javax.servlet.ServletRequest;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
35 import javax.servlet.http.HttpServletRequest;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
36
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
37 import digilib.image.DocuImage;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
38 import digilib.io.FileOps;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
39 import digilib.util.OptionsSet;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
40 import digilib.util.Parameter;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
41
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
42 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
43 * Class holding the parameters of a digilib user request. The parameters are
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
44 * mostly named like the servlet parameters: <br>
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
45 * request_path: url of the page/document. <br>
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
46 * fn: url of the page/document. <br>
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
47 * pn: page number. <br>
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
48 * dw: width of result window in pixels. <br>
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
49 * dh: height of result window in pixels. <br>
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
50 * wx: left edge of image area (float from 0 to 1). <br>
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
51 * wy: top edge of image area (float from 0 to 1). <br>
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
52 * ww: width of image area(float from 0 to 1). <br>
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
53 * wh: height of image area(float from 0 to 1). <br>
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
54 * ws: scale factor. <br>
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
55 * mo: special options like 'fit' for gifs. <br>
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
56 * mk: list of marks. <br>
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
57 * pt: total number of pages (generated by sevlet). <br>
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
58 * baseURL: base URL (from http:// to below /servlet). <br>
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
59 * ...et alii
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
60 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
61 * @author casties
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
62 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
63 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
64 public class DigilibServletRequest extends DigilibRequest {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
65
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
66 protected DocuImage image; // internal DocuImage instance for this request
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
67
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
68 protected HttpServletRequest servletRequest; // internal ServletRequest
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
69
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
70 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
71 * Creates a new instance of DigilibRequest with parameters from a
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
72 * ServletRequest. All undefined parameters are set to default values.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
73 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
74 * @param request
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
75 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
76 public DigilibServletRequest(HttpServletRequest request) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
77 setWithRequest(request);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
78 initOptions();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
79 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
80
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
81 /** set up parameters.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
82 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
83 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
84 protected void initParams() {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
85 /*
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
86 * Definition of parameters and default values. Parameter of type 's'
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
87 * are for the servlet.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
88 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
89
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
90 // url of the page/document (second part)
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
91 newParameter("fn", "", null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
92 // page number
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
93 newParameter("pn", new Integer(1), null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
94 // width of client in pixels
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
95 newParameter("dw", new Integer(0), null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
96 // height of client in pixels
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
97 newParameter("dh", new Integer(0), null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
98 // left edge of image (float from 0 to 1)
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
99 newParameter("wx", new Float(0), null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
100 // top edge in image (float from 0 to 1)
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
101 newParameter("wy", new Float(0), null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
102 // width of image (float from 0 to 1)
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
103 newParameter("ww", new Float(1), null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
104 // height of image (float from 0 to 1)
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
105 newParameter("wh", new Float(1), null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
106 // scale factor
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
107 newParameter("ws", new Float(1), null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
108 // special options like 'fit' for gifs
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
109 newParameter("mo", this.options, null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
110 // rotation angle (degree)
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
111 newParameter("rot", new Float(0), null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
112 // contrast enhancement factor
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
113 newParameter("cont", new Float(0), null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
114 // brightness enhancement factor
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
115 newParameter("brgt", new Float(0), null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
116 // color multiplicative factors
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
117 newParameter("rgbm", "0/0/0", null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
118 // color additive factors
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
119 newParameter("rgba", "0/0/0", null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
120 // display dpi resolution (total)
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
121 newParameter("ddpi", new Float(0), null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
122 // display dpi X resolution
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
123 newParameter("ddpix", new Float(0), null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
124 // display dpi Y resolution
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
125 newParameter("ddpiy", new Float(0), null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
126 // scale factor for mo=ascale
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
127 newParameter("scale", new Float(1), null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
128 // color conversion operation
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
129 newParameter("colop", "", null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
130
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
131 /*
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
132 * Parameters of type 'i' are not exchanged between client and server,
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
133 * but are for the servlets or JSPs internal use.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
134 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
135
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
136 // url of the page/document (first part, may be empty)
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
137 newParameter("request.path", "", null, 'i');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
138 // base URL (from http:// to below /servlet)
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
139 newParameter("base.url", null, null, 'i');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
140 // DocuImage instance for this request
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
141 newParameter("docu.image", image, null, 'i');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
142 image = null;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
143 // HttpServletRequest for this request
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
144 newParameter("servlet.request", servletRequest, null, 'i');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
145 servletRequest = null;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
146
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
147 /*
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
148 * Parameters of type 'c' are for the clients use
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
149 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
150
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
151 // "real" filename
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
152 newParameter("img.fn", "", null, 'c');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
153 // image dpi x
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
154 newParameter("img.dpix", new Integer(0), null, 'c');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
155 // image dpi y
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
156 newParameter("img.dpiy", new Integer(0), null, 'c');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
157 // hires image size x
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
158 newParameter("img.pix_x", new Integer(0), null, 'c');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
159 // hires image size y
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
160 newParameter("img.pix_y", new Integer(0), null, 'c');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
161 // total number of pages
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
162 newParameter("pt", new Integer(0), null, 'c');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
163 // display level of digilib (0 = just image, 1 = one HTML page
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
164 // 2 = in frameset, 3 = XUL-'frameset'
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
165 // 4 = XUL-Sidebar )
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
166 newParameter("lv", new Integer(2), null, 'c');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
167 // marks
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
168 newParameter("mk", "", null, 'c');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
169 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
170
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
171 /* (non-Javadoc)
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
172 * @see digilib.servlet.ParameterMap#initOptions()
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
173 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
174 @Override
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
175 protected void initOptions() {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
176 options = (OptionsSet) getValue("mo");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
177 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
178
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
179 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
180 * Populate the request object with data from a ServletRequest.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
181 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
182 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
183 * @param request
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
184 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
185 public void setWithRequest(HttpServletRequest request) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
186 servletRequest = request;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
187 // decide if it's old-style or new-style
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
188 String qs = ((HttpServletRequest) request).getQueryString();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
189 if (qs != null) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
190 if (qs.indexOf("&amp;") > -1) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
191 // &amp; separator
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
192 setWithParamString(qs, "&amp;");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
193 } else if (qs.indexOf(";") > -1) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
194 // ; separator
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
195 setWithParamString(qs, ";");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
196 } else if (request.getParameter("fn") != null) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
197 // standard '&' parameters
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
198 setWithParamRequest(request);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
199 } else {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
200 setWithOldString(qs);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
201 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
202 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
203 setValue("servlet.request", request);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
204 // add path from request
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
205 setValue("request.path", ((HttpServletRequest) request).getPathInfo());
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
206 // set the baseURL
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
207 setBaseURL((HttpServletRequest) request);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
208 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
209
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
210 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
211 * Populate a request from a string in the old "++++" parameter form.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
212 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
213 * @param queryString
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
214 * String with paramters in the old "+++" form.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
215 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
216 public void setWithOldString(String queryString) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
217 if (queryString == null) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
218 return;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
219 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
220 // enable the passing of delimiter to get empty parameters
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
221 StringTokenizer query = new StringTokenizer(queryString, "+", true);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
222 String token;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
223 // first parameter FN
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
224 if (query.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
225 token = query.nextToken();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
226 if (!token.equals("+")) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
227 setValueFromString("fn", token);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
228 if (query.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
229 query.nextToken();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
230 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
231 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
232 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
233 // second parameter PN
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
234 if (query.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
235 token = query.nextToken();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
236 if (!token.equals("+")) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
237 setValueFromString("pn", token);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
238 if (query.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
239 query.nextToken();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
240 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
241 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
242 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
243 // third parameter WS
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
244 if (query.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
245 token = query.nextToken();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
246 if (!token.equals("+")) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
247 setValueFromString("ws", token);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
248 if (query.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
249 query.nextToken();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
250 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
251 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
252 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
253 // fourth parameter MO
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
254 if (query.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
255 token = query.nextToken();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
256 if (!token.equals("+")) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
257 setValueFromString("mo", token);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
258 if (query.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
259 query.nextToken();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
260 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
261 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
262 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
263 // fifth parameter MK
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
264 if (query.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
265 token = query.nextToken();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
266 if (!token.equals("+")) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
267 setValueFromString("mk", token);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
268 if (query.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
269 query.nextToken();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
270 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
271 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
272 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
273 // sixth parameter WX
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
274 if (query.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
275 token = query.nextToken();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
276 if (!token.equals("+")) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
277 setValueFromString("wx", token);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
278 if (query.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
279 query.nextToken();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
280 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
281 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
282 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
283 // seventh parameter WY
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
284 if (query.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
285 token = query.nextToken();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
286 if (!token.equals("+")) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
287 setValueFromString("wy", token);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
288 if (query.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
289 query.nextToken();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
290 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
291 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
292 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
293 // eigth parameter WW
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
294 if (query.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
295 token = query.nextToken();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
296 if (!token.equals("+")) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
297 setValueFromString("ww", token);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
298 if (query.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
299 query.nextToken();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
300 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
301 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
302 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
303 // ninth parameter WH
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
304 if (query.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
305 token = query.nextToken();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
306 if (!token.equals("+")) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
307 setValueFromString("wh", token);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
308 if (query.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
309 query.nextToken();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
310 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
311 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
312 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
313 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
314
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
315 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
316 * Return the request parameters as a String in the parameter form
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
317 * 'fn=/icons&amp;pn=1'. Empty (undefined) fields are not included.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
318 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
319 * @return String of request parameters in parameter form.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
320 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
321 public String getAsString() {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
322 return getAsString(0);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
323 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
324
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
325 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
326 * Return the request parameters of a given type type as a String in the
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
327 * parameter form 'fn=/icons&amp;pn=1'. Empty (undefined) fields are not
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
328 * included.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
329 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
330 * @return String of request parameters in parameter form.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
331 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
332 public String getAsString(int type) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
333 StringBuffer s = new StringBuffer(50);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
334 // go through all values
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
335 for (Parameter p: params.values()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
336 if ((type > 0) && (p.getType() != type)) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
337 // skip the wrong types
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
338 continue;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
339 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
340 String name = p.getName();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
341 /*
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
342 * handling special cases
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
343 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
344 // request_path adds to fn
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
345 if (name.equals("fn")) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
346 s.append("&fn=" + getAsString("request.path")
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
347 + getAsString("fn"));
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
348 continue;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
349 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
350 /*
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
351 * the rest is sent with its name
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
352 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
353 // parameters that are not set or internal are not sent
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
354 if ((!p.hasValue()) || (p.getType() == 'i')) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
355 continue;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
356 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
357 s.append("&" + name + "=" + p.getAsString());
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
358 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
359 // kill first "&"
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
360 s.deleteCharAt(0);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
361 return s.toString();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
362 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
363
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
364 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
365 * Returns request parameters in old '++++' form.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
366 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
367 * @return String with parameters in old '++++' form.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
368 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
369 public String getAsOldString() {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
370 StringBuffer s = new StringBuffer(50);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
371 s.append(getAsString("request.path"));
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
372 s.append(getAsString("fn"));
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
373 s.append("+" + getAsString("pn"));
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
374 s.append("+" + getAsString("ws"));
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
375 s.append("+" + getAsString("mo"));
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
376 s.append("+" + getAsString("mk"));
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
377 s.append("+" + getAsString("wx"));
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
378 s.append("+" + getAsString("wy"));
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
379 s.append("+" + getAsString("ww"));
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
380 s.append("+" + getAsString("wh"));
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
381 return s.toString();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
382 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
383
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
384 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
385 * Set request parameters from javax.servlet.ServletRequest. Uses the
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
386 * Requests getParameter methods for 'fn=foo' style parameters.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
387 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
388 * @param request
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
389 * ServletRequest to get parameters from.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
390 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
391 //@SuppressWarnings("unchecked") // ServletRequest.getParameterNames() returns naked Enumeration
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
392 public void setWithParamRequest(ServletRequest request) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
393 setValue("servlet.request", request);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
394 // go through all request parameters
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
395 for (Enumeration<String> i = request.getParameterNames(); i.hasMoreElements();) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
396 String name = (String) i.nextElement();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
397 // is this a known parameter?
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
398 if (params.containsKey(name)) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
399 Parameter p = (Parameter) this.get(name);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
400 // internal parameters are not set
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
401 if (p.getType() == 'i') {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
402 continue;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
403 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
404 p.setValueFromString(request.getParameter(name));
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
405 continue;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
406 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
407 // unknown parameters are just added with type 'r'
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
408 newParameter(name, null, request.getParameter(name), 'r');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
409 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
410 // add path from request
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
411 setValue("request.path", ((HttpServletRequest) request).getPathInfo());
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
412 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
413
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
414 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
415 * Set request parameters from query string. Uses the separator string qs to
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
416 * get 'fn=foo' style parameters.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
417 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
418 * @param qs
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
419 * query string
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
420 * @param sep
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
421 * parameter-separator string
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
422 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
423 public void setWithParamString(String qs, String sep) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
424 // go through all request parameters
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
425 String[] qa = qs.split(sep);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
426 for (int i = 0; i < qa.length; i++) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
427 // split names and values on "="
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
428 String[] nv = qa[i].split("=");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
429 try {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
430 String name = URLDecoder.decode(nv[0], "UTF-8");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
431 String val = URLDecoder.decode(nv[1], "UTF-8");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
432 // is this a known parameter?
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
433 if (params.containsKey(name)) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
434 Parameter p = (Parameter) this.get(name);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
435 // internal parameters are not set
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
436 if (p.getType() == 'i') {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
437 continue;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
438 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
439 p.setValueFromString(val);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
440 continue;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
441 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
442 // unknown parameters are just added with type 'r'
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
443 newParameter(name, null, val, 'r');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
444 } catch (UnsupportedEncodingException e) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
445 // this shouldn't happen anyway
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
446 e.printStackTrace();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
447 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
448 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
449 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
450
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
451 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
452 * Test if option string <code>opt</code> is set. Checks if the substring
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
453 * <code>opt</code> is contained in the options string <code>param</code>.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
454 * Deprecated! use hasOption(String opt) for "mo"-options.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
455 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
456 * @param opt
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
457 * Option string to be tested.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
458 * @return boolean
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
459 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
460 public boolean hasOption(String param, String opt) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
461 String s = getAsString(param);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
462 if (s != null) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
463 StringTokenizer i = new StringTokenizer(s, ",");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
464 while (i.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
465 if (i.nextToken().equals(opt)) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
466 return true;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
467 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
468 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
469 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
470 return false;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
471 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
472
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
473 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
474 * The image file path to be accessed.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
475 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
476 * The mage file path is assembled from the servlets RequestPath and
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
477 * Parameter fn and normalized.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
478 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
479 * @return String the effective filepath.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
480 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
481 public String getFilePath() {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
482 String s = getAsString("request.path");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
483 s += getAsString("fn");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
484 return FileOps.normalName(s);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
485 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
486
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
487 /* Property getter and setter */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
488
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
489 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
490 * Set the requests base URL parameter from a
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
491 * javax.sevlet.http.HttpServletRequest.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
492 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
493 * @param request
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
494 * HttpServletRequest to set the base URL.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
495 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
496 public void setBaseURL(javax.servlet.http.HttpServletRequest request) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
497 String baseURL = null;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
498 // calculate base URL string from request (minus last part)
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
499 String s = request.getRequestURL().toString();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
500 int eop = s.lastIndexOf("/");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
501 if (eop > 0) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
502 baseURL = s.substring(0, eop);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
503 } else {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
504 // fall back
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
505 baseURL = "http://" + request.getServerName()
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
506 + "/docuserver/digitallibrary";
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
507 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
508 setValue("base.url", baseURL);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
509 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
510
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
511 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
512 * Returns the image.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
513 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
514 * @return DocuImage
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
515 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
516 public DocuImage getImage() {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
517 return image;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
518 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
519
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
520 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
521 * Sets the image.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
522 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
523 * @param image
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
524 * The image to set
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
525 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
526 public void setImage(DocuImage image) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
527 this.image = image;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
528 setValue("docu.image", image);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
529 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
530
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
531 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
532 * @return
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
533 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
534 public HttpServletRequest getServletRequest() {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
535 return servletRequest;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
536 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
537
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
538 }