2014-05-23 3 views
-2

이 질문에 대한 배경은 한 서블릿에서 다른 서블릿으로 sendRedirect를 사용하려고한다는 것입니다.하나의 서블릿 프로젝트에 두 개의 응용 프로그램을 사용할 수 있습니까?

하나의 서블릿 프로젝트에서 두 개의 애플리케이션을 사용할 수없는 경우. 그렇다면이 두 서블릿을 두 개의 다른 서블릿 프로젝트에 넣어야합니다. 내가 그렇게한다면, 리디렉션 작업을 보낼 것인가?

답변

0

단일 응용 프로그램에서 여러 개의 루트를 제공하려는 경우에는 가능합니다. 서블릿을 사용하여 WAR가 TestApplication.war를 호출하는 경우

<servlet> 
    <servlet-name>servlet1</servlet-name> 
    <servlet-class>com.test.servlets.Servlet1</servlet-class>  
</servlet> 
<servlet> 
    <servlet-name>servlet2</servlet-name> 
    <servlet-class>com.test.servlets.TemplateServlet</servlet-class> 
</servlet> 

<servlet-mapping> 
    <servlet-name>servlet1</servlet-name> 
    <url-pattern>/api/servlet1/*</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>servlet2</servlet-name> 
    <url-pattern>/api/servlet1/*</url-pattern> 
</servlet-mapping> 

그래서 당신이

http://localhost:8080/TestApplication/api/servlet1/MorePath?also=variables&go=here 
http://localhost:8080/TestApplication/api/servlet2/MorePath?also=variables&go=here 

당신은 fitler를 둘 수 있었다으로 이동하여 서블릿에 도착하려는 전 3.0 스펙을 사용하여 같은 것을 보일 것이다 web.xml에서 비즈니스 규칙에 따라 하나의 serlvet에서 다른 serlvet로 리디렉션 할 수 있거나 request.getServletContext(). getNamedDispatcher()에 의해 얻을 수있는 서블릿 디스패처를 통해 서블릿으로 투명하게 전달할 수 있습니다. "servlet1")

+1

감사합니다. ur 대답. –

관련 문제