jsp中变量的范围
这几天刚学jsp,做了一个小页面,就是一个简单的计算器,在<% %>里面申明变量并赋值后,在另一个<% %>中却不能访问,这是为什么呢?
源代码如下:
源代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<%
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<title>My JSP 'MyJsp.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<head>
<script language="javascript">
<!--
function checkNum()
{
var num1=cal.num1.value;
var num2=cal.num2.value;
if(num1==""||num2=="")
{
window.alert("运算数不能为空!");
return false;
}
else
{
var msg="";
if(Math.round(num1)!=num1)
msg+="第一个数类型错误!";
if(Math.round(num2)!=num2)
msg+="第二个数类型错误!";
if(msg!="")
{
window.alert(msg);
return false;
}
}
}
-->
</script>
</head>
<body>
<%
String n1=request.getParameter("num1");
String n2=request.getParameter("num2");
String op=request.getParameter("opera");
int num1;
int num2;
char opera;
int result;//变量在这里申明
if(n1!=null&&n2!=null&&op!=null){
result=0;
num1=Integer.parseInt(n1);
num2=Integer.parseInt(n2);
opera=op.charAt(0);
switch(opera){
case '+':result=num1+num2;
break;
case '-':result=num1-num2;
break;
case '*':result=num1*num2;
break;
case '/':result=num1/num2;
break;
default:
break;
}
}
%>
<form name="cal" action="Calculator.jsp" method="post">
<h1>我的计算器</h1><br>
<hr/>
第一个数:<input type="text" name="num1"/><br/>
选择运算符:
<select name="opera">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select><br/>
第二个数:<input type="text" name="num2"/><br/>
<input type="submit" value="确定" onclick="return checkNum()"/>
</form>
<hr/>
<%
out.println(num1+" "+opera+" "+num2+" = "+result);//为什么在这里不能访问呢???????提示:The local variable opera may not have been
initialized
%>
</body>
</html>
...全文
相关推荐
JSP学习笔记
JSP学习笔记涵盖了JSP的变量声明、Java脚本执行、包含指令、跳转方式和标签的作用范围等重要知识点,对于学习JSP的朋友来说非常有参考价值。
jsp中变量及方法的声明与使用
类声明 %>`:这是页面中声明变量和方法的地方,它们的作用范围是整个JSP页面。在这里声明的变量和方法将被放入由JSP转换成的Servlet类中作为其成员变量和成员方法。
JSP EL表达式
四、EL表达式中变量的存取在EL表达式中存取变量非常简单,如`${username}`即可表示取出某一范围中的username变量。
JSP九大内置对象和四种属性范围解读
**`config`**:提供对JSP配置信息的访问,如初始化参数。**四种属性范围**在JSP中,有四种不同的属性范围,用于控制变量的生命周期和可见性:1.
jsp的四个作用域
在jsp中,变量的作用域是由放置变量的位置决定的。如果把变量放到pageContext 里,就说明它的作用域是pageScope,变量的有效范围只在当前jsp页面里。


