我是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。
有什么帮助吗?
答案 0 :(得分:1)
使用pagescope
并使用JSTL代替javacode
<c:set var="name1" value="value1" scope="page" />