编写一个完整的jsp程序,通过表单提交三角形三边的数据,jsp页面接收表单提交数据并判断能否构成三角形后计算三角形面积。要求HTML表单创建完整,程序能防空指针的引用,对提交的非法数据进行捕获
时间: 2024-10-12 11:07:15 浏览: 39
接收表单提交的数据源码 LCYReceiveFormData.rar
下面是一个简单的JSP程序示例,它包含了HTML表单用于输入三角形的三条边长,并通过Java后台处理逻辑来验证是否构成三角形以及计算面积。为了防止空指针异常和其他非法数据,我们使用了条件检查和try-catch块。
```html
<!-- JSP页面 -->
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>三角形计算</title>
</head>
<body>
<h1>三角形面积计算器</h1>
<form action="trianglemethod.jsp" method="post">
<label for="side1">边1:</label>
<input type="number" id="side1" name="side1" required><br>
<label for="side2">边2:</label>
<input type="number" id="side2" name="side2" required><br>
<label for="side3">边3:</label>
<input type="number" id="side3" name="side3" required><br>
<input type="submit" value="计算">
</form>
</body>
</html>
```
```java
<!-- trianglemethod.jsp -->
<%@ page import="java.util.*" %>
<%
String side1 = request.getParameter("side1");
String side2 = request.getParameter("side2");
String side3 = request.getParameter("side3");
double[] sides = new double[3];
sides[0] = Double.parseDouble(side1);
sides[1] = Double.parseDouble(side2);
sides[2] = Double.parseDouble(side3);
if (sides == null || sides[0] <= 0 || sides[1] <= 0 || sides[2] <= 0) {
out.println("请输入合法的正数边长!");
} else {
if (isValidTriangle(sides)) {
double area = calculateTriangleArea(sides);
out.println("这组边可以构成三角形,面积是:" + area);
} else {
out.println("这组边不能构成三角形,请重新输入!");
}
}
// 防止空指针和非法数据的方法
private boolean isValidTriangle(double[] sides) {
return sides[0] + sides[1] > sides[2]
&& sides[0] + sides[2] > sides[1]
&& sides[1] + sides[2] > sides[0];
}
private double calculateTriangleArea(double[] sides) {
double s = (sides[0] + sides[1] + sides[2]) / 2;
return Math.sqrt(s * (s - sides[0]) * (s - sides[1]) * (s - sides[2]));
}
%>
```
在这个例子中,如果用户尝试提交非法的数据(如非数字、负数或零),JSP页面会给出相应的提示。同时,`isValidTriangle()`函数用于检查三条边是否满足构成三角形的条件。
阅读全文