发布于2026-07-22 阅读(0)
扫一扫,手机访问
JSP + Servlet 实现猜数字游戏,核心思路其实很简单:利用 Session 保存服务端生成的随机数,通过 Servlet 处理用户提交的猜测,再根据比较结果跳转回输入页面并给出提示。整个过程涉及 Session、HttpServletResponse 的 sendRedirect() 方法,以及前后端的数据交互。
先看第一步:用户首次访问或刷新 getNumber.jsp 页面时,系统会随机生成一个 1 到 100 之间的整数,并存放到 Session 中。注意,这个页面还负责设置一个提示消息(比如“请您猜数”),同时提供一个链接跳转到输入页面。下面是 getNumber.jsp 的完整代码:
<%@ page language="ja va" import="ja va.util.*" pageEncoding="utf-8" contentType="text/html;Charset=utf-8"%>
<% session.setAttribute("message", "请您猜数"); // HttpSession session =request.getSession(true);
int randomNumber=(int)(Math.random()*100)+1;//获取一个随机数
session.setAttribute("sa veNumber",new Integer(randomNumber)); %>
访问或刷新该页面可以随机跌倒一个1,到100之间的数字
单击下面链接可以访问去猜数字
去猜数字
第二步,用户通过超链接进入 inputNumber.jsp 页面。这个页面展示一个输入框和一个提交按钮,用户输入自己猜测的数字后提交给 Servlet。同时,页面底部还有一个“重新得到新的随机数”按钮,点击后可以重新调用 getNumber.jsp 生成新数字。inputNumber.jsp 的代码如下:
<%@ page language="ja va" import="ja va.util.*" contentType="text/html;charset=utf-8"%>
<% String message=(String)session.getAttribute("message"); %>
第三步,核心的 Servlet 类 HandleGuess 登场。它接收用户提交的猜测数字,从 Session 中取出之前保存的随机数,进行比较。如果猜大了,就往 Session 中写入“您猜大了”并重定向回 inputNumber.jsp;猜小了则写入“您猜小了”;猜对了则写入“您猜对了”。注意,这里使用了 response.sendRedirect() 实现页面跳转,同时通过 Session 传递消息。Servlet 的完整实现如下:
import ja va.io.IOException;
import ja va.io.PrintWriter;
import ja vax.servlet.ServletException;
import ja vax.servlet.http.HttpServlet;
import ja vax.servlet.http.HttpServletRequest;
import ja vax.servlet.http.HttpServletResponse;
import ja vax.servlet.http.HttpSession;
public class HandleGuess extends HttpServlet {
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
PrintWriter out=response.getWriter();
//获取客户猜测提交的数
int guessNumber=Integer.parseInt(request.getParameter("guessnumber"));
//获取客户的会话对象
HttpSession session=request.getSession();
Integer integer=(Integer)session.getAttribute("sa veNumber");
int realNumber=integer.intValue();
System.out.println(realNumber);
System.out.println(guessNumber);
if(guessNumber>realNumber){
session.setAttribute("message", "您猜大了");
System.out.println("您猜大了---no");
response.sendRedirect("inputNumber.jsp");
}
else if(guessNumber
第四步,别忘了在 web.xml 中配置 Servlet 的映射路径,这里省略具体的配置细节,相信大家都能轻松搞定。
整个流程环环相扣,没有复杂的技术栈,却把 Session 和重定向的核心用法演示得清清楚楚。有兴趣的读者可以自己动手跑一遍,体验一下从猜数到反馈的完整交互过程。
下一篇:JSP实现弹出登陆框以及阴影效果
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8