这个问题的背景是我正在尝试将sendRedirect从一个Servlet用于另一个Servlet。
所以如果我们不能在一个servlet项目中有两个应用程序。然后,我将把这两个servlet放在两个不同的Servlet项目中。如果我这样做,sendRedirect会工作吗?
答案 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,则可以转到
来访问servlethttp://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”)