编写两个JSP页面a.jsp和b.jsp,a.isp页面提供一个表单,用户可以通过表单输形的两个边长提交给b.isp页面,b.isp调用一个request bean去完成计算矩形面积的出b.jsp页面
时间: 2024-10-23 11:03:32 浏览: 25
在JSP中,你可以创建两个页面a.jsp和b.jsp来实现这样的功能。首先,我们来描述一下这两个页面的大概结构:
**a.jsp (输入页面)**:
```jsp
<!DOCTYPE html>
<html>
<head>
<title>输入矩形边长</title>
</head>
<body>
<form action="b.jsp" method="post">
边长1:<input type="text" name="side1"><br>
边长2:<input type="text" name="side2"><br>
<input type="submit" value="计算面积">
</form>
</body>
</html>
```
在这个表单里,用户可以输入矩形的两条边长,然后点击提交按钮。表单数据会通过POST请求发送到`b.jsp`。
**b.jsp (处理和显示结果的页面)**
```jsp
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
<title>矩形面积计算器</title>
</head>
<body>
<%@ page import="java.util.*" %>
<c:if test="${not empty requestScope.area}">
<h2>矩形面积为: ${requestScope.area}</h2>
</c:if>
<%-- 定义request bean用于计算 --%>
<%@ page session="true" %>
<jsp:useBean id="rectangleCalculator" scope="session" class="com.example.RectangleCalculator" />
<!-- 调用bean计算并设置结果 -->
<% if (!requestScope.area) { %>
<jsp:setProperty name="rectangleCalculator" property="side1" param="side1" />
<jsp:setProperty name="rectangleCalculator" property="side2" param="side2" />
<% int area = rectangleCalculator.calculateArea(); %>
<jsp:setProperty name="requestScope" property="area" value="<%= area %>" />
<% } %>
</body>
</html>
```
在这个页面上,我们先检查`requestScope`是否已经存在计算的结果。如果没有,我们从请求中获取边长值,并通过`RectangleCalculator`这个自定义请求bean来计算面积。如果需要,我们还会把结果存入session以便在整个请求生命周期内共享。
**RectangleCalculator.java (请求bean示例)**
```java
public class RectangleCalculator {
private double side1;
private double side2;
public void setSide1(double side1) {
this.side1 = side1;
}
public void setSide2(double side2) {
this.side2 = side2;
}
public double calculateArea() {
return side1 * side2;
}
}
```
阅读全文