remm 2003/08/31 14:08:56
Modified: catalina/src/share/org/apache/catalina/core
ApplicationHttpRequest.java
catalina/src/share/org/apache/coyote/tomcat5
CoyoteRequest.java
Log:
- Include the patInfo when a relative path is used to get a request dispatcher.
- Submitted by Mark Thomas.
Revision Changes Path
1.12 +17 -9
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/ApplicationHttpRequest.java
Index: ApplicationHttpRequest.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/ApplicationHttpRequest.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- ApplicationHttpRequest.java 5 Aug 2003 13:22:03 -0000 1.11
+++ ApplicationHttpRequest.java 31 Aug 2003 21:08:55 -0000 1.12
@@ -70,7 +70,6 @@
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;
-import java.util.Set;
import java.util.Map;
import javax.servlet.RequestDispatcher;
@@ -80,7 +79,6 @@
import org.apache.catalina.Context;
import org.apache.catalina.Globals;
-import org.apache.catalina.HttpRequest;
import org.apache.catalina.Session;
import org.apache.catalina.util.Enumerator;
import org.apache.catalina.util.RequestUtil;
@@ -343,13 +341,23 @@
if (servletPath == null)
servletPath = getServletPath();
- int pos = servletPath.lastIndexOf('/');
+ // Add the path info, if there is any
+ String pathInfo = getPathInfo();
+ String requestPath = null;
+
+ if (pathInfo == null) {
+ requestPath = servletPath;
+ } else {
+ requestPath = servletPath + pathInfo;
+ }
+
+ int pos = requestPath.lastIndexOf('/');
String relative = null;
if (pos >= 0) {
relative = RequestUtil.normalize
- (servletPath.substring(0, pos + 1) + path);
+ (requestPath.substring(0, pos + 1) + path);
} else {
- relative = RequestUtil.normalize(servletPath + path);
+ relative = RequestUtil.normalize(requestPath + path);
}
return (context.getServletContext().getRequestDispatcher(relative));
1.15 +17 -14
jakarta-tomcat-catalina/catalina/src/share/org/apache/coyote/tomcat5/CoyoteRequest.java
Index: CoyoteRequest.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/coyote/tomcat5/CoyoteRequest.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- CoyoteRequest.java 29 Aug 2003 17:18:14 -0000 1.14
+++ CoyoteRequest.java 31 Aug 2003 21:08:56 -0000 1.15
@@ -66,17 +66,14 @@
import java.io.InputStream;
-import java.io.InputStreamReader;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.UnsupportedEncodingException;
import java.net.InetAddress;
import java.net.Socket;
import java.security.Principal;
-import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
-import java.util.Date;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;
@@ -89,11 +86,8 @@
import javax.servlet.FilterChain;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
import javax.servlet.ServletInputStream;
import javax.servlet.ServletRequest;
-import javax.servlet.ServletRequestEvent;
-import javax.servlet.ServletRequestListener;
import javax.servlet.ServletRequestAttributeEvent;
import javax.servlet.ServletRequestAttributeListener;
import javax.servlet.http.Cookie;
@@ -106,7 +100,6 @@
import org.apache.tomcat.util.http.FastHttpDateFormat;
import org.apache.tomcat.util.http.Parameters;
import org.apache.tomcat.util.http.mapper.MappingData;
-import org.apache.tomcat.util.net.SSLSupport;
import org.apache.coyote.ActionCode;
import org.apache.coyote.Request;
@@ -1307,13 +1300,23 @@
if (servletPath == null)
servletPath = getServletPath();
- int pos = servletPath.lastIndexOf('/');
+ // Add the path info, if there is any
+ String pathInfo = getPathInfo();
+ String requestPath = null;
+
+ if (pathInfo == null) {
+ requestPath = servletPath;
+ } else {
+ requestPath = servletPath + pathInfo;
+ }
+
+ int pos = requestPath.lastIndexOf('/');
String relative = null;
if (pos >= 0) {
relative = RequestUtil.normalize
- (servletPath.substring(0, pos + 1) + path);
+ (requestPath.substring(0, pos + 1) + path);
} else {
- relative = RequestUtil.normalize(servletPath + path);
+ relative = RequestUtil.normalize(requestPath + path);
}
return (context.getServletContext().getRequestDispatcher(relative));
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]