기본 서블릿 맵핑은 / 문자만을 맵핑합니다. WebLogic에서 기본 서블릿 맵핑을 위한
javax.servlet.http.HttpServletRequest.getServletPath 메소드 호출에서는 빈 문자열을 리턴하고,
javax.servlet.http.HttpServletRequest.getPathInfo 메소드 호출에서는 null을 리턴합니다.
WebSphere traditional에서 기본 서블릿 맵핑을 위한 getServletPath 호출에서는 빈 문자열을 리턴하지만,
getPathInfo 메소드 호출에서는 / 문자를 리턴합니다.
이와 유사하게 Liberty로 마이그레이션 중이고 Servlet 3.0 또는 3.1 기능 구현을 사용 중인 경우,
기본 서블릿 맵핑을 위한 getServletPath 호출에서는 빈 문자열을 리턴하지만
getPathInfo 메소드 호출에서는 / 문자를 리턴합니다.
그러나 Servlet 4.0 기능을 사용하는 경우 getServletPath 호출은 / 문자를 리턴하고
getPathInfo 호출은 null을 리턴합니다.
예를 들어, 다음 코드를 고려해 보십시오.
|
@WebServlet("/") public class TestServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) { System.out.println("getServletPath: " + req.getServletPath()); System.out.println("getPathInfo: " + req.getPathInfo()); } } |
WebLogic에서 이 코드는 다음을 출력합니다.
|
getServletPath: getPathInfo: null |
WebSphere traditional 및 Liberty(Servlet 3.0 또는 3.1 포함)에서는 코드가 다음과 같이 출력됩니다.
|
getServletPath: getPathInfo: / |
Liberty(Servlet 4.0 포함)에서 코드는 다음과 같이 출력됩니다.
|
getServletPath: / getPathInfo: null |
WebSphere traditional 또는 Liberty(Servlet 3.0 또는 3.1 포함) 구현으로 마이그레이션하는 경우,
사용자 코드가 null 대신 / 문자를 리턴하는 getPathInfo를 설명하도록 하십시오.
Liberty(Servlet 4.0 포함) 구현으로 마이그레이션하는 경우 사용자 코드가 빈 문자열 대신
/ 문자를 리턴하는 getServletPath에 대해 설명하도록 하십시오.
추가 정보는 다음을 참조하십시오.