我正在使用具有这种结构的网络应用程序:
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() 但使用此解决方案我丢失了会话变量:重定向后,一切都丢失了。
有人能帮助我吗?谢谢你。