getServletPath 및 getPathInfo 메소드에서 동작 변경 확인

기본 서블릿 맵핑은 / 문자만을 맵핑합니다. 이전 버전의 WebSphere에서 기본 서블릿 맵핑을 위한 javax.servlet.http.HttpServletRequest.getServletPath 메소드 호출에서는 빈 문자열을 리턴하고, javax.servlet.http.HttpServletRequest.getPathInfo 메소드 호출에서는 / 문자를 리턴합니다.

그러나 Liberty(Servlet 4.0 기능 포함)에서 기본 서블릿 맵핑을 위한 getServletPath 호출은 / 문자를 리턴하고 getPathInfo 호출은 null을 리턴합니다.

예를 들어, 다음 코드를 고려해 보십시오.

< 보안 범위 class = "코드"> @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());
}
}

WebSphere traditional 및 Liberty(Servlet 3.0 또는 3.1 포함)에서는 코드가 다음과 같이 출력됩니다.

< span class = "Code"> getServlet경로:
getPathInfo: /

Liberty(Servlet 4.0 포함)에서 코드는 다음과 같이 출력됩니다.

< span class = "Code"> getServlet경로: /
getPathInfo: null

Servlet 4.0 기능 사용 시 이전 동작으로 돌아가려면 server.xml 파일에 <webContainer servletPathForDefaultMapping="false"/> 구성을 추가하십시오.

추가 정보는 다음을 참조하십시오.