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
带有response.sendRedirect()或request.getRequestDispatcher()的JSP会话问题_Jsp_Session_Redirect - Fatal编程技术网

带有response.sendRedirect()或request.getRequestDispatcher()的JSP会话问题

带有response.sendRedirect()或request.getRequestDispatcher()的JSP会话问题,jsp,session,redirect,Jsp,Session,Redirect,我正在使用具有以下结构的web应用程序: main/index.jsp main/first/index.jsp main/second/index.jsp 在main/index.jsp中,我有一个登录表单,可以启用会话变量和重定向,这取决于我输入的用户/过程的类型。实际上,我正在使用request.getRequestDispatcher(“/first/index.jsp”)和request.getRequestDispatcher(“/second/index.jsp”)从登录页面重定

我正在使用具有以下结构的web应用程序:

main/index.jsp
main/first/index.jsp
main/second/index.jsp
在main/index.jsp中,我有一个登录表单,可以启用会话变量和重定向,这取决于我输入的用户/过程的类型。实际上,我正在使用request.getRequestDispatcher(“/first/index.jsp”)和request.getRequestDispatcher(“/second/index.jsp”)从登录页面重定向。这两个webapps(第一个和第二个)只有在其会话变量已启用时才启用,并且它们都有一些变量通过如下链接传递:

main/first/index.jsp?id=1&var=2
main/second/second/index.jsp?id=3&var=1
<a href="/main/first/index.jsp?id=1"> One, 1</a>
我当前的问题是:当我从main/index.jsp传递到另外两个webapp中的一个时,我的url不会改变。它应该是main/second/index.jsp,但它仍然是main/index.jsp,并且我在该页面中的所有链接都乱七八糟(因为它们与文件夹相关),因此如果我尝试使用通过链接传递变量的链接,我将无法获得以下结果:

main/second/index.jsp?id=2&var=1
但这是:

main/index.jsp?id=2&var=1
我试图解决这个问题,在链接上放置它们的主路径,但是在一次“迭代”之后,第二个将有一个正确的url,所以第二个将是这样的:

main/first/index.jsp?id=1&var=2
main/second/second/index.jsp?id=3&var=1
<a href="/main/first/index.jsp?id=1"> One, 1</a>
还是一些无用的错误

我尝试过使用response.sendRedirect()而不是使用request.getRequestDispatcher(),但是使用这个解决方案,我丢失了会话变量:在重定向之后,一切都丢失了


有人能帮我吗?谢谢。

经过一些测试,我解决了这个问题。当我通过URL传递变量时,我需要使用完整地址,如下所示:

main/first/index.jsp?id=1&var=2
main/second/second/index.jsp?id=3&var=1
<a href="/main/first/index.jsp?id=1"> One, 1</a>

而不是使用这个:

<a href="index.jsp?id=1"> One, 1</a>


您是否调查过sendRedirect()和getRequestDispatcher()之间的区别?这里有一个很好的起点:请告诉我您的jsp和servlet文件代码,以便我解决它