小编典典

动态将servlet添加到servletConfig

java

我有一个使用插件体系结构的Java
Web应用程序。我想知道是否有人可以通过Web应用程序运行时通过Serlvet映射到servletconfig来添加servlet的解决方案?这样的想法是,可以将一个类添加到/
WEB-INF /
classes文件夹中,并使其成为Servlet,而无需重新启动Web应用程序。同样,如果用户选择删除“插件”,则让代码从servletconfig中删除该类。


阅读 220

收藏
2020-11-01

共1个答案

小编典典

没有标准的Servlet API可以完成此任务。

您可以在Tomcat中执行此操作。在您的webapp中,必须实现您的主servlet(一个servlet创建其他),ContainerServlet这样您才能掌握该Wrapper对象。安装班级文件后,您可以进行以下调用,

Context context = (Context) wrapper.getParent();
Wrapper newWrapper = context.createWrapper();
newWrapper.setName(name);
newWrapper.setLoadOnStartup(1);
newWrapper.setServletClass(servletClass);
context.addChild(newWrapper);
context.addServletMapping(pattern, name);

这些调用会动态创建一个servlet。您需要找到保留此信息的方法。您可以通过更新web.xml或写入自己的文件来实现。

2020-11-01