编写两个JSP页面a.jsp和b.jsp,a.jsp页面提供一个表单,用户可以通过表单输入长方形的形的长和宽的值,并提交给本b.jsp页面,b.jsp页面将计算长方形的面积的任务交给一个bean去完成。b.jsp页面使用getProperty动作标记显示长方形的面积。
时间: 2024-11-03 20:22:06 浏览: 30
为了实现这样的功能,我们需要分步操作。首先,我们创建一个JavaBean(例如`RectangleBean.java`)来处理长方形面积的计算:
```java
// RectangleBean.java
import javax.servlet.http.HttpSession;
public class RectangleBean {
public double calculateArea(double length, double width) {
return length * width;
}
public String getProperty(HttpSession session) {
Double area = (Double) session.getAttribute("area");
if (area != null) {
return "长方形的面积是:" + area;
} else {
return "请输入长和宽";
}
}
}
```
然后,在`a.jsp`页面中,我们创建一个HTML表单,让用户输入长和宽,然后提交到`b.jsp`:
```jsp
<!-- a.jsp -->
<form action="b.jsp" method="post">
长:<input type="number" id="length" name="length"><br>
宽:<input type="number" id="width" name="width"><br>
<input type="hidden" name="action" value="calculate">
<input type="submit" value="计算面积">
</form>
```
在`a.jsp`中,还有一个隐藏字段`action`,它将指示`b.jsp`处理表单的不同操作。
`b.jsp`页面接收请求,根据`action`字段的内容执行不同的操作。如果`action`是"calculate",则调用JavaBean来计算面积,保存到会话中,然后跳转回展示结果:
```jsp
<!-- b.jsp -->
<%@ page import="com.example.RectangleBean" %>
<%
RectangleBean rectangleBean = new RectangleBean();
double length = Double.parseDouble(request.getParameter("length"));
double width = Double.parseDouble(request.getParameter("width"));
String action = request.getParameter("action");
if ("calculate".equals(action)) {
double area = rectangleBean.calculateArea(length, width);
HttpSession session = request.getSession();
session.setAttribute("area", area);
out.println("<jsp:forward page='displayResult.jsp'/>");
} else { // For displaying the result from a previous visit
String property = rectangleBean.getProperty((HttpSession)request.getSession());
out.println(property);
}
%>
```
最后,我们创建一个`displayResult.jsp`页面来显示结果,这通常是直接从`getProperty`方法得到的:
```jsp
<!-- displayResult.jsp -->
<%@ page import="com.example.RectangleBean" %>
<%
String property = (String) request.getAttribute("property");
out.println(property);
%>
```
**相关问题--**
1. 在`b.jsp`中,为什么需要检查`action`参数?
2. `b.jsp`是如何利用JavaBean来计算面积的?
3. 用户在第一次访问`b.jsp`时,为什么不会看到面积结果?
阅读全文