Java 如何使用JSP scriptlet代码刷新浏览器?

Java 如何使用JSP scriptlet代码刷新浏览器?,java,jsp,scriptlet,Java,Jsp,Scriptlet,因此,我正在做如下工作: // do something in JSP1 // load HTML page in JSP1 // send post request via jquery in JSP1 to JSP2 // do some processing in JSP2 // set "request" object from JSP2 to JSP1 by using: request.setAttribute("results",returneddocs); rd.forward(

因此,我正在做如下工作:

// do something in JSP1
// load HTML page in JSP1
// send post request via jquery in JSP1 to JSP2
// do some processing in JSP2
// set "request" object from JSP2 to JSP1 by using:
request.setAttribute("results",returneddocs);
rd.forward(request, response);
// Now, I am able to read the new values in JSP1 by using:
myval = request.getAttribute("results");
<script type="text/javascript">
    var value = '<%=myval %>';
    if(value == "some value")
        location.reload();
</script>
现在,我想使用myval的值使某些div出现或消失。我该怎么做?
也许我可以设置会话而不是请求并刷新HTML页面。但是如何使用jsp scriplet中的代码刷新HTML页面?

一旦在myval中收到值,就不需要刷新整个页面。同样,您可以使用简单的CSS控制html的呈现

我想使用myval的值来显示或删除某些div 消失我该怎么做

首先将值解析为特定的数据类型,不要忘记检查null和empty

String myval = (String) request.getAttribute("results");
假设您的myval包含show as值,然后根据该值,将样式添加到divs,如下所示:

<% String display = myval.equals("show") ? "block" : "none"; %>
<div style="display=<%=display %>"></div>
也许我可以设置会话而不是请求并刷新HTML 页面

重新加载页面将花费两次对服务器的调用

但是如何使用jsp scriplet中的代码刷新HTML页面呢

不需要刷新整个页面,这应该做必要的。但是,如果您需要刷新页面,您可以执行以下操作:

// do something in JSP1
// load HTML page in JSP1
// send post request via jquery in JSP1 to JSP2
// do some processing in JSP2
// set "request" object from JSP2 to JSP1 by using:
request.setAttribute("results",returneddocs);
rd.forward(request, response);
// Now, I am able to read the new values in JSP1 by using:
myval = request.getAttribute("results");
<script type="text/javascript">
    var value = '<%=myval %>';
    if(value == "some value")
        location.reload();
</script>

它不起作用。因为一旦加载页面,它就不会接受更新的值。因此,您需要在每次加载页面时设置值。这就是为什么我要设置会话,然后重新加载页面。您的重新加载何时停止?这不会在每次收到新值时创建一个无限的重载循环吗?当您在设置请求属性后重定向回jsp1时,它不会是更新的吗?