jsp全局变量和参数范围

时间:2011-08-31 09:05:26

标签: 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服务器3。 有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

使用pagescope并使用JSTL代替javacode

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