0

我正在使用具有这种结构的网络应用程序:

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/index.jsp 传递到其他 2 个 webapps 之一时,我的 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/second/second/index.jsp?id=3&var=1

仍然是一些无用和错误的东西。

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

有人能帮助我吗?谢谢你。

4

1 回答 1

0

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

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

而不是使用这个:

<a href="index.jsp?id=1"> One, 1</a>
于 2012-12-20T16:29:50.043 回答