【问题标题】:JSP Session issue with response.sendRedirect() or with request.getRequestDispatcher()response.sendRedirect() 或 request.getRequestDispatcher() 的 JSP 会话问题
【发布时间】:2012-12-20 16:15:19
【问题描述】:

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

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(第一个和第二个)只有在它们的 session 变量被启用时才会被启用,并且它们都有一些变量通过这样的链接传递:

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() 但使用此解决方案我丢失了会话变量:重定向后,一切都丢失了。

有人可以帮帮我吗?谢谢。

【问题讨论】:

标签: jsp session redirect


【解决方案1】:

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

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

而不是使用这个:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-18
    • 2013-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-28
    • 1970-01-01
    相关资源
    最近更新 更多