getPathInfo ()를 사용하여 추가 경로 정보를 얻기 위해 서블릿을 매핑하는 방법

StackOverflow https://stackoverflow.com/questions/124685

  •  02-07-2019
  •  | 
  •  

문제

Tomcat이 추가 경로 정보를 서블릿 이름의 일부로 처리하는 문제가 있습니다. 이것은 우리의 WebApp에서 많은 편안한 기능을 깨뜨리는 것입니다 (우리는 크롤러 친화적 인 링크의 이름 = 값 쌍보다는 추가 경로 정보를 사용합니다).

이전에 올바르게 작동했지만 명백한 매핑을 추가하고 Invoker 우리가 이전에 서블릿을 제공하는 데 사용했던 서틀. 예를 들어 다음 링크를 고려하십시오.

http://mydomain.com/servlet/myservlet/param1/param2/param3

MyServlet 예전에 올바르게 호출되었고 "/param1/param2/param3"에 의해 반환되었습니다. getPathInfo()HttpServletRequest.

이제 Tomcat이 MyServlet/Param1/Param2/Param3를 서블릿으로로드하려고하는 것으로 보입니다.

23/Sep/2008 : 16 : 44 : 23-0700] "Get/Servlet/MyServlet/Param1/Param3 HTTP/1.0"404

다음은 Web.xml에 정의되고 매핑되는 방식입니다.http://mydomain.com/servlet/myservlet"잘 작동합니다.

<servlet>
  <servlet-name>MyServlet</servlet-name>
  <servlet-class>com.myclass.etcetera.MyServlet</servlet-class>
</servlet>

<servlet-mapping>
  <servlet-name>MyServlet</servlet-name>
  <url-pattern>/servlet/MyServlet</url-pattern>
</servlet-mapping>
도움이 되었습니까?

해결책

/servlet/myservlet/*에 매핑해야합니다.

당신은 후행 "/*"를 놓치고 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top