我有一個使用插件體系結構的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. Java - 向Servlet動態添加URL模式
- 2. 如何動態添加值傳遞到servlet的
- 3. 如何動態添加Servlet到碼頭服務器?
- 4. 將init參數添加到init列表(ServletConfig)中
- 5. 將Tinymce添加到動態添加div
- 6. 動態添加imagebuttons不添加到page.Request.Form
- 7. 將jQuery添加到java servlet
- 8. 將功能添加到servlet
- 9. 在會話啓動時動態添加/刪除servlet過濾器
- 10. 動態添加值到UIBezierPath
- 11. 動態添加到textarea的
- 12. 動態添加類到div
- 13. 動態添加列到JTable
- 14. 添加動態類到「datetimepicker」
- 15. 動態添加到horizontalscrollview
- 16. 動態添加行到AdvancedDataGrid
- 17. 動態添加ImageView到TableRow
- 18. 動態添加HTML到ASP.NET
- 19. 動態添加到類
- 20. 動態添加行到gridview
- 21. 動態添加行到tableview
- 22. 動態添加行到表
- 23. 動態添加JPanel到Jframe
- 24. 動態添加行到gridview
- 25. 動態添加ImageView到LinearLayout
- 26. 動態添加DockPanel到StackPanel
- 27. 動態添加tabtab到tabcontrol
- 28. 動態添加SVG到DOM
- 29. 動態添加項到ListView
- 30. 動態添加行到dataGridView
這非常完美,非常感謝。 – BigBadOwl 2009-12-13 21:35:40