jsp中变量的范围

jiangtianyin jiangtianyin 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
这几天刚学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>

...全文

相关推荐

评论 8
收藏 已收藏
分享
返回顶部
jiangtianyin
Java EE 67,535 成员 225,843 内容