Mercurial Hosting > luan
comparison src/org/eclipse/jetty/server/Request.java @ 990:83cc6e05a58f
remove special attribute handling
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 17 Oct 2016 05:50:47 -0600 |
parents | 900e5b8ccd19 |
children | 688c39c50ee3 |
comparison
equal
deleted
inserted
replaced
989:900e5b8ccd19 | 990:83cc6e05a58f |
---|---|
149 private MultiMap<String> _parameters; | 149 private MultiMap<String> _parameters; |
150 private boolean _paramsExtracted; | 150 private boolean _paramsExtracted; |
151 private String _pathInfo; | 151 private String _pathInfo; |
152 private int _port; | 152 private int _port; |
153 private String _protocol = HttpVersions.HTTP_1_1; | 153 private String _protocol = HttpVersions.HTTP_1_1; |
154 private String _queryEncoding; | |
155 private String _queryString; | 154 private String _queryString; |
156 private BufferedReader _reader; | 155 private BufferedReader _reader; |
157 private String _readerEncoding; | 156 private String _readerEncoding; |
158 private String _remoteAddr; | 157 private String _remoteAddr; |
159 private String _remoteHost; | 158 private String _remoteHost; |
199 try | 198 try |
200 { | 199 { |
201 // Handle query string | 200 // Handle query string |
202 if (_uri != null && _uri.hasQuery()) | 201 if (_uri != null && _uri.hasQuery()) |
203 { | 202 { |
204 if (_queryEncoding == null) | 203 _uri.decodeQueryTo(_baseParameters); |
205 _uri.decodeQueryTo(_baseParameters); | |
206 else | |
207 { | |
208 try | |
209 { | |
210 _uri.decodeQueryTo(_baseParameters,_queryEncoding); | |
211 } | |
212 catch (UnsupportedEncodingException e) | |
213 { | |
214 if (LOG.isDebugEnabled()) | |
215 LOG.warn("",e); | |
216 else | |
217 LOG.warn(e.toString()); | |
218 } | |
219 } | |
220 } | 204 } |
221 | 205 |
222 // handle any _content. | 206 // handle any _content. |
223 String encoding = getCharacterEncoding(); | 207 String encoding = getCharacterEncoding(); |
224 String content_type = getContentType(); | 208 String content_type = getContentType(); |
743 { | 727 { |
744 return _protocol; | 728 return _protocol; |
745 } | 729 } |
746 | 730 |
747 /* ------------------------------------------------------------ */ | 731 /* ------------------------------------------------------------ */ |
748 public String getQueryEncoding() | |
749 { | |
750 return _queryEncoding; | |
751 } | |
752 | |
753 /* ------------------------------------------------------------ */ | |
754 /* | 732 /* |
755 * @see javax.servlet.http.HttpServletRequest#getQueryString() | 733 * @see javax.servlet.http.HttpServletRequest#getQueryString() |
756 */ | 734 */ |
757 public String getQueryString() | 735 public String getQueryString() |
758 { | 736 { |
759 if (_queryString == null && _uri != null) | 737 if (_queryString == null && _uri != null) |
760 { | 738 { |
761 if (_queryEncoding == null) | 739 _queryString = _uri.getQuery(); |
762 _queryString = _uri.getQuery(); | |
763 else | |
764 _queryString = _uri.getQuery(_queryEncoding); | |
765 } | 740 } |
766 return _queryString; | 741 return _queryString; |
767 } | 742 } |
768 | 743 |
769 /* ------------------------------------------------------------ */ | 744 /* ------------------------------------------------------------ */ |
1262 _serverName = null; | 1237 _serverName = null; |
1263 _method = null; | 1238 _method = null; |
1264 _pathInfo = null; | 1239 _pathInfo = null; |
1265 _port = 0; | 1240 _port = 0; |
1266 _protocol = HttpVersions.HTTP_1_1; | 1241 _protocol = HttpVersions.HTTP_1_1; |
1267 _queryEncoding = null; | |
1268 _queryString = null; | 1242 _queryString = null; |
1269 _requestURI = null; | 1243 _requestURI = null; |
1270 _scheme = URIUtil.HTTP; | 1244 _scheme = URIUtil.HTTP; |
1271 _servletPath = null; | 1245 _servletPath = null; |
1272 _timeStamp = 0; | 1246 _timeStamp = 0; |
1298 * | 1272 * |
1299 * @see javax.servlet.ServletRequest#setAttribute(java.lang.String, java.lang.Object) | 1273 * @see javax.servlet.ServletRequest#setAttribute(java.lang.String, java.lang.Object) |
1300 */ | 1274 */ |
1301 public void setAttribute(String name, Object value) | 1275 public void setAttribute(String name, Object value) |
1302 { | 1276 { |
1303 Object old_value = _attributes == null?null:_attributes.getAttribute(name); | |
1304 | |
1305 if (name.startsWith("org.eclipse.jetty.")) | |
1306 { | |
1307 if ("org.eclipse.jetty.server.Request.queryEncoding".equals(name)) | |
1308 setQueryEncoding(value == null?null:value.toString()); | |
1309 else if ("org.eclipse.jetty.server.sendContent".equals(name)) | |
1310 { | |
1311 try | |
1312 { | |
1313 ((AbstractHttpConnection.Output)getServletResponse().getOutputStream()).sendContent(value); | |
1314 } | |
1315 catch (IOException e) | |
1316 { | |
1317 throw new RuntimeException(e); | |
1318 } | |
1319 } | |
1320 else if ("org.eclipse.jetty.server.ResponseBuffer".equals(name)) | |
1321 { | |
1322 try | |
1323 { | |
1324 final ByteBuffer byteBuffer = (ByteBuffer)value; | |
1325 synchronized (byteBuffer) | |
1326 { | |
1327 NIOBuffer buffer = byteBuffer.isDirect()?new DirectNIOBuffer(byteBuffer,true):new IndirectNIOBuffer(byteBuffer,true); | |
1328 ((AbstractHttpConnection.Output)getServletResponse().getOutputStream()).sendResponse(buffer); | |
1329 } | |
1330 } | |
1331 catch (IOException e) | |
1332 { | |
1333 throw new RuntimeException(e); | |
1334 } | |
1335 } | |
1336 else if ("org.eclipse.jetty.io.EndPoint.maxIdleTime".equalsIgnoreCase(name)) | |
1337 { | |
1338 try | |
1339 { | |
1340 getConnection().getEndPoint().setMaxIdleTime(Integer.valueOf(value.toString())); | |
1341 } | |
1342 catch (IOException e) | |
1343 { | |
1344 throw new RuntimeException(e); | |
1345 } | |
1346 } | |
1347 } | |
1348 | |
1349 if (_attributes == null) | 1277 if (_attributes == null) |
1350 _attributes = new AttributesMap(); | 1278 _attributes = new AttributesMap(); |
1351 _attributes.setAttribute(name,value); | 1279 _attributes.setAttribute(name,value); |
1352 } | 1280 } |
1353 | |
1354 /* ------------------------------------------------------------ */ | |
1355 /* | |
1356 */ | |
1357 public void setAttributes(Attributes attributes) | |
1358 { | |
1359 _attributes = attributes; | |
1360 } | |
1361 | |
1362 /* ------------------------------------------------------------ */ | |
1363 | 1281 |
1364 /* ------------------------------------------------------------ */ | 1282 /* ------------------------------------------------------------ */ |
1365 /* | 1283 /* |
1366 * @see javax.servlet.ServletRequest#setCharacterEncoding(java.lang.String) | 1284 * @see javax.servlet.ServletRequest#setCharacterEncoding(java.lang.String) |
1367 */ | 1285 */ |
1507 _protocol = protocol; | 1425 _protocol = protocol; |
1508 } | 1426 } |
1509 | 1427 |
1510 /* ------------------------------------------------------------ */ | 1428 /* ------------------------------------------------------------ */ |
1511 /** | 1429 /** |
1512 * Set the character encoding used for the query string. This call will effect the return of getQueryString and getParamaters. It must be called before any | |
1513 * geParameter methods. | |
1514 * | |
1515 * The request attribute "org.eclipse.jetty.server.server.Request.queryEncoding" may be set as an alternate method of calling setQueryEncoding. | |
1516 * | |
1517 * @param queryEncoding | |
1518 */ | |
1519 public void setQueryEncoding(String queryEncoding) | |
1520 { | |
1521 _queryEncoding = queryEncoding; | |
1522 _queryString = null; | |
1523 } | |
1524 | |
1525 /* ------------------------------------------------------------ */ | |
1526 /** | |
1527 * @param queryString | 1430 * @param queryString |
1528 * The queryString to set. | 1431 * The queryString to set. |
1529 */ | 1432 */ |
1530 public void setQueryString(String queryString) | 1433 public void setQueryString(String queryString) |
1531 { | 1434 { |
1532 _queryString = queryString; | 1435 _queryString = queryString; |
1533 _queryEncoding = null; //assume utf-8 | |
1534 } | 1436 } |
1535 | 1437 |
1536 /* ------------------------------------------------------------ */ | 1438 /* ------------------------------------------------------------ */ |
1537 /** | 1439 /** |
1538 * @param addr | 1440 * @param addr |
1725 { | 1627 { |
1726 if (merge_old_query) | 1628 if (merge_old_query) |
1727 { | 1629 { |
1728 StringBuilder overridden_query_string = new StringBuilder(); | 1630 StringBuilder overridden_query_string = new StringBuilder(); |
1729 MultiMap<String> overridden_old_query = new MultiMap<String>(); | 1631 MultiMap<String> overridden_old_query = new MultiMap<String>(); |
1730 UrlEncoded.decodeTo(_queryString,overridden_old_query,getQueryEncoding());//decode using any queryencoding set for the request | 1632 UrlEncoded.decodeTo(_queryString,overridden_old_query,null);//decode using any queryencoding set for the request |
1731 | 1633 |
1732 | 1634 |
1733 MultiMap<String> overridden_new_query = new MultiMap<String>(); | 1635 MultiMap<String> overridden_new_query = new MultiMap<String>(); |
1734 UrlEncoded.decodeTo(query,overridden_new_query,StringUtil.__UTF8); //have to assume utf8 as we cannot know otherwise | 1636 UrlEncoded.decodeTo(query,overridden_new_query,StringUtil.__UTF8); //have to assume utf8 as we cannot know otherwise |
1735 | 1637 |