我的任务是尝试创建一个网站,这将创建自定义HTML模板。定制是基于用户输入进行定制的。我目前正在使用tomcat / JSP来处理前端的其余部分。我想要做的是在JSP中创建HTML模板以输出条件HTML代码,但我不想将此HTML输出显示给用户,而是希望将此代码保存到几个文件中(这些文件将被压缩并与图像、css文件、js文件一起交付给用户)。我需要知道如何创建一个伪容器来执行JSP文件(流程包含和求值变量)。
我读到过使用服务器筛选器截取JSP代码的输出,但我不确定这是否有效,因为a)我需要创建几个HTML文件,b)我需要向用户显示不同的内容(例如,这里是您的zip文件,下载它),而不是正在处理的JSP的输出。
谢谢!
发布于 2009-03-13 19:23:51
这是一个想法。创建一个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中,您可以压缩所有提取的文件,并将其返回给用户
发布于 2009-03-13 19:20:37
您可以创建一个servlet,它通过打开URLConnection然后将输出读入临时文件或缓冲区来调用JSP。然后,它会将其压缩并将其写出。
发布于 2009-03-13 20:00:23
我真的不太明白你的问题,但我会试一试。为什么不创建一个servlet,让它使用以下代码调用您的jsp文件:
RequestDispatcher d = getServletContext().getRequestDispatcher(jspName);
d.forward(request, response);
让jsp显示前端的表单/用户输入值。完成表单后,提交表单。在这一点上,jsp将把上下文返回给servlet,您可以在servlet中解析值,确定要创建哪些文件并返回给用户。一旦确定了要向用户显示的内容,就将其放入另一个jsp中,并将上下文传递给该jsp。
您可以通过两种方式完成此操作。您可以为希望返回的不同文件类型创建不同的jsp,只需调用适当的jsp即可。或者,您可以将所需的任何结构/值嵌入到请求中,然后将其放入jsp中,从而将它们传递到jsp中。您可以使用这一事实来创建一个jsp,它基于传入的参数(嵌入在请求中)显示适当的信息。
如果我完全没有理解你的问题的要点,请随意删除此回复。
编辑:无论哪种方式,您都必须将您的值嵌入到请求中。
https://stackoverflow.com/questions/644106
复制相似问题