我有一个包含多个servlet的网站。每个页面如 index,about,FAQ,联系我们等,都有一个连接到它们的servlet。我还计划使用按钮create new page
添加其他页面,以便当有人点击它时,将为该页面分配一个新的servlet。
是否可以在运行时创建servlet?我的猜测是不可能(或者至少非常困难)。
...如果没有,有没有解决方法?
如果重要的话,我正在使用GlassFish。
答案 0 :(得分:4)
不,你不能创建新的servlet,但你建议的是一个常见的要求。当用户创建新页面时,您需要将其保存在某个位置,例如数据库或文件系统。我会建议数据库。
然后编写servlet代码,根据数据库的内容动态呈现页面菜单和每个页面内容。
在此示例中,您的servlet可以扮演Front Side Controller的角色来处理决定请求哪个视图的决策点并调度它的呈现(您可能需要一个单独的Dispatcher)。您的JSP本质上可能非常通用,即保存菜单和页面内容,它根据Servlet在适当的范围(例如请求)中设置的数据呈现。
答案 1 :(得分:1)
JSP用于动态内容。使用它们
答案 2 :(得分:0)
您实现的具体功能是否需要每页创建一个新的servlet?您是如何考虑这样做的(动态生成Java代码并动态编译?字节代码生成?)?或者您在考虑将新URL映射到现有的servlet?无论哪种方式,它对我来说都没有多大意义。
听起来像你需要CMS一样吗?对基于Java的CMS here
进行了一些很好的讨论