Java 这是生成html然后将html包含到jsp文件的有效策略吗?

Java 这是生成html然后将html包含到jsp文件的有效策略吗?,java,jsp,Java,Jsp,我需要对我的策略进行明智的检查,以最好地满足项目的要求。基本上,我有一个xml文件,需要定期解析并显示html输出(xslt不是一个选项) 我的想法是,我可以使用一个.jsp页面来检查存储最后解析日期的应用程序变量,以了解是否是重新生成文件的“时间”(x天已经过去)。如果是,我可以通过jsp解析xml,并将结果写入一个静态html文件,然后动态地将其包含到同一个jsp中进行渲染,如果不是,我将跳过重新生成,只包含html文件。包括html文件而不仅仅是呈现显示是为了节省后续访问的响应/处理时间

我需要对我的策略进行明智的检查,以最好地满足项目的要求。基本上,我有一个xml文件,需要定期解析并显示html输出(xslt不是一个选项)

我的想法是,我可以使用一个.jsp页面来检查存储最后解析日期的应用程序变量,以了解是否是重新生成文件的“时间”(x天已经过去)。如果是,我可以通过jsp解析xml,并将结果写入一个静态html文件,然后动态地将其包含到同一个jsp中进行渲染,如果不是,我将跳过重新生成,只包含html文件。包括html文件而不仅仅是呈现显示是为了节省后续访问的响应/处理时间

我的问题是,这是否是一种明智的方式,我特别关心的是:1)我是否能够覆盖一个html文件,该文件可能被访问者使用,也可能不被访问者使用;2)动态include via jsp是否会以这种方式工作,而无需页面重定向

提前感谢您的任何想法和长期的工作-


b

在Servlet中生成(翻译)XML可能更有意义。我这样说是因为您很可能会有一堆Java代码。Servlet可能比JSP更适合于一系列编程处理。

为什么不简单地包括JSP本身呢?如果JSP碰巧将XML“缓存”在一个静态文件中,那么就这样吧,但要注意,如果JSP在需要重新生成HTML文件时被调用两次,就会出现竞争条件(除非特别处理)

但是,通过这种方式,JSP的“客户机”至少不会暴露于其“缓存”机制(这恰好是一个HTML文件)

例如,您可以每次创建一个新的HTML文件,并将其名称存储在应用程序上下文中,或者其他任何内容,这样您就永远不会覆盖该文件。你可以缓存它RAM,你根本不能缓存它

关键是客户机只知道JSP,而不关心它如何或为什么创建HTML,这是它应该做的。

我会使用缓存(例如ehcache)来存储生成的HTML,以及所需的ttl

呈现可以由servlet(您可以使用jsp,但在servlet中使用cleaner)处理,该servlet将从缓存中查找html,并将其作为响应返回。 如果html不在缓存中,或者是因为它没有生成或者已经过期,那么它将被生成并存储在缓存中


从xml生成html甚至可以由一个单独的线程来处理,以避免在生成html时对用户造成任何延迟。

理解,技术要求会使在jsp中保存html变得更好,我不能通过