From 6bd558bcb01b600bd80ce3fef1ab323e59508ba0 Mon Sep 17 00:00:00 2001 From: hns Date: Wed, 1 Sep 2004 15:27:13 +0000 Subject: [PATCH] Minor fixes from Juerg Lehni: Add trailing "/" in path info, plus code improvements --- src/helma/servlet/AbstractServletClient.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/helma/servlet/AbstractServletClient.java b/src/helma/servlet/AbstractServletClient.java index 4cd50446..d64eeb1e 100644 --- a/src/helma/servlet/AbstractServletClient.java +++ b/src/helma/servlet/AbstractServletClient.java @@ -125,11 +125,7 @@ public abstract class AbstractServletClient extends HttpServlet { if (encoding == null) { // no encoding from request, use standard one - encoding = defaultEncoding; - } - - if (encoding == null) { - encoding = "ISO-8859-1"; + encoding = defaultEncoding != null ? defaultEncoding : "ISO-8859-1"; } // read and set http parameters @@ -722,7 +718,8 @@ public abstract class AbstractServletClient extends HttpServlet { t = new StringTokenizer(req.getServletPath(), "/"); prefixTokens += t.countTokens(); - t = new StringTokenizer(req.getRequestURI(), "/"); + String uri = req.getRequestURI(); + t = new StringTokenizer(uri, "/"); int uriTokens = t.countTokens(); StringBuffer pathbuffer = new StringBuffer(); @@ -735,15 +732,19 @@ public abstract class AbstractServletClient extends HttpServlet { } if (i > prefixTokens) { - pathbuffer.append("/"); + pathbuffer.append('/'); } - if ((token.indexOf("+") == -1) && (token.indexOf("%") == -1)) { + if ((token.indexOf('+') == -1) && (token.indexOf('%') == -1)) { pathbuffer.append(token); } else { pathbuffer.append(URLDecoder.decode(token)); } } + + // append trailing "/" if it is contained in original URI + if (uri.endsWith("/")) + pathbuffer.append('/'); return pathbuffer.toString(); }