繁体   English   中英

捕获JSP输出,保存到文件

[英]Capture JSP output, save to file

我的任务是尝试创建一个将创建自定义HTML模板的网站。 定制基于用户输入进行定制。 我目前在其余的前端使用tomcat / JSP。 我想做的是在JSP中创建HTML模板以输出条件HTML代码,但是我不想将此HTML输出显示给用户,而是希望将此代码保存到多个文件中(然后将其压缩并传递到用户以及图片,css文件,js文件)。 我需要知道如何创建一个将执行JSP文件的虚假容器(过程包括并评估变量)。

我读过有关使用服务器过滤器拦截JSP代码输出的信息,但我不确定这是否可行,因为a)我需要创建多个HTML文件,b)我需要向用户显示不同的内容(即,这是您的zip文件) (下载),而不是正在处理的JSP的输出。

谢谢!

这是一个主意。 创建一个Servlet来接受用户的输入,从Servlet使用java.net.HttpURLConnection将输入传递到JSP页面并获得结果。

URL urlPage = new URL(url);
HttpURLConnection conn = (HttpURLConnection)urlPage.openConnection();
conn.connect();
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));

//then loop through lines of webpage with br.readLine();

然后在您的servlet中,您可以压缩所有拉出的文件并将其返回给用户

您可以通过打开URLConnection,然后将输出读入临时文件或缓冲区来使Servlet调用JSP。 然后将其压缩并写出压缩文件。

我确实不确定我是否理解您的问题,但是我会对此稍作讨论。 为什么不创建一个servlet并使用以下命令调用您的jsp文件:


    RequestDispatcher d = getServletContext().getRequestDispatcher(jspName);
    d.forward(request, response);

让jsp用表格/用户输入的值显示前端。 填写完表格后,提交表格。 此时,jsp将把上下文返回到Servlet,您可以在其中解析值,确定要创建的文件并返回给用户。 确定要显示给用户的内容后,将其放入另一个jsp中,并将上下文传递给该jsp。

您可以通过2种方式执行此操作。 您可以为要返回的不同文件类型创建一个不同的jsp,只需调用适当的文件即可。 或者,您可以将所需的任何结构/值嵌入到jsp中,然后将它们放入jsp中,从而将它们传递给jsp。 您可以使用此事实来创建单个jsp,该jsp基于传入的参数(嵌入在请求中)将显示正确的信息。

如果我完全没有回答您的问题,请随时删除此回复。

编辑:无论哪种方式,您都必须将值嵌入请求中。

为什么不使用wget? 您可以将页面加载到实际容器中,然后使用wget从容器中检索生成的页面。

--input-file=FILE read URLs from file.

在wget中使用此选项将获取文件中的URL列表,并为您下载它们,就像文本将显示在浏览器的view-src中一样。

wget也可用于Windows和Linux。

您也可以尝试使用专门为此类工作设计的许多轻模板引擎中的某些。 这是我在执行类似任务且从未回头时所做的事情。 例如查看速度

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM