我们可以在一个servlet项目中有两个应用程序吗?

时间:2014-05-23 01:56:46

标签: java jsp servlets

这个问题的背景是我正在尝试将sendRedirect从一个Servlet用于另一个Servlet。

所以如果我们不能在一个servlet项目中有两个应用程序。然后,我将把这两个servlet放在两个不同的Servlet项目中。如果我这样做,sendRedirect会工作吗?

1 个答案:

答案 0 :(得分:0)

如果您想在单个应用程序下提供多个根,您肯定可以。使用servlet看起来就像使用pre 3.0 spec

<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,则可以转到

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

您可以在web.xml中放置一个fitler,它可以根据您的业务规则从一个serlvet重定向到另一个serlvet,或者您可以通过servlet调度程序透明地将请求转发到任一servlet,您可以通过它request.getServletContext()。getNamedDispatcher( “servlet1”)