2010-12-07 4 views
26

서블릿 매핑과 관련된 문제가 있습니다. 나는 web.xml 파일에 다음과 같은 한 :서블릿 매핑 : 슬래시가있는 URL의 url 패턴

<servlet> 
    <servlet-name>HelloWorldServlet</servlet-name> 
    <servlet-class>test.HelloWorldServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>HelloWorldServlet</servlet-name> 
    <url-pattern>/HelloWorld</url-pattern> 
</servlet-mapping> 

나가라고 http://localhost:<port>/MyApp/HelloWorld 서블릿 HelloWorldServlet에 액세스하는 경우.

내 서블릿이 http://localhost:<port>/MyApp/HelloWorld/에 응답하기를 바랍니다. 이 효과를 얻으려면 어떻게해야합니까? NetBeans를 사용하여 개발 중이지만 /으로 끝나는 패턴을 넣을 수 없습니다.

+0

아직 작동하지 않습니까? – thejh

+1

뒤에 "/"를 입력하면 어떻게됩니까? – darioo

+0

netbeans 프론트 엔드없이 xml을 편집하고 프로젝트를 배포하면 이미지, CSS 및 js가로드되지 않습니다. –

답변

29

당신이에 와일드 카드를 추가 한 후, 해당 <url-pattern>

<url-pattern>/HelloWorld/*</url-pattern> 

당신은 HttpServletRequest.getPathInfo()를 사용하여 URL과 관련된 추가 경로를 얻을 수 있습니다.

예.

http://localhost:<port>/MyApp/HelloWorld/one/

결과는의 JavaDoc에서

/one/ 

될 것입니다 :

반환 URL이이 요청을했을 때 보낸 클라이언트 와 관련된 추가 경로 정보 . 여분의 경로 정보는 서블릿 경로를 따르지만 쿼리 문자열 앞에오고 "/" 문자로 시작합니다.

7

와일드 카드를 사용하십시오. 특정 URL로가는 모든 트래픽을 동일한 서블릿으로 리디렉션 할 수 있습니다. 예를 들어 다음을 추가 할 수 있습니다.

이렇게하면 슬래시가있는 URL이 원래 서블릿으로 리디렉션됩니다.

하나의 생각 - 이것은 서블릿에 대한이 URL 패턴으로 어떤 것을 재지향합니다. 이 URL보다 다른 URL을 원하면 지정된 URL을보고 올바른 URL로 리디렉션 할 서블릿을 만들어야합니다. 또는 매핑을 제공하는 프레임 워크를 사용할 수도 있습니다.