使用注解保存一个1-10的数字,用户每次从jsp页面提交数据进行猜这个数字,大了提示猜大了,跳转到重新猜的页面,小了也一样,正确了就提示用户,好棒,猜对了 只有5次猜的机会
时间: 2024-09-11 15:07:28 浏览: 28
要实现这个功能,可以通过Java的Servlet技术结合JSP页面来完成。首先,可以使用一个注解来标记需要保存的数字,这个注解可以是自定义的,用于在Servlet的会话中存储数字。以下是一个简单的示例实现:
1. 定义一个Servlet类,用于处理数字的随机生成、用户请求和游戏逻辑。
2. 在Servlet中使用注解来保存随机生成的1-10之间的数字。
3. 创建一个JSP页面,用于用户输入猜测的数字并提交。
4. 用户提交数据后,Servlet会检查并给出提示,如果猜测正确则显示成功消息,如果猜测错误则提示猜大或猜小,并给用户机会重新猜测,直到猜对或用完5次机会。
具体代码示例如下:
Servlet代码:
```java
@WebServlet("/guessNumber")
public class GuessNumberServlet extends HttpServlet {
@PostConstruct
public void init() {
// 使用注解@PostConstruct来初始化随机数字
Random random = new Random();
int number = random.nextInt(10) + 1; // 生成1-10的数字
HttpSession session = this.getServletContext().getSession();
session.setAttribute("targetNumber", number); // 将数字保存到会话中
session.setAttribute("guessCount", 5); // 初始化猜测次数为5
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int guess = Integer.parseInt(request.getParameter("guess"));
HttpSession session = request.getSession();
int targetNumber = (int) session.getAttribute("targetNumber");
int count = (int) session.getAttribute("guessCount");
if (guess > targetNumber) {
response.sendRedirect("guess.jsp?message=猜大了");
} else if (guess < targetNumber) {
count--;
if (count > 0) {
session.setAttribute("guessCount", count);
response.sendRedirect("guess.jsp?message=猜小了");
} else {
response.sendRedirect("guess.jsp?message=猜错了,您已经没有机会了");
}
} else {
response.sendRedirect("guess.jsp?message=好棒,猜对了");
}
}
}
```
JSP页面(guess.jsp)代码:
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>猜数字游戏</title>
</head>
<body>
<form action="guessNumber" method="post">
您猜的数字是:<input type="text" name="guess">
<input type="submit" value="提交">
</form>
<% String message = request.getParameter("message");
if (message != null) {
%>
<p><%= message %></p>
<% } %>
</body>
</html>
```
在Servlet的`doPost`方法中,我们检查用户输入的数字与目标数字的比较结果,并相应地设置消息并进行页面重定向。用户每次提交表单后,都会重新跳转到Servlet来处理新的请求。