当前位置 : 主页 > 编程语言 > java >

服务存储在DB中的JSP

来源:互联网 收集:自由互联 发布时间:2021-06-25
我想将一个JSP页面作为blob存储在数据库中.因此,如果请求进入url http://mydomain.com/app/list.jsp,我知道要转到DB来检索资源list.jsp. 我正在使用弹簧和瓷砖,所以adispatcher servlet和控制器设置和传
我想将一个JSP页面作为blob存储在数据库中.因此,如果请求进入url http://mydomain.com/app/list.jsp,我知道要转到DB来检索资源list.jsp.

我正在使用弹簧和瓷砖,所以adispatcher servlet和控制器设置和传统意义上的工作.这原则上类似于资源servlet,Spring网站必须提供来自jar内的javascript文件和消息吗?

请注意,JSP不仅仅是静态HTML,我将拥有与页面关联的bean(模型属性),因此仍然希望使用EL来查询bean.

干杯

JSP加载和编译在servlet容器中实现.我可以考虑使用两种方法来实现此功能:

>修改servlet容器的JSP servlet.如果您正在使用开源的Jetty或Tomcat,您可以轻松查看其JSP servlet并对其进行更改,以便从数据库中读取JSP.您可以调整其中一个用于专有容器.这是解决问题的最直接方法,但是你正在进入潜在错误的雷区.
>按计划在数据库中构建CMS,但在应用程序运行时将JSP复制到正在运行的应用程序的文件系统.让应用程序服务器正常的JSP更改检测通知发生了更改.您可以使用过滤器来包装所有请求,过滤器会检查DB以查找更新的JSP,在修改时复制JSP,或使用预定作业以特定间隔复制它们.

在这两种情况下,您都必须担心卸载类的内存泄漏,特别是如果您的任何代码使用ThreadLocals或其他静态变量.如果在运行时卸载WAR或重新编译JSP,则正常的JSP加载器已经遇到问题.这是由于Java的限制,并且不容易解决(取决于使用哪个JDK).我建议永远不要或很少更改JSP而不重新启动服务器,除非你无法避免它.

网友评论