编写一个Servlet,获取用户请求中的参数:三角形的三条边长(由inputSide.jsp页面输入)。如果三条边长能构成三角形就计算三角形的面积,并将结果显示在area.jsp页面;如果输入的边长小
时间: 2024-11-05 17:24:14 浏览: 20
编写一个简单的Servlet来处理这个需求,我们将遵循Servlet API的基本步骤,包括接收请求、解析参数、检查三角形条件并生成响应。这里假设我们使用的是Java和Tomcat作为服务器环境。
首先,创建一个名为`TriangleAreaServlet.java`的Servlet:
```java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class TriangleAreaServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 从请求中获取参数
String sideA = request.getParameter("sideA");
String sideB = request.getParameter("sideB");
String sideC = request.getParameter("sideC");
// 将字符串转换为整数
int a = Integer.parseInt(sideA);
int b = Integer.parseInt(sideB);
int c = Integer.parseInt(sideC);
// 检查是否能构成三角形
if (a + b > c && a + c > b && b + c > a) {
// 计算半周长
double semiPerimeter = (a + b + c) / 2;
// 使用海伦公式计算面积
double area = Math.sqrt(semiPerimeter * (semiPerimeter - a) * (semiPerimeter - b) * (semiPerimeter - c));
// 将结果设置到响应中,以便传给area.jsp页面
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<h1>三角形面积: " + area + "</h1>");
} else {
out.println("<h1>输入的边长无法构成三角形</h1>");
}
}
}
```
然后,你需要配置web.xml文件以映射Servlet路径:
```xml
<web-app>
<servlet>
<servlet-name>TriangleAreaServlet</servlet-name>
<servlet-class>com.example.TriangleAreaServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TriangleAreaServlet</servlet-name>
<url-pattern>/triangle</url-pattern>
</servlet-mapping>
</web-app>
```
最后,在`inputSide.jsp`中,使用表单提交请求到`/triangle`:
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>输入三角形边长</title>
</head>
<body>
<form action="/triangle" method="post">
边长A: <input type="text" name="sideA"><br>
边长B: <input type="text" name="sideB"><br>
边长C: <input type="text" name="sideC"><br>
<input type="submit" value="计算面积">
</form>
</body>
</html>
```
对于`area.jsp`,它只是一个显示结果的地方,可以这么设计:
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>三角形面积结果</title>
</head>
<body>
<%@ include file="triangleResult.jsp" %>
</body>
</html>
```
其中`triangleResult.jsp`会从Servlet得到结果并渲染:
```jsp
<h1><jsp:getProperty name="message" property="value"/></h1>
```
阅读全文