如何将javascript变量传递到jsp页面中的java代码片段中

时间:2013-02-07 12:15:59

标签: java javascript jsp

我希望在会话到期后将用户重定向到上次访问的页面,并提示用户再次登录。因为我将最后一页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);%>打印Java String可变URL时,它都会正确打印页面URL。

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

您应该使用

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

请参阅此question

请不要混用sciplets和Javascript代码。一团糟。