Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.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
Java 跨c:导入上下文的请求属性_Java_Jsp_Jstl - Fatal编程技术网

Java 跨c:导入上下文的请求属性

Java 跨c:导入上下文的请求属性,java,jsp,jstl,Java,Jsp,Jstl,我正在一个web应用程序中处理一个jsp(test.jsp),servlet上下文为/hello。我正在做以下工作: <c:import url = "/other/altTest.jsp" context="/" /> 似乎test.jsp可用的请求属性对于从c:import(altTest.jsp)导入的jsp不可用,我怀疑是由于上下文参数。有没有人能解释一下这背后的原因,并建议一种导入jsp的替代方法,在这里我可以访问请求属性?在封面下,c:import触发一个新的独立H

我正在一个web应用程序中处理一个jsp(test.jsp),servlet上下文为/hello。我正在做以下工作:

<c:import url = "/other/altTest.jsp" context="/" />


似乎test.jsp可用的请求属性对于从c:import(altTest.jsp)导入的jsp不可用,我怀疑是由于上下文参数。有没有人能解释一下这背后的原因,并建议一种导入jsp的替代方法,在这里我可以访问请求属性?

在封面下,
c:import
触发一个新的独立HTTP请求。即使文件位于相同的上下文中,它也无法访问与父JSP打开时使用的相同请求

最好是将信息作为请求参数传递,或者存储为会话属性,然后让导入的JSP将其从会话中删除。不过,这需要不同的上下文共享相同的会话——这可以在servletcontainer级别配置,例如在Tomcat中,在
context.xml
中将
emptySessionPath
属性设置为
true


另一种方法是使用servlet,其中您可以获取另一个servlet上下文(仅当
context.xml
中的
crossContext
属性设置为
true
),然后获取
RequestDispatcher
,最后在其上调用
forward()
。JSP标记不可能做到这一点。

c:import在封面下触发一个新的独立HTTP请求。即使文件位于相同的上下文中,它也无法访问与父JSP打开时使用的相同请求

最好是将信息作为请求参数传递,或者存储为会话属性,然后让导入的JSP将其从会话中删除。不过,这需要不同的上下文共享相同的会话——这可以在servletcontainer级别配置,例如在Tomcat中,在
context.xml
中将
emptySessionPath
属性设置为
true

另一种方法是使用servlet,其中您可以获取另一个servlet上下文(仅当
context.xml
中的
crossContext
属性设置为
true
),然后获取
RequestDispatcher
,最后在其上调用
forward()
。这在JSP标记中是不可能的