Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从jstl中的临时目录导入jsp_Jsp_Servlets_Jstl_Dynamic_Tempdir - Fatal编程技术网

如何从jstl中的临时目录导入jsp

如何从jstl中的临时目录导入jsp,jsp,servlets,jstl,dynamic,tempdir,Jsp,Servlets,Jstl,Dynamic,Tempdir,我有一些动态生成的jsp内容,我想将jstl c:导入到另一个jsp页面中。目前,我已将动态生成的jsp写入servlet临时目录javax.servlet.context.tempdir中的一个文件,但无法确定如何导入它,因为它位于servlet上下文之外。 有没有一种方法可以从servlet临时目录导入jsp,或者我可以在不必将jsp内容写入文件的情况下以某种方式预处理jsp内容? 之前,我使用getRealPath将其写入servlet上下文中的一个文件中,但显然它不会在所有部署中都起作用

我有一些动态生成的jsp内容,我想将jstl c:导入到另一个jsp页面中。目前,我已将动态生成的jsp写入servlet临时目录javax.servlet.context.tempdir中的一个文件,但无法确定如何导入它,因为它位于servlet上下文之外。 有没有一种方法可以从servlet临时目录导入jsp,或者我可以在不必将jsp内容写入文件的情况下以某种方式预处理jsp内容? 之前,我使用getRealPath将其写入servlet上下文中的一个文件中,但显然它不会在所有部署中都起作用

谢谢你的帮助

[更新]好的,所以我不能在临时目录下编写文件,也不能直接从临时目录使用jsp。 有没有一种方法可以直接将jsp内容传递给默认的JSPServlet以获得HTML输出?通常如何使用动态生成的jsp文件?
我可以实现一个过滤器来从tempo目录传入jsp内容吗?我可以用HttpServletResponseWrapper或其他什么重写吗?

该上下文属性的类型为File,它提供了一个toURI方法。看看这样做是否有效:

<%
File tempdir = application.getAttribute("javax.servlet.context.tempdir");
URI tempdirURI = tempdir.toURI();
application.setAttribute("tempdirURI", tempdirURI.toString());
%>
...
<c:import url="${tempdirURI}/path/to/generated.jsp"/>

如果是这样的话,将tempdirURI的创建放在ServletContextListener中实际上是更好的实践。或者创建一个EL函数…

这样JSP就不会被解析,而是以纯文本的形式显示。我最终只是进行了重构,所以我不需要动态生成JSP,只需要使用具有更动态内容的JSP。