java - jsp 全局变量和参数范围

标签 java jsp

我对java和jsp真的很陌生。所以我无法真正理解参数的范围是可以理解的 这是我的代码:

<%@page contentType="text/html" pageEncoding="UTF-8" %>
<%!
     String sRony= new String();
     void func() {
        sRony += " - add in func() - ";
    }
%>
<%
     if (request.getParameter("ron")!= null){
         sRony = request.getParameter("ron");
         func();
     }
     if (request.getParameter("sleep")!= null){
        Thread.sleep(2000);
     }

%>
<html>
<head>
</head>
<body>
  <%=sRony%><%= new java.util.Date() %>
</body>
</html>

问题是这段代码不是线程安全的。如果您要冲浪到

page.jsp?ron=sleep&sleep=1

同时

page.jsp?ron=no_sleep

两个页面都会打印“no_sleep”,因为参数sRony是全局的。 如果我删除 !来自<%! void func() 中的参数 sRony 将无法被识别 我不知道如何声明每个请求的参数,并且在我的函数内具有范围。 不确定我的平台是否重要,我正在使用 redhat 5.5 64 位、glassfish server 3。 有什么帮助吗?

最佳答案

使用pagescope并使用JSTL代替javacode

<c:set var="name1" value="value1" scope="page" />

关于java - jsp 全局变量和参数范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7254798/

相关文章:

java - Spring Boot Web 服务指标监控

Spring应用程序中JSPX解析后的jQuery错误

javascript - 动态生成的表显示错误

java - jsp 上未显示 Action 属性

mysql - 是什么导致 Hibernate SQL 查询异常?

java - Guava 过滤器问题

java - 如何在 Android map 中显示不同颜色的图钉?

java - Hibernate标准问题

java - 如何签署 update.zip

java - 在jsp中显示pdf