我有一个使用插件体系结构的Java Web应用程序。我想知道是否有人有一个解决方案,通过一个人可以添加一个servlet,并且在web应用程序运行时通过serlvet映射到servletconfig?这个想法是,一个类可以添加到/ WEB-INF/classes文件夹中,并且可以在不重新启动Web应用程序的情况下作为servlet激活。同样,如果用户选择删除“插件”,然后让代码从servletconfig中删除类。动态添加servlet到servletConfig
9
A
回答
5
没有标准的Servlet API来实现这一点。
你可以在Tomcat中做到这一点。在您的Web应用程序中,您的主servlet(创建其他人)必须执行ContainerServlet
,以便您可以获取Wrapper
对象。一旦你安装了你的班级档案,你可以拨打以下电话:
这些调用会立即创建一个servlet。你需要找到方法来坚持这些信息。您可以通过更新web.xml或写入您自己的文件来完成此操作。
1
向正在运行的应用程序中添加和从中删除类很困难。你可能想看看JRebel的商业解决方案。
如果您的用户没有很长时间的正在运行的对话/会话,可能重新启动您的Web应用程序可能会很快,以至于他们不会注意到。如果这会为你做,那么问题就变得很容易。
假设你正在运行Tomcat,你可以用reloadable=true
配置您的服务器,当你抛出一个新的web.xml
到webapps
目录将重新启动应用程序。您可以将新类添加到WEB-INF/classes
目录,然后更新web.xml
,这应该可以正常工作。如果这些类正在使用,删除类可能会更困难。您可能需要执行2个步骤,首先部署不再路由到给定Servlet类的web.xml
,然后等待一段时间让类用户离开,然后删除该类并重新部署更新的web.xml
。
0
我不认为你可以做到这一点动态,但你可以尝试使用预先配置的过滤器使servlet活动或不活动。使筛选器检查一个可以在数据库或文件系统中动态更改的值,并告诉它如何在servlet“关闭”时重新路由请求。
我认为在没有给用户提供某种反馈的情况下简单地关闭servlet是不礼貌的。
相关问题
- 1. 如何动态添加值传递到servlet的
- 2. 如何动态添加Servlet到码头服务器?
- 3. 将Tinymce添加到动态添加div
- 4. 将功能添加到servlet
- 5. 动态添加JPanel到Jframe
- 6. 动态行添加到TableLayout
- 7. 动态添加HTML到ASP.NET
- 8. 动态添加RatingBar到ListFragment
- 9. 动态添加SVG到DOM
- 10. 动态添加行到gridview
- 11. 添加动态类到“datetimepicker”
- 12. 动态添加行到dataGridView
- 13. 动态添加值到UIBezierPath
- 14. 动态添加行到AdvancedDataGrid
- 15. 动态添加textViews到linearLayout
- 16. 动态添加ImageView到TableRow
- 17. 动态添加DockPanel到StackPanel
- 18. Rails - 动态添加到sortable_element
- 19. 动态添加itemboard到gridview
- 20. 动态添加到类
- 21. 添加CustomViews到LayoutView动态
- 22. 动态添加到horizontalscrollview
- 23. 动态添加行到表
- 24. ServletConfig vs ServletContext
- 25. 动态Servlet
- 26. 动态添加WebLogic 12c中的servlet无法正常工作?
- 27. 有没有办法在jsp/servlet中动态地添加列?
- 28. 动态添加意图到活动
- 29. 将活动添加到动态HTML
- 30. 动态添加动作到commandButton
这非常完美,非常感谢。 – BigBadOwl 2009-12-13 21:35:40