0

我想在会话到期后将用户重定向到最后访问的页面,并提示用户再次登录。我将最后一页 url 传递给一个参数并调用 seesioerror 操作来验证用户。

我有这个代码片段:

   <script type="text/javascript">
        var currentURL = window.location.href;

    </script>
     <%

        String url= "<script>document.writeln(currentURL);</script>";

        Object obj = session.getAttribute("user");
        if (obj == null) {
            response.sendRedirect(request.getContextPath() + "/SessionError?backurl=" + url);
        }

     %>

<% out.print("URL" + url);%>现在我的问题是,每当我使用它正确打印页面 URL打印 Java String 可变 URL 时。

但是如果在代码段内的这一行上传递它response.sendRedirect(request.getContextPath() + "/SessionError?backurl=" + url);。它只传递<script>document.writeln(currentURL);</script>不像http://www.mysite.com/home这样的当前页面 url 。请帮助我摆脱这个问题。

4

2 回答 2

1

JSP 是服务器端语言,它将在 http 响应返回客户端之前执行。通过这样说,您可以在 javascript 中使用 JSP 变量,但不能反过来。您可以使用 javascript : document.referrer获取以前的网址

于 2013-02-07T12:23:35.193 回答
0

你应该使用

request.getAttribute("javax.servlet.forward.request_uri")

看到这个问题

并且请不要混合 sciplets 和 Javascript 代码。一团糟。

于 2013-02-07T12:26:34.087 回答