我想从我的应用程序中读取 jsp 页面并将其保存到文件中 - 它是输出,而不是代码本身。另外,我的应用程序具有基本身份验证(用户名+密码)。
如果它是一个 Servlet,我可以访问它的 doGet 方法。
我找到的一个解决方案是-打开 URL 连接,提供身份验证详细信息并读取流。
我想知道是否还有另一种选择,可能是访问Web容器中生成的Servlet,然后使用反射调用类doGet。
您可以预编译 JSP,然后调用 servlet(甚至不必使用反射)。如果您尝试在没有预编译的情况下调用 JSP 的 servlet,那么它可能还没有退出(因为通常服务器只在第一次调用 JSP 后才编译它)。
要预编译 JSP,请检查您的 Web 服务器文档。
我个人认为你最好使用 URL 连接。预编译 JSP 是不可移植的(因为您需要为每个 Web 服务器以不同的方式进行)。
编辑
您还可以使用RequestDispatcher.include()
带有包装响应对象的方法,如本答案中所述。