编写servlet,产生一个1-10的随机数,将其保存到session中,然后重定向到输入页面input.jsp,在此页面输入所猜测的数后,提交到另一个servlet判断是否正确,若不正确,转发到input.jsp,在此页面显示“大了”或“小了”的提示信息,若正确,则在新页面显示“答对了”。(网页版的猜数游戏)
时间: 2023-06-25 21:02:16 浏览: 62
下面是一个简单的实现:
1. 产生随机数并将其保存到session中的servlet(RandomServlet):
```java
import java.io.IOException;
import java.util.Random;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet("/random")
public class RandomServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Random random = new Random();
int number = random.nextInt(10) + 1; // 产生1-10之间的随机数
HttpSession session = request.getSession();
session.setAttribute("number", number); // 将随机数保存到session中
response.sendRedirect("input.jsp"); // 重定向到输入页面
}
}
```
2. 输入页面input.jsp:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>猜数游戏</title>
</head>
<body>
<form action="check" method="post">
请输入1-10之间的整数:<br>
<input type="text" name="guess" required>
<input type="submit" value="提交">
</form>
</body>
</html>
```
3. 判断猜测是否正确的servlet(CheckServlet):
```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;
import javax.servlet.http.HttpSession;
@WebServlet("/check")
public class CheckServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession();
int number = (int) session.getAttribute("number"); // 从session中获取随机数
int guess = Integer.parseInt(request.getParameter("guess")); // 获取用户猜测的数
if (guess == number) {
response.sendRedirect("success.jsp"); // 猜测正确,跳转到成功页面
} else {
String message = guess > number ? "大了" : "小了"; // 根据猜测结果生成提示信息
request.setAttribute("message", message);
request.getRequestDispatcher("input.jsp").forward(request, response); // 转发到输入页面,显示提示信息
}
}
}
```
4. 显示猜测结果的页面success.jsp:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>恭喜你猜对了!</title>
</head>
<body>
<h1>恭喜你猜对了!</h1>
</body>
</html>
```
注意:以上代码仅供参考,实际使用时需要根据具体需求进行修改和完善。