Oky*_*kyo 2 java servlets jakarta-ee
如何以编程方式映射多个 Servlets 3.0(不使用部署描述符 web.xml)
我所拥有的是非常有效的代码……但是我找不到任何将多个 servlet 添加/映射到 url-pattern 的方法:
@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.
}
}
Run Code Online (Sandbox Code Playgroud)
我需要的是这样的:
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");
Run Code Online (Sandbox Code Playgroud)
等等...
但这种方式不起作用,我事件尝试了一个数组......我做错了什么?
非常感谢你的帮助
您应该使用javax.servlet.ServletRegistration.Dynamic来注册您的 servlet,而不是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");
}
}
Run Code Online (Sandbox Code Playgroud)
您将以编程方式同时注册ServletA和ServletB注册。
BR。
| 归档时间: |
|
| 查看次数: |
2445 次 |
| 最近记录: |