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

How do i pass java script variable into java code snippet in jsp page

本文关键字:java 片段 jsp 代码 脚本 变量      更新时间:2023-09-26

我想在会话到期后将用户重定向到上次访问的页面,并提示用户再次登录。在这个过程中,我将最后一个页面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字符串可变url时,它都会正确打印页面url。

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

JSP是服务器端语言,它将在http响应返回客户端之前执行。这么说,您可以在javascript中使用JSP变量,但不能使用其他方法。您可以使用javascript:document.referrer获取以前的url

您应该使用

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

请参阅此问题

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