2013-08-18 2 views
1

То, что я пытаюсь реализовать метод getPathTranslated(), но всегда возвращает нуль, это метод я использую:getpathtranslated возвращает нулевое значение

import java.io.IOException; 
import java.io.PrintWriter; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

public class FileLocation extends HttpServlet { 

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     //response.setContentType("text/html;charset=UTF-8"); 
     response.setContentType("text/plain"); 
     PrintWriter out = response.getWriter(); 

     if (request.getPathInfo() != null) { 
      out.println("The file \"" + request.getPathInfo() + "\""); 
      out.println("Is stored at \"" + request.getPathTranslated() + "\""); 
     } else { 
      out.println("Path info is null, no file to lookup"); 
     } 
    } 
} 

ответ

0

Если вы пытаетесь получить путь файловой системы, соответствующий URL-путь , попробуйте getServletContext().getRealPath("your_path").

+0

Затем getPathtranslated, что он служит, или полезен? –

0

Попробуйте эту строку:

request.getRequestURI().substring(request.getContextPath().length())

+0

Затем getPathtranslated, что он служит или полезен? –

0

В ситуациях, когда контейнер сервлетов не может определить правильный путь к файлу для getRealPath или getPathTranslated методов, например, когда веб-приложение выполняется из архива, на удаленная файловая система, недоступная локально или в базе данных, эти методы должны возвращать значение null.

Метод getPathTranslated вычисляет реальный путь pathInfo запроса.

Если нет ситуации, проверьте свое сопоставление сервлетов в дескрипторе развертывания.

Если у вас есть ситуация, как:

<url-pattern>*.xhtml</url-pattern> 

, то вы должны знать, что наблюдаемое поведение элемент пути, как следующее (предположим, что ваш путь запроса /myapp/admin/mypage.xhtml)

ContextPath: /myapp 
ServletPath: /admin/mypage.xhtml 
PathInfo: null 

Надеюсь, что это поможет вам проанализировать проблему с другой точки зрения.