设计一个JSP+servlet模式 的Web代码,当用户在提交页面上输入圆的半径,提交后显示圆的周长和面积。
时间: 2023-09-13 21:08:43 浏览: 138
首先,在JSP页面上创建一个表单,让用户输入圆的半径:
```jsp
<form action="circle" method="post">
<label for="radius">请输入圆的半径:</label>
<input type="number" name="radius" id="radius">
<input type="submit" value="计算">
</form>
```
在用户点击“计算”按钮提交表单后,将会向名为“circle”的servlet发送POST请求。在servlet中,我们将获取用户输入的半径,并计算圆的周长和面积。然后,我们将这些值设置为请求属性,以便在JSP页面上显示。
以下是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 {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 获取用户输入的半径
double radius = Double.parseDouble(request.getParameter("radius"));
// 计算周长和面积
double circumference = 2 * Math.PI * radius;
double area = Math.PI * radius * radius;
// 将计算结果设置为请求属性
request.setAttribute("circumference", circumference);
request.setAttribute("area", area);
// 将请求转发到JSP页面
request.getRequestDispatcher("circle.jsp").forward(request, response);
}
}
```
在servlet中,我们首先获取用户输入的半径。然后,我们使用Math库中的常量和函数计算圆的周长和面积。最后,我们将这些值设置为请求属性,并将请求转发到名为“circle.jsp”的JSP页面。
在JSP页面上,我们可以使用EL表达式来显示计算结果:
```jsp
<h2>圆的周长和面积</h2>
<p>半径:${param.radius}</p>
<p>周长:${requestScope.circumference}</p>
<p>面积:${requestScope.area}</p>
```
在JSP页面中,我们首先显示用户输入的半径。然后,我们使用EL表达式来显示servlet设置的请求属性。请注意,我们在属性名称前面添加“requestScope”前缀,以指定属性作用域。
最后,我们需要在web.xml文件中将servlet映射到URL:
```xml
<servlet>
<servlet-name>CircleServlet</servlet-name>
<servlet-class>CircleServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CircleServlet</servlet-name>
<url-pattern>/circle</url-pattern>
</servlet-mapping>
```
在web.xml文件中,我们首先定义了一个名为“CircleServlet”的servlet。然后,我们将servlet映射到URL“/circle”。这意味着,当用户发送POST请求到“/circle”时,servlet将处理该请求。
阅读全文