用Servlet和jsp文件求三角形面积
时间: 2024-05-14 08:18:35 浏览: 159
首先,需要获取三角形的三边长,可以通过前端表单提交数据或者直接在后台代码中定义。
接下来,可以使用海伦公式来计算三角形的面积:
```java
double a = 3.0; // 三角形第一条边长
double b = 4.0; // 三角形第二条边长
double c = 5.0; // 三角形第三条边长
double p = (a + b + c) / 2; // 计算半周长
double area = Math.sqrt(p * (p - a) * (p - b) * (p - c)); // 计算面积
// 将面积返回给前端页面
request.setAttribute("area", area);
request.getRequestDispatcher("result.jsp").forward(request, response);
```
在 JSP 页面中,可以通过 EL 表达式`${area}`获取计算出的三角形面积并展示给用户。
```jsp
<body>
<p>三角形面积为:${area}</p>
</body>
```
当然,上述代码中的三边长可以通过前端表单提交数据获取,也可以通过后台代码动态生成。
相关问题
jsp编写MVc求三角形面积
在JSP(JavaServer Pages)中编写MVC(Model-View-Controller)架构来计算三角形面积,首先你需要明确每个部分的作用:
**Model (模型)**:负责处理业务逻辑和数据,例如计算三角形面积。在Java中,你可以创建一个`Triangle`类,包含底和高的属性以及计算面积的方法。
```java
public class Triangle {
private double base;
private double height;
// 构造函数、getter和setter
public Triangle(double base, double height) {
this.base = base;
this.height = height;
}
public double getArea() {
return 0.5 * base * height;
}
}
```
**View (视图)**:显示用户界面,这里通常是HTML页面,包括表单让用户输入三角形的底和高,并展示结果。在JSP文件中,可以使用EL表达式或JSTL标签来获取模型的数据并显示给用户。
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<title>Calculate Triangle Area</title>
</head>
<body>
<form action="calculateArea.jsp">
Base: <input type="number" name="base" required><br>
Height: <input type="number" name="height" required><br>
<input type="submit" value="Calculate">
</form>
<% if (request.getAttribute("area") != null) { %>
<p>The area of the triangle is: <%= request.getAttribute("area") %> square units.</p>
<% } %>
</body>
</html>
```
**Controller (控制器)**:处理用户的输入,调用模型中的方法,并将结果传递给视图。在Servlet或JSP的后台逻辑中,如`calculateArea.jsp`,你可以做如下操作:
```jsp
<%@ page import="com.example.Triangle" %>
<%
Triangle triangle = new Triangle(request.getParameter("base"), request.getParameter("height"));
double area = triangle.getArea();
request.setAttribute("area", area);
%>
```
在这个例子中,当用户提交表单时,`calculateArea.jsp`会实例化`Triangle`对象,计算面积,然后设置到请求上下文中,以便在前端页面上显示。
帮我写一个jsp页面和一个servlet程序在jsp页面输入一个自然数用servlet生成一个杨辉三角形矩阵并输入到页面
好的,我可以回答这个问题。以下是jsp页面和servlet程序的代码:
jsp页面代码:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>杨辉三角形矩阵生成器</title>
</head>
<body>
<h1>杨辉三角形矩阵生成器</h1>
<form action="generateTriangle" method="post">
<label for="num">请输入一个自然数:</label>
<input type="number" id="num" name="num" required>
<button type="submit">生成</button>
</form>
<div>
<% if(request.getAttribute("triangle") != null) { %>
<pre><%= request.getAttribute("triangle") %></pre>
<% } %>
</div>
</body>
</html>
```
servlet程序代码:
```java
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/generateTriangle")
public class GenerateTriangleServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int num = Integer.parseInt(request.getParameter("num"));
int[][] triangle = new int[num][num];
for(int i = ; i < num; i++) {
for(int j = ; j <= i; j++) {
if(j == || j == i) {
triangle[i][j] = 1;
} else {
triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j];
}
}
}
StringBuilder sb = new StringBuilder();
for(int i = ; i < num; i++) {
for(int j = ; j <= i; j++) {
sb.append(triangle[i][j]).append(" ");
}
sb.append("\n");
}
request.setAttribute("triangle", sb.toString());
request.getRequestDispatcher("index.jsp").forward(request, response);
}
}
```
当用户在jsp页面中输入一个自然数并点击“生成”按钮时,servlet程序会生成一个对应的杨辉三角形矩阵,并将其作为一个字符串存储在request对象中,然后将request对象转发到原始的jsp页面中,最终在页面上显示出杨辉三角形矩阵。
阅读全文