我可以在运行时创建servlet吗?

时间:2011-06-09 13:18:27

标签: java servlets glassfish

我有一个包含多个servlet的网站。每个页面如 index,about,FAQ,联系我们等,都有一个连接到它们的servlet。我还计划使用按钮create new page添加其他页面,以便当有人点击它时,将为该页面分配一个新的servlet。

是否可以在运行时创建servlet?我的猜测是可能(或者至少非常困难)。

...如果没有,有没有解决方法?

如果重要的话,我正在使用GlassFish。

3 个答案:

答案 0 :(得分:4)

不,你不能创建新的servlet,但你建议的是一个常见的要求。当用户创建新页面时,您需要将其保存在某个位置,例如数据库或文件系统。我会建议数据库。

然后编写servlet代码,根据数据库的内容动态呈现页面菜单和每个页面内容。

在此示例中,您的servlet可以扮演Front Side Controller的角色来处理决定请求哪个视图的决策点并调度它的呈现(您可能需要一个单独的Dispatcher)。您的JSP本质上可能非常通用,即保存菜单和页面内容,它根据Servlet在适当的范围(例如请求)中设置的数据呈现。

答案 1 :(得分:1)

JSP用于动态内容。使用它们

答案 2 :(得分:0)

您实现的具体功能是否需要每页创建一个新的servlet?您是如何考虑这样做的(动态生成Java代码并动态编译?字节代码生成?)?或者您在考虑将新URL映射到现有的servlet?无论哪种方式,它对我来说都没有多大意义。

听起来像你需要CMS一样吗?对基于Java的CMS here

进行了一些很好的讨论