
【实例名称】 利用JavaBean实现猜数字游戏
问题描述
猜数字游戏随机给出一个1~100(包括1和100)的数字,然后让玩家猜是什么数字。玩家可以随便猜一个数字,游戏会提示太大还是太小,从而缩小结果范围。经过几次猜测与提示后,玩家最终猜出答案。在游戏过程中,记录玩家最终猜对时所需要的次数,游戏结束后公布结果。
本实例有一个JavaBean(GuessNumber.java),有两个页面getNumber.jsp和guess.jsp。getNumber.jsp页面中使用Random类随机生成一个1~100的整数,并把生成的数赋给JavaBean的answer变量,该页面中也让输入你猜的数字,输入数字后点击“提交”由guess.jsp页面处理数据。guess.jsp页面调用JavaBean对数据进行处理。
实现代码
GuessNumber.java代码如下:
package ch09;
public class GuessNumber{
int answer=0;
int guessNumber=0;
int guessCount=0;
String result=null;
boolean right=false;
public void setAnswer(int answer){
this.answer=answer;
guessCount=0;
}
public int getAnswer(){
return answer;
}
public void setGuessNumber(int guessNumber){
this.guessNumber=guessNumber;
guessCount++;
if(guessNumber==answer){
result="恭喜你猜对了!";
right=true;
}
else if(guessNumber>answer){
result="不好意思,你猜大了!";
right=false;
}
else if(guessNumber<answer){
result="不好意思,你猜小了!";
right=false;
}
else if(this.answer==-1||this.answer>100){
result="请输入1-100的整数!";
right=false;
}
}
public int getGuessNumber(){
return guessNumber;
}
public int getGuessCount(){
return guessCount;
}
public String getResult(){
return result;
}
public boolean isRight(){
return right;
}
}
getNumber.jsp代码如下:
<%@page import="java.util.Random"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>系统将随机生成一个数</title>
</head>
<body>
<jsp:useBean id="guess" class="ch09.GuessNumber" scope="session"/>
<%
Random randomNumbers = new Random();
int answer=1 + randomNumbers.nextInt( 100 );
String str=response.encodeRedirectURL("guess.jsp");
%>
<jsp:setProperty name= "guess" property="answer" value="<%=answer%>"/>
<h3>随系统随机生成了一个1到100之间的整数,请猜是什么数?</h3>
<hr>
<form action="<%=str%>" method="get">
输入你的猜的数:<input type="text" name="guessNumber">
<input type="submit" value="提交">
</form>
</body>
</html>
guess.jsp代码如下:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>猜的结果</title>
</head>
<body>
<jsp:useBean id="guess" class="ch09.GuessNumber" scope="session" />
<%
String strGuess=response.encodeRedirectURL("guess.jsp"),
strGetNumber=response.encodeRedirectURL("getNumber.jsp");
%>
<hr>
<jsp:setProperty name="guess" property="guessNumber" param="guessNumber"/>
这是第<jsp:getProperty name="guess" property="guessCount"/>次猜。
<jsp:getProperty name="guess" property="result"/>。
你猜的数是 <jsp:getProperty name="guess" property="guessNumber"/>。
<%
if(guess.isRight()==false){
%>
<form action="<%=strGuess%>" method="get">
请再猜一次:<input type=text name="guessNumber">
<input type=submit value="提交">
</form>
<%
}
%>
<hr>
<a href="<%=strGetNumber%>">重新开始猜数</a>
</body>
</html>
运行效果
运行以上代码,猜数字游戏运行效果如图1-4所示。

■ 图1 getNumber.jsp的运行效果

■ 图2 guess.jsp页面提示猜“小了”

■ 图3 guess.jsp页面提示猜“大了”

■ 图4 猜的次数以及系统生成的数字
源代码下载
关注微信公众号,后台回复关键词 “JSP猜数字” 即可获得完整源代码。
参考书籍

《JSP程序设计与项目实训教程(第3版·微课版)》
项目驱动,案例丰富,视频讲解,提供教学课件和源代码。提供课件、参考答案、源码、大纲
ISBN:9787302590446
作者:张志锋、张建伟、宋胜利
价格:89元
内容简介
本书旨在培养读者的Java Web项目开发能力、工程实践能力和创新能力,培育软件工匠精神。全书理论联系实践,以项目为驱动,用项目开发实践串联整个知识体系,结合微课视频系统讲解JSP程序设计技术,通过讨论主题引导思维拓展。全书共分11章,内容包括Web技术简介、JSP常用开发环境介绍、HTML与CSS简介、通信资费管理系统项目实训、JSP基础知识、JSP常用内置对象、数据库基本操作、企业信息管理系统项目实训、JSP与JavaBean、Java Servlet技术和个人信息管理系统项目实训。通过80多个小案例、8个中型项目、3个大项目的强化实践操作,使读者在深入理解、切实掌握基本理论知识的基础上,同步提高工程实践能力。本书可作为普通高等院校Java Web相关课程的教材,也可作为Java Web软件开发人员的技术参考书。











