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]

Reply via email to