编写一个jsp页面,该页面提供一个表单,用户可以通过表单输入梯形的上底、下底和高的值,并提交给本jsp页面,该jsp页面将计算梯形的面积之任务交给一个page bean去完成。jsp页面中显示page
时间: 2023-05-31 19:18:10 浏览: 1223
编写jsp页面实现如下界面效果,然后交给servlet计算矩形的周长和面积,并输出结果。
### 回答1:
bean计算出来的梯形面积结果。
好的,以下是jsp页面的代码:
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>梯形面积计算器</title>
</head>
<body>
<h1>梯形面积计算器</h1>
<form action="${pageContext.request.contextPath}/calculate.jsp" method="post">
<label for="upper">上底:</label>
<input type="number" id="upper" name="upper" required><br>
<label for="bottom">下底:</label>
<input type="number" id="bottom" name="bottom" required><br>
<label for="height">高:</label>
<input type="number" id="height" name="height" required><br>
<button type="submit">计算</button>
</form>
<c:if test="${not empty pageBean.area}">
<p>梯形面积为:${pageBean.area}</p>
</c:if>
</body>
</html>
```
该页面提供了一个表单,用户可以输入梯形的上底、下底和高的值,并提交给calculate.jsp页面进行计算。其中,${pageContext.request.contextPath}表示当前web应用的根路径。
以下是calculate.jsp页面的代码:
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<jsp:useBean id="pageBean" class="com.example.PageBean" scope="request"/>
<jsp:setProperty name="pageBean" property="*"/>
<jsp:forward page="/result.jsp"/>
```
该页面使用了<jsp:useBean>标签来创建一个名为pageBean的PageBean对象,并将其作用域设置为request。然后使用<jsp:setProperty>标签将表单提交的参数值设置到pageBean对象中。最后使用<jsp:forward>标签将请求转发到result.jsp页面。
以下是PageBean类的代码:
```java
package com.example;
public class PageBean {
private double upper;
private double bottom;
private double height;
private double area;
public double getUpper() {
return upper;
}
public void setUpper(double upper) {
this.upper = upper;
}
public double getBottom() {
return bottom;
}
public void setBottom(double bottom) {
this.bottom = bottom;
}
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}
public double getArea() {
return area;
}
public void setArea(double area) {
this.area = area;
}
public void calculateArea() {
area = (upper + bottom) * height / 2;
}
}
```
该类包含了梯形的上底、下底、高和面积属性,以及一个计算面积的方法calculateArea()。在calculate.jsp页面中,表单提交的参数值会被设置到该类的属性中,然后调用calculateArea()方法计算梯形面积。
以下是result.jsp页面的代码:
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<jsp:useBean id="pageBean" class="com.example.PageBean" scope="request"/>
<jsp:useBean id="formatter" class="java.text.DecimalFormat" scope="application">
<jsp:attribute name="pattern" value="#.##"/>
</jsp:useBean>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>梯形面积计算结果</title>
</head>
<body>
<h1>梯形面积计算结果</h1>
<p>梯形的上底为:${formatter.format(pageBean.upper)}</p>
<p>梯形的下底为:${formatter.format(pageBean.bottom)}</p>
<p>梯形的高为:${formatter.format(pageBean.height)}</p>
<p>梯形的面积为:${formatter.format(pageBean.area)}</p>
</body>
</html>
```
该页面使用了<jsp:useBean>标签来获取calculate.jsp页面设置的pageBean对象,并将其作用域设置为request。然后使用java.text.DecimalFormat类来格式化输出梯形的上底、下底、高和面积。最后将计算结果输出到页面上。
以上就是jsp页面的代码,希望能对您有所帮助。
### 回答2:
编写一个 JSP 页面,让用户可以通过表单输入梯形的上底、下底和高的值,并提交给该页面。该页面会将梯形的面积计算任务交给一个 Page Bean 来完成,并显示计算结果。
首先,我们需要在 JSP 页面上创建一个表单,让用户可以输入梯形的上底、下底和高。在表单中,我们需要使用 input 标签来创建文本框,以便用户可以在其中输入数据。例如:
```html
<form method="post" action="calculate.jsp">
<label>梯形的上底:</label><input type="text" name="upper" /><br />
<label>梯形的下底:</label><input type="text" name="lower" /><br />
<label>梯形的高:</label><input type="text" name="height" /><br />
<input type="submit" value="计算" />
</form>
```
在这个表单中,我们使用了 method 属性来指定提交方式为 post,action 属性来指定提交到的处理页面为 calculate.jsp。同时,我们创建了三个文本框让用户分别输入梯形的上底、下底和高,并创建了一个提交按钮。
接下来,我们需要在 calculate.jsp 页面中处理表单数据,并将梯形的面积计算任务交给一个 Page Bean 来完成。假设我们的 Page Bean 名称为 TrapezoidBean,我们可以使用以下的代码来处理表单数据,并将计算结果传递给 Page Bean。
```jsp
<%
// 读取表单数据
double upper = Double.parseDouble(request.getParameter("upper"));
double lower = Double.parseDouble(request.getParameter("lower"));
double height = Double.parseDouble(request.getParameter("height"));
// 创建 Page Bean 并计算梯形面积
TrapezoidBean bean = new TrapezoidBean(upper, lower, height);
double area = bean.calculateArea();
// 将 Page Bean 添加到 request 对象中用于 JSP 页面显示
request.setAttribute("page", bean);
// 将计算结果保存到 session 对象中方便后续使用
HttpSession session = request.getSession();
session.setAttribute("area", area);
%>
```
在这个代码中,我们使用了 request 对象来读取表单数据,并使用 TrapezoidBean 类来计算梯形面积。我们将 Page Bean 添加到 request 对象中以便在 JSP 页面中显示,同时将计算结果保存到 session 对象中方便后续使用。
最后,我们可以在 JSP 页面中使用以下代码来显示计算结果和 Page Bean 的数据:
```jsp
<%
// 从 session 对象中读取计算结果
double area = (Double)session.getAttribute("area");
%>
<p>梯形的面积是: <%= area %> </p>
<h2> Page Bean 数据 </h2>
<p> 梯形的上底: <%= page.getUpper() %> </p>
<p> 梯形的下底: <%= page.getLower() %> </p>
<p> 梯形的高: <%= page.getHeight() %> </p>
<p> 梯形的面积: <%= page.getArea() %> </p>
```
在这个代码中,我们使用了 session 对象来读取计算结果,并使用 <%= %> 标签来将结果显示出来。同时,我们使用了 page 对象来读取 Page Bean 中的数据,并将其显示在页面上。最后,我们可以在 JSP 页面中使用 CSS 样式来美化页面,使其更加用户友好。
总之,通过以上的步骤,我们就可以创建一个功能完整的 JSP 页面,让用户可以通过表单输入梯形的上底、下底和高,并计算梯形的面积。同时,我们使用 Page Bean 来处理计算任务,并将结果显示在 JSP 页面上,让用户可以直观地了解计算过程和数据。
### 回答3:
要编写一个JSP页面,首先需要定义一个表单,用户可以通过表单输入梯形的上底、下底和高的值,并提交给本JSP页面。可以采用HTML表单的方式:
```
<form action="result.jsp" method="post">
<label for="up">上底:</label>
<input type="text" id="up" name="up">
<br>
<label for="down">下底:</label>
<input type="text" id="down" name="down">
<br>
<label for="height">高:</label>
<input type="text" id="height" name="height">
<br>
<input type="submit" value="提交">
</form>
```
注意,表单的`action`属性指定了提交数据后跳转到的JSP页面(本例中为`result.jsp`),`method`属性指定了提交数据的方式(本例中使用POST方式)。
接着,在JSP页面的顶部需要定义一个Page Bean,用于计算梯形的面积。可以定义一个Java类,并在JSP页面中使用`jsp:useBean`标签进行实例化:
```
<jsp:useBean id="trapezoid" class="com.example.Trapezoid" scope="page"/>
```
其中,`id`属性指定了Page Bean在JSP页面中的名字,`class`属性指定了Page Bean所对应的Java类,`scope`属性指定了Page Bean的作用域(本例中为“page”,表示在本页面中可见)。
接着,在JSP页面中定义一个JavaBean,用于接收表单数据,并调用Page Bean计算梯形面积。可以使用`jsp:useBean`标签进行实例化:
```
<jsp:useBean id="form" class="com.example.TrapezoidForm" scope="request"/>
```
其中,`id`属性指定了JavaBean在JSP页面中的名字,`class`属性指定了JavaBean所对应的Java类,`scope`属性指定了JavaBean的作用域(本例中为“request”,表示在本请求中可见)。
可以在JSP页面中使用EL表达式`${form.xxx}`获取表单数据,并将数据传递给Page Bean:
```
<%
form.setUp(request.getParameter("up"));
form.setDown(request.getParameter("down"));
form.setHeight(request.getParameter("height"));
double area = trapezoid.getArea(form.getUp(), form.getDown(), form.getHeight());
%>
```
其中,`request.getParameter`方法用于获取表单数据,调用Page Bean的`getArea`方法计算梯形面积。计算结果可以存储在JSP页面的局部变量中,并使用EL表达式`${}`进行显示:
```
<p>梯形面积为:${pageContext.getAttribute("area")}</p>
```
阅读全文