用jsp在页面输入一个数 用servlet判断这个数是不是质数 并将结果返回到一个新的页面上 如何编写新的页面
时间: 2024-09-13 17:06:19 浏览: 42
要在JSP页面上输入一个数字,并通过Servlet判断其是否为质数,然后将结果显示在一个新页面上,你需要按照以下步骤操作:
1. **JSP页面(index.jsp)**:
创建一个HTML表单,让用户输入数字:
```jsp
<html>
<body>
<form action="PrimeCheckServlet" method="post">
<label for="number">请输入一个数字:</label>
<input type="text" id="number" name="number"><br>
<input type="submit" value="检查质数">
</form>
</body>
</html>
```
2. **Servlet(PrimeCheckServlet.java)**:
- 导入需要的包
- 接受请求并获取用户输入的数字
- 判断是否为质数的逻辑(可以使用循环)
- 如果是质数,设置响应消息;否则也设置相应的消息
- 使用`HttpServletResponse`对象设置响应
```java
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
@WebServlet("/PrimeCheckServlet")
public class PrimeCheckServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String inputNumber = request.getParameter("number");
boolean isPrime;
if (inputNumber != null && !inputNumber.isEmpty()) {
int num = Integer.parseInt(inputNumber);
// 判断质数逻辑...
isPrime = checkIfPrime(num);
} else {
isPrime = false;
}
// 根据isPrime设置响应消息
response.setContentType("text/html");
if (isPrime) {
response.getWriter().write("<h1>" + inputNumber + "是质数</h1>");
} else {
response.getWriter().write("<h1>" + inputNumber + "不是质数</h1>");
}
}
private boolean checkIfPrime(int number) {
if (number <= 1) return false;
for (int i = 2; i * i <= number; i++) {
if (number % i == 0) return false;
}
return true;
}
}
```
3. **新页面(result.jsp)**:
- Servlet会重定向到这个页面,所以不需要写任何处理逻辑,直接显示结果
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<% String result = (String)request.getAttribute("primeResult"); %>
<html>
<body>
<% if(result.equals("true")) { %>
<p>您输入的数字是质数。</p>
<% } else { %>
<p>您输入的数字不是质数。</p>
<% } %>
</body>
</html>
```
阅读全文