用jsp在页面输入一个数 用servlet判断这个数是不是质数并将结果返回到一个新的页面
时间: 2024-09-13 20:06:18 浏览: 34
在JSP页面上接收用户的输入,并通过Servlet进行计算,你可以按照以下步骤实现:
1. **在JSP页面**(如`input.jsp`)中,创建一个HTML表单,允许用户输入数字:
```jsp
<form action="PrimeCheckServlet" method="post">
<label for="number">请输入一个整数:</label>
<input type="text" id="number" name="number">
<input type="submit" value="检查是否为质数">
</form>
```
2. **在Servlet**(如`PrimeCheckServlet.java`)中,处理POST请求,接收输入值并判断是否为质数:
```java
import javax.servlet.*;
import java.io.*;
import java.util.*;
@WebServlet("/PrimeCheckServlet")
public class PrimeCheckServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String number = request.getParameter("number");
if (isValidNumber(number)) {
// 数字有效,进行质数判断
boolean isPrime = checkIfPrime(Integer.parseInt(number));
if (isPrime) {
response.setContentType("text/html");
response.getWriter().write("<h1>" + number + " 是质数。</h1>");
} else {
response.setContentType("text/html");
response.getWriter().write("<h1>" + number + " 不是质数。</h1>");
}
} else {
// 数字无效,提示错误信息
response.setContentType("text/html");
response.getWriter().write("<h1>请输入一个有效的整数。</h1>");
}
}
private boolean isValidNumber(String num) {
return !num.isEmpty() && num.matches("\\d+");
}
private boolean checkIfPrime(int n) {
if (n <= 1) return false;
for (int i = 2; i <= Math.sqrt(n); i++) {
if (n % i == 0) return false;
}
return true;
}
}
```
3. **处理完计算后,**将结果显示在一个新页面(如`result.jsp`),或者直接在当前页面更新内容(如果支持的话):
```jsp
<% String result = request.getAttribute("primeResult"); %>
<h1><%= result %></h1>
```
在`PrimeCheckServlet`中添加以下代码以便设置请求属性:
```java
request.setAttribute("primeResult", isPrime ? "是质数" : "不是质数");
```
阅读全文