编写javabean程序实现已知梯形的上底、下底和高,求梯形面积。要求:1、梯形的梯形的上底、下底和高通过表单提交;2、表单的提交页面和接收表单的页面在一个页面;3、提交表单内容后要求在文本框中回显所提交的数据
时间: 2024-10-27 19:05:19 浏览: 66
javaBean应用,石头剪刀布,计算梯形三角形面积
在Java中编写一个简单的JSP和Servlet程序来实现这个需求,你可以按照以下步骤操作:
1. **创建JavaBean**:
首先,创建一个名为Trapezoid的JavaBean,包含属性`upperBase`(上底)、`lowerBase`(下底)和`height`(高),并提供一个计算面积的方法`getArea()`。
```java
public class Trapezoid {
private double upperBase;
private double lowerBase;
private double height;
// 构造函数、getter和setter方法
public double getUpperBase() { return upperBase; }
public void setUpperBase(double upperBase) { this.upperBase = upperBase; }
// 类推...
public double getArea() {
return (upperBase + lowerBase) * height / 2;
}
}
```
2. **HTML表单**:
在JSP文件(如`form.jsp`)中创建一个表单,包括输入字段(`<input>`标签)用于用户输入上底、下底和高的值,以及一个提交按钮。
```html
<form action="processForm.java" method="post">
<label for="upperBase">上底:</label>
<input type="number" id="upperBase" name="upperBase"><br>
<label for="lowerBase">下底:</label>
<input type="number" id="lowerBase" name="lowerBase"><br>
<label for="height">高:</label>
<input type="number" id="height" name="height"><br>
<input type="submit" value="提交">
</form>
<!-- 显示结果的地方 -->
<p>面积: <span id="result"></span></p>
```
3. **Servlet处理表单数据**:
在`processForm.java`中,创建一个Servlet来接收表单数据,并实例化JavaBean计算面积,最后将结果显示在回显区域。
```java
import javax.servlet.*;
import javax.servlet.http.*;
@WebServlet("/processForm")
public class ProcessForm extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String upperBase = request.getParameter("upperBase");
String lowerBase = request.getParameter("lowerBase");
String height = request.getParameter("height");
// 将字符串转换为double
double ub = Double.parseDouble(upperBase);
double lb = Double.parseDouble(lowerBase);
double h = Double.parseDouble(height);
Trapezoid trapezoid = new Trapezoid();
trapezoid.setUpperBase(ub);
trapezoid.setLowerBase(lb);
trapezoid.setHeight(h);
double area = trapezoid.getArea();
// 在响应中设置结果
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<script>");
out.println("document.getElementById('result').innerHTML = '面积: " + area + "';");
out.println("</script>");
}
}
```
现在,当用户填写并提交表单后,他们可以看到文本框中显示的梯形面积。同时,提交的数据也保存在服务器端,实现了在同一页面上提交和显示表单数据的需求。
阅读全文