编写一个完整常规的jsp程序,通过表单提交三角形三边的数据,jsp页面接收表单提交数据并判断能否构成三角形后计算三角形面积。要求HTML表单创建完整,程序能防空指针的引用,对提交的非法数据进行捕获
时间: 2024-10-15 10:23:42 浏览: 26
在JSP中编写一个完整的程序,包括HTML表单、JSP逻辑以及JavaBean处理数据验证,可以按照以下步骤进行:
1. **HTML表单部分 (index.jsp)**:
```html
<!DOCTYPE html>
<html>
<head>
<title>三角形面积计算</title>
</head>
<body>
<h2>请输入三角形的三条边长:</h2>
<form action="calculateTriangleArea.jsp" method="post">
Side A: <input type="number" name="sideA"><br>
Side B: <input type="number" name="sideB"><br>
Side C: <input type="number" name="sideC"><br>
<input type="submit" value="Calculate">
</form>
</body>
</html>
```
2. **JavaBean (Triangle.java)**:
创建一个JavaBean类,用于存储边长和检查是否满足三角形条件。这里假设有一个`Triangle`类:
```java
public class Triangle {
private double sideA;
private double sideB;
private double sideC;
// getters and setters
public boolean isValidTriangle() {
return sideA + sideB > sideC && sideA + sideC > sideB && sideB + sideC > sideA;
}
}
```
3. **JSP逻辑部分 (calculateTriangleArea.jsp)**:
```jsp
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ page import="your.package.Triangle" %>
<html>
<head>
<title>三角形面积计算结果</title>
</head>
<body>
<%@ page errorPage="" %> <!-- 防止空指针异常 -->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<% Triangle triangle = new Triangle(); %>
<%
try {
double a = Double.parseDouble(request.getParameter("sideA"));
double b = Double.parseDouble(request.getParameter("sideB"));
double c = Double.parseDouble(request.getParameter("sideC"));
if (!triangle.isValidTriangle()) {
out.println("输入的边长无法构成有效的三角形!");
} else {
triangle.setSideA(a);
triangle.setSideB(b);
triangle.setSideC(c);
double area = 0.5 * a * b * Math.sin(Math.toRadians(Math.abs(a - b - c) / 2));
out.println("三角形的面积是: " + area);
}
} catch (NumberFormatException e) {
out.println("无效的输入,所有边长必须为数字!");
}
%>
</body>
</html>
```
在这个例子中,如果用户输入的不是数字,`Double.parseDouble()`会抛出`NumberFormatException`,我们捕获了这个异常并在JSP页面上给出错误提示。
阅读全文