2

複数のサーブレット 3.0 をプログラムでマップする方法 (デプロイメント記述子 web.xml を使用しない)

私が持っているのは、うまく機能する次のコードです...しかし、複数のサーブレットをURLパターンに追加/マッピングする方法が見つかりませんでした:

@WebListener
public class NewServletListener implements ServletContextListener {

@Override
public void contextInitialized(ServletContextEvent sce) {
    ServletContext sc = sce.getServletContext();
    ServletRegistration sr = sc.addServlet("test", "BusinessObjects.test");  
    sr.addMapping("/test"); 
}

@Override
public void contextDestroyed(ServletContextEvent sce) {
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}

私が必要とするのは、これのようなものです:

ServletRegistration sr = sc.addServlet("testA", "BusinessObjects.testA");  
sr.addMapping("/testA"); 

ServletRegistration sr2 = sc.addServlet("testB", "BusinessObjects.testB");  
sr2.addMapping("/testB"); 

ServletRegistration sr3 = sc.addServlet("testC", "BusinessObjects.testC");  
sr3.addMapping("/testC");

等々...

しかし、この方法は機能しません。配列を試してみました...何が間違っていますか?

助けてくれてどうもありがとう

4

1 に答える 1

5

を使用しjavax.servlet.ServletRegistration.Dynamicてサーブレットを登録しないでください。ServletRegistrationコードは次のようになります。

@WebListener
public class MyContextListener implements ServletContextListener {

    @Override
    public void contextDestroyed(ServletContextEvent event) {
    }

    @Override
    public void contextInitialized(ServletContextEvent event) {
            ServletContext context = event.getServletContext();

            Dynamic dynamic = context.addServlet("ServletA", ServletA.class);
            dynamic.addMapping("/ServletA");

            Dynamic dynamic2 = context.addServlet("ServletB", ServletB.class);
            dynamic2.addMapping("/ServletB");
    }

}

そして、あなたは両方を持ち、ServletAプログラムServletB的に登録されます.

BR。

于 2014-02-15T13:48:07.547 に答える