JSP在页面实现简易四则运算如果输入非数字字符页面需输出提醒
时间: 2024-10-22 19:16:34 浏览: 27
JSP (JavaServer Pages) 是一种基于Java的网页技术,它可以嵌入Servlet代码,并能够动态生成HTML内容。如果你想在JSP页面上实现简易的四则运算,并对用户输入做非数字字符检查,可以按照以下步骤操作:
1. **HTML部分**:
创建一个表单让用户输入两个数字和运算符(如`<input type="text">`)。同时,添加一个按钮提交表单。
```html
<form action="calculator.jsp" method="post">
Number 1: <input type="text" id="num1" name="num1"><br>
Number 2: <input type="text" id="num2" name="num2"><br>
Operator: <input type="text" id="operator" name="operator"><br>
<input type="submit" value="Calculate">
</form>
```
2. **Java Script部分**:
使用JavaScript做简单的验证,如果输入不是数字,弹出提示并阻止表单提交。
```javascript
<script>
document.getElementById("form").addEventListener("submit", function(event) {
var num1 = document.getElementById("num1").value;
var num2 = document.getElementById("num2").value;
var operator = document.getElementById("operator").value;
if (!/^\d+$/.test(num1) || !/^\d+$/.test(num2)) {
alert("请输入数字!");
event.preventDefault();
}
});
</script>
```
3. **JSP部分**:
`calculator.jsp`文件中,首先获取表单数据,然后进行运算。注意要用EL表达式(`#{}`)处理变量,以避免XSS攻击。
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
String num1 = request.getParameter("num1");
String num2 = request.getParameter("num2");
String operator = request.getParameter("operator");
if (isValidInput(num1, num2, operator)) { // 自定义方法检查输入是否合法
double result = performCalculation(num1, num2, operator);
out.println("Result: " + result);
} else {
out.println("输入错误,请只输入数字!");
}
%>
...
private boolean isValidInput(String num1, String num2, String operator) {
try {
Double.parseDouble(num1) && Double.parseDouble(num2); // 判断是否全为数字
return true;
} catch (NumberFormatException e) {
return false;
}
}
private double performCalculation(String num1, String num2, String operator) {
// 根据operator进行相应的计算
double n1 = Double.parseDouble(num1);
double n2 = Double.parseDouble(num2);
switch (operator) {
case "+":
return n1 + n2;
case "-":
return n1 - n2;
case "*":
return n1 * n2;
case "/":
return n1 / n2;
default:
throw new IllegalArgumentException("Invalid operator");
}
}
```
阅读全文