首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >捕获JSP输出,保存到文件

捕获JSP输出,保存到文件
EN

Stack Overflow用户
提问于 2009-03-13 18:53:04
回答 5查看 9.8K关注 0票数 5

我的任务是尝试创建一个网站,这将创建自定义HTML模板。定制是基于用户输入进行定制的。我目前正在使用tomcat / JSP来处理前端的其余部分。我想要做的是在JSP中创建HTML模板以输出条件HTML代码,但我不想将此HTML输出显示给用户,而是希望将此代码保存到几个文件中(这些文件将被压缩并与图像、css文件、js文件一起交付给用户)。我需要知道如何创建一个伪容器来执行JSP文件(流程包含和求值变量)。

我读到过使用服务器筛选器截取JSP代码的输出,但我不确定这是否有效,因为a)我需要创建几个HTML文件,b)我需要向用户显示不同的内容(例如,这里是您的zip文件,下载它),而不是正在处理的JSP的输出。

谢谢!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-03-13 19:23:51

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

代码语言:javascript
运行
复制
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中,您可以压缩所有提取的文件,并将其返回给用户

票数 4
EN

Stack Overflow用户

发布于 2009-03-13 19:20:37

您可以创建一个servlet,它通过打开URLConnection然后将输出读入临时文件或缓冲区来调用JSP。然后,它会将其压缩并将其写出。

票数 1
EN

Stack Overflow用户

发布于 2009-03-13 20:00:23

我真的不太明白你的问题,但我会试一试。为什么不创建一个servlet,让它使用以下代码调用您的jsp文件:

代码语言:javascript
运行
复制
    RequestDispatcher d = getServletContext().getRequestDispatcher(jspName);
    d.forward(request, response);

让jsp显示前端的表单/用户输入值。完成表单后,提交表单。在这一点上,jsp将把上下文返回给servlet,您可以在servlet中解析值,确定要创建哪些文件并返回给用户。一旦确定了要向用户显示的内容,就将其放入另一个jsp中,并将上下文传递给该jsp。

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

如果我完全没有理解你的问题的要点,请随意删除此回复。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/644106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档