2015-09-14 137 views
1

我想在特定的Tomcat上下文中分配不同的默認servlet。根據Tomcat環境更改servlet映射

例如,當我的根上下文裏面,我想用下面的servlet映射:

<servlet-mapping> 
    <servlet-name>PageServlet</servlet-name> 
    <url-pattern>/</url-pattern> 
    </servlet-mapping> 

但是,當位於路徑/img-data上下文裏面,我想用:

<servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>/</url-pattern> 
    </servlet-mapping> 

這可能嗎?

回答

1

如果您的應用程序在servlet 3.0+容器中運行,您可以使用ServletContextListener動態設置默認servlet,具體取決於上下文路徑。

public class MyServletContextListener implements ServletContextListener { 
    @Override public void contextInitialized(ServletContextEvent event) { 
     ServletContext sc = event.getServletContext(); 
     if ("".equals(sc.getContextPath())) { 
      ServletRegistration.Dynamic dreg = sc.addServlet("pageservlet", new PageServlet()); 
      dreg.addMapping(""); 
     } 
    } 
} 
+0

問了一個後續問題,但我想我想通了(刪除它)。非常感謝這個答案。 – user2066880