jsp实现一个简易计算器,但是从客户端界面输入数字后没有输出结果
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>简易计算器</title>
</head>
<body>
<h2>简易计算器</h2>
<!-- 表单,用于输入两个参数和选择运算类型 -->
<form action="index.jsp" method="post">
<label for="num1">第一个参数:</label>
<input type="text" id="num1" name="num1" required>
<br><br>
<label for="operation">运算类型:</label>
<select id="operation" name="operation">
<option value="add">加</option>
<option value="subtract">减</option>
<option value="multiply">乘</option>
<option value="divide">除</option>
</select>
<br><br>
<label for="num2">第二个参数:</label>
<input type="text" id="num2" name="num2" required>
<br><br>
<input type="submit" value="计算">
</form>
<!-- 结果显示部分 -->
<h3>结果:</h3>
<input type="text" id="result" name="result" value="<%= (request.getAttribute("result") != null) ? request.getAttribute("result") : "" %>" readonly>
<%
// 处理表单提交并计算结果
String num1Str = request.getParameter("num1");
String num2Str = request.getParameter("num2");
String operation = request.getParameter("operation");
if (num1Str != null && num2Str != null && operation != null) {
try {
double num1 = Double.parseDouble(num1Str);
double num2 = Double.parseDouble(num2Str);
double result = 0;
String errorMessage = null;
// 根据选择的运算类型进行计算
switch (operation) {
case "add":
result = num1 + num2;
break;
case "subtract":
result = num1 - num2;
break;
case "multiply":
result = num1 * num2;
break;
case "divide":
if (num2 != 0) {
result = num1 / num2;
} else {
errorMessage = "除数不能为零";
}
break;
default:
errorMessage = "未知的运算类型";
break;
}
// 错误处理
if (errorMessage != null) {
out.println("<script>alert('" + errorMessage + "');</script>");
} else {
// 计算成功,将结果设置为请求属性
request.setAttribute("result", result);
}
} catch (NumberFormatException e) {
out.println("<script>alert('请输入有效的数字');</script>");
}
}
%>
</body>
</html>