设计一个Web应用程序,当用户在提交页面输入圆的半径并提交后,显示出圆的周长和面积。 要求:(1)使用Servlet获取提交信息,并计算求值,求值后跳转到显示结果页面。(2)使用JavaBean类,并由Servlet获取提交信息,并计算求值,求值后跳转到显示结果页面
时间: 2023-12-10 22:39:53 浏览: 149
JSP页面的基本结构——求圆面积周长
方案一:使用Servlet获取提交信息
1. 创建一个表单页面,包含一个输入框和一个提交按钮。
2. 在Servlet中处理用户提交的信息,计算圆的周长和面积,并将结果存储在request对象中。
3. 跳转到显示结果的页面,将结果从request对象中取出并显示在页面上。
示例代码:
1. 表单页面
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>计算圆的周长和面积</title>
</head>
<body>
<form action="CircleServlet" method="post">
<label>请输入圆的半径:</label>
<input type="text" name="radius">
<input type="submit" value="计算">
</form>
</body>
</html>
```
2. Servlet
```java
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class CircleServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 获取用户提交的半径值
String radiusStr = request.getParameter("radius");
double radius = Double.parseDouble(radiusStr);
// 计算圆的周长和面积
double perimeter = 2 * Math.PI * radius;
double area = Math.PI * radius * radius;
// 将结果存储在request对象中
request.setAttribute("perimeter", perimeter);
request.setAttribute("area", area);
// 跳转到显示结果的页面
request.getRequestDispatcher("/result.jsp").forward(request, response);
}
}
```
3. 结果页面
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>计算结果</title>
</head>
<body>
<h1>圆的周长为:<%= request.getAttribute("perimeter") %></h1>
<h1>圆的面积为:<%= request.getAttribute("area") %></h1>
</body>
</html>
```
方案二:使用JavaBean类
1. 创建一个表单页面,包含一个输入框和一个提交按钮。
2. 创建一个JavaBean类,用于计算圆的周长和面积。
3. 在Servlet中获取用户提交的信息,并调用JavaBean类的方法计算求值,将结果存储在request对象中。
4. 跳转到显示结果的页面,将结果从request对象中取出并显示在页面上。
示例代码:
1. 表单页面(同方案一)
2. JavaBean类
```java
public class Circle {
private double radius;
private double perimeter;
private double area;
public void setRadius(double radius) {
this.radius = radius;
}
public double getPerimeter() {
perimeter = 2 * Math.PI * radius;
return perimeter;
}
public double getArea() {
area = Math.PI * radius * radius;
return area;
}
}
```
3. Servlet
```java
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class CircleServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 获取用户提交的半径值
String radiusStr = request.getParameter("radius");
double radius = Double.parseDouble(radiusStr);
// 创建Circle对象并计算圆的周长和面积
Circle circle = new Circle();
circle.setRadius(radius);
double perimeter = circle.getPerimeter();
double area = circle.getArea();
// 将结果存储在request对象中
request.setAttribute("perimeter", perimeter);
request.setAttribute("area", area);
// 跳转到显示结果的页面
request.getRequestDispatcher("/result.jsp").forward(request, response);
}
}
```
4. 结果页面(同方案一)
阅读全文