这节中,我们将数据的提交、处理、结果显示放在同一个页面上。
代码:
<!-- 这是计算器的界面-->
<%@page contentType="text/html;charset=gb2312"%>
<html>
<head>
<!--在jsp中添加jsp代码,防止用户空提交-->
<script language="javascript">
//写一个函数判断用户是不是提交空的
function checkNum(){
if(form1.num1.value==""){
window.alert("num1,不能为空haha");
return false;
}
//判断num1,是不是一个数
if(Math.round(form1.num1.value)!=form1.num1.value){
window.alert("num1,不是一个数");
return false;
}
}
</script>
</head>
<body>
<%
//接收第一个数(通过request接收,request类似Servlet中的HttpRequestServlet)
String s_num1=request.getParameter("num1");
//接收第二个数
String s_num2=request.getParameter("num2");
//接收运算符号
String flag=request.getParameter("flag");
int num1=0;
int num2=0;
int result=0;
System.out.println(s_num1);
//java中 String ->int
//为了防止异常的发生,我们做一个处理
if(s_num1!=null&&s_num2!=null&&flag!=null){
num1=Integer.parseInt(s_num1);
num2=Integer.parseInt(s_num2);
//计算
if(flag.equals("+"))
{
result=num1+num2;
}else if(flag.equals("-")){
result=num1-num2;
}else if(flag.equals("*")){
result=num1*num2;
}else{
result=num1/num2;
}
//输出结果
//out.println("结果是:"+result);
}
%>
<h1>我的计算器</h1>
<hr>
<form name="form1" action="Cal.jsp">
请输入第一个数:<input type="text" size="6" name="num1" value="<%=num1 %>"><br/>
<select name="flag">
<option value=+>+</option>
<option value=->-</option>
<option value=*>*</option>
<option value=/>/</option>
</select><br/>
请输入第二个数:<input type="text" size="6" name="num2" value="<%=num2 %>"><br/>
<input type="submit" value="计算" οnclick="return checkNum();"><!--点击后会调用JavaScript脚本,这里通过return返回给form-->
</form>
<hr>
<!--这里输出计算的结果-->
计算结果是:<%=result %><!--表达式语法-->
</body>
</html>
效果图:
注:知识点补充
//接收第一个数(通过request接收,request类似Servlet中的HttpRequestServlet)
String s_num1=request.getParameter("num1");
//接收第二个数
String s_num2=request.getParameter("num2");
//接收运算符号
String flag=request.getParameter("flag");
如果这里num1没有的话,那么s_num1的值为null。