涉及知识:JSP基本语法;html相关标签;以及javascript相关语法
两个页面:
myCal.jsp
<!--这是计算器的界面-->
<%@ page contentType="text/html;charset=gb2312"%>
<html>
<h1>我的计算器</h1>
<hr>
<head>
<!--添加javaScript块 一般是放在head当中的-->
<script language="javascript">
<!--
//写一个函数验证用户输入是不是合法的
function checkNum(){
//判断是不是为空
if(form1.val1.value==""||form1.val2.value==""){
window.alert("不能为空!");
return false;
}
//判断是不是合法的数
if(Math.round(form1.val1.value)!=form1.val1.value||Math.round(form1.val2.value)!=form1.val2.value){
window.alert("数据不合法");
return false;
}
}
-->
</script>
</head>
<body>
<form name="form1" action="myResult.jsp">
请输入第一个数:<input type="text" name="val1"><br>
<!--name 值是很重要的-->
<select name="flag">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
<br>
请输入第二个数:<input type="text" name="val2"><br>
<input type="submit" value="计算" οnclick="return checkNum()">
</form>
</body>
</html>
跳转到myResult.jsp
<!--接收数据并进行处理-->
<!--表明我是jsp文件,并且支持中文编码-->
<%@ page contentType="text/html;charset=gb2312"%>
<!-- out就是JSP九大内置对象之一,向客户端输出字节流 request对象是用来接收客户端的http请求 其中具有方法getParamter(String name)-->
<html>
<body>
<%
//接收第一个数 其实是以字符串形式来接收的-->
String first = request.getParameter("val1");
//接收第二个数 -->
String second = request.getParameter("val2");
//接收运算符号 -->
String flag = request.getParameter("flag");
int num1 = Integer.parseInt(first);
int num2 = Integer.parseInt(second);
int result = 0;
//计算 -->
if(flag.equals("+")){
result = num1 + num2;
}
else if(flag.equals("-")){
result = num1 - num2;
}
else if(flag.equals("*")){
result = num1 * num2;
}
else if(flag.equals("/")){
result = num1 / num2;
}
//输出结果 -->
out.println("结果是:"+result);
%>
</body>
</html>
综合在一起的JSP计算器,并做了一些改进
<!--这是计算器的界面-->
<%@ page contentType="text/html;charset=gb2312"%>
<html>
<h1>我的计算器</h1>
<hr>
<head>
<!--添加javaScript块 一般是放在head当中的-->
<script language="javascript">
<!--
//写一个函数验证用户输入是不是合法的
function checkNum(){
//判断是不是为空
if(form1.val1.value==""||form1.val2.value==""){
window.alert("不能为空!");
return false;
}
//判断是不是合法的数
if(Math.round(form1.val1.value)!=form1.val1.value||Math.round(form1.val2.value)!=form1.val2.value){
window.alert("数据不合法");
return false;
}
}
-->
</script>
</head>
<body>
<%
int num1 = 0;
int num2 = 0;
//接收第一个数 其实是以字符串形式来接收的-->
String first = request.getParameter("val1");
//接收第二个数 -->
String second = request.getParameter("val2");
//接收运算符号 -->
String flag = request.getParameter("flag");
// 防止异常的发生,我们做一个处理
if(first!=null&&second!=null&&flag!=null){
num1 = Integer.parseInt(first);
num2 = Integer.parseInt(second);
int result = 0;
//计算 -->
if(flag.equals("+")){
result = num1 + num2;
}
else if(flag.equals("-")){
result = num1 - num2;
}
else if(flag.equals("*")){
result = num1 * num2;
}
else if(flag.equals("/")){
result = num1 / num2;
}
//输出结果 -->
out.println("结果是:"+result);
}
%>
<form name="form1" action="myCal.jsp">
请输入第一个数:<input type="text" name="val1" value="<%=num1%>"><br>
<!--name 值是很重要的-->
<select name="flag">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
<br>
请输入第二个数:<input type="text" name="val2" value="<%=num2%>"><br>
<input type="submit" value="计算" οnclick="return checkNum()">
<hr>
</form>
</body>
</html>