jsp实现网页计算器代码如下:只有两个jsp页面
myCal.jsp如下:
<%@pagelanguage="java"import="java.util.*"pageEncoding="utf-8"%>
<%
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
<html>
<head>
<basehref="<%=basePath%>">
<title>MyJSP'myCal.jsp'startingpage</title>
<metahttp-equiv="pragma"content="no-cache">
<metahttp-equiv="cache-control"content="no-cache">
<metahttp-equiv="expires"content="0">
<metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">
<metahttp-equiv="description"content="Thisismypage">
<!--jsp页面中不可以直接使用script-->
<scriptlanguage="javascript">
<!--
//写一个函数判断是否两个数都有
functioncheckNum()
{
//判断num1num2是否为空
if((form1.num1.value=="")||(form1.num2.value==""))
{
window.alert("null,不能为空!");
returnfalse;
}
//判断是否是数字
if(Math.round(form1.num1.value)!=form1.num1.value&&Math.round(form1.num2.value)!=form1.num2.value)
{
window.alert("num1和num2不是一个数");
returnfalse;
}
if(Math.round(form1.num1.value)!=form1.num1.value)
{
window.alert("num1不是一个数");
returnfalse;
}
if(Math.round(form1.num2.value)!=form1.num2.value)
{
window.alert("num2不是一个数");
returnfalse;
}
}
-->
</script>
</head>
<body>
<formname="form1"action="calculator/myResult.jsp"method="post">
请输入第一个数:<inputtype="text"name="num1">
<selectname="flag">
<optionvalue=+>+</option>
<optionvalue=->-</option>
<optionvalue=*>*</option>
<optionvalue=/>/</option>
</select>
请输入第二个数:<inputtype="text"name="num2">
<inputtype="submit"value="计算"onclick="returncheckNum();">
</form>
</body>
</html>
myResult.jsp如下:
<%@pagelanguage="java"import="java.util.*"pageEncoding="utf-8"%>
<%
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
<html>
<head>
<basehref="<%=basePath%>">
<title>MyJSP'myResult.jsp'startingpage</title>
<metahttp-equiv="pragma"content="no-cache">
<metahttp-equiv="cache-control"content="no-cache">
<metahttp-equiv="expires"content="0">
<metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">
<metahttp-equiv="description"content="Thisismypage">
<!--
<linkrel="stylesheet"type="text/css"href="styles.css">
-->
</head>
<body>
<%
//第1步接收到第1个数
Strings_num1=request.getParameter("num1");
//第2步接收到第2个数
Strings_num2=request.getParameter("num2");
//第3步接收到运算符
Stringflag=request.getParameter("flag");
//第4步计算
intnum1=Integer.parseInt(s_num1);
intnum2=Integer.parseInt(s_num2);
intresult=0;
if(flag.equals("+"))
{
result=num1+num2;
}
elseif(flag.equals("-"))
{
result=num1-num2;
}
elseif(flag.equals("*"))
{
result=num1*num2;
}
elseif(flag.equals("/"))
{
result=num1/num2;
}
//第5步
out.println("结果是:"+result);
%>
</body>
</html>
虽然过程很简单但是有几个值得学习的地方:
如何判断输入的数据是不是数字:使用Math.round(form1.num1.value)!=form1.num1.value来判断;
如何获取操作值:设置name属性flag实现。
|