2014-05-23 7 views
-2

Фон для этого вопроса заключается в том, что я пытаюсь использовать sendRedirect с одного сервлета на другой.Можем ли мы иметь два приложения в одном проекте сервлета?

поэтому, если у нас не может быть два приложения в одном проекте сервлета. то мне придется поместить оба этих сервлета в два разных проекта Servlet. Если я это сделаю, отправитRedirect работу?

ответ

0

Если вы хотите обслуживать несколько корней под одним приложением, вы наверняка сможете. Использование сервлетов это будет выглядеть, как с помощью заранее 3.0 спецификации

<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> 

Так что, если ваш WAR называется TestApplication.war вы бы добраться до сервлетов, перейдя в

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

Вы можете поставить Фитлер в web.xml, который может либо перенаправлять с одного сервета на другой в зависимости от ваших бизнес-правил, либо вы можете прозрачно перенаправить запрос на сервлет через диспетчер сервлетов, который вы можете получить через request.getServletContext(). getNamedDispatcher ("servlet1")

+1

Благодарим вас за лет ур ответ. –

Смежные вопросы