1. 这是一个猜数字的游戏,通过使用JSP调用JavaBean
2. 需要两个文件,number.jsp和NumberGuessBean.java
3. 先看number.jsp代码:
<html>
<jsp:useBean id="number" class="NumberGuessBean" scope="session" />
<jsp:setProperty name="number" property="*" />
<%
if(number.getNumGuesses()==0)
{
%>
<B>Welcome to the Number Guess game.</B>
<br>
<B>I'm thinking of a number between 1 and 100.</B>
<br>
<b>What's your guess?</b>
<form method=post>
<input type=text name="guess">
<input type=submit value=submit>
</form>
<%
}
else if(number.getSuccess())
{
%>
Congratulations! You got it. And after just <%=number.getNumGuesses()%> tries.
Care to <a href=number.jsp>try again</a>?
<%
number.reset();
}
else
{
%>
Good guess, but nope. Try <%=number.getHint()%>. You have made <%=number.getNumGuesses()%> guesses.
<br>I'm thinking of a number between 1 and 100.
<br>
What's your guess?
<form method=post><input type=text name="guess">
<input type=submit value=submit>
</form>
<%
}
%>
</html>
4. NumberGuessBean.java代码如下:
import java.util.*;
public class NumberGuessBean {
int answer;
boolean success;
String hint;
int numGuesses;
public NumberGuessBean() {
reset();
}
public void setGuess(String guess) {
numGuesses++;
int g;
try {
g = Integer.parseInt(guess);
}
catch (NumberFormatException e) {
g = -1;
}
if (g == answer) {
success = true;
}
else if (g == -1) {
hint = "a number next time";
}
else if (g < answer) {
hint = "higher";
}
else if (g > answer) {
hint = "lower";
}
}
public boolean getSuccess() {
return success;
}
public String getHint() {
return "" + hint;
}
public int getNumGuesses() {
return numGuesses;
}
public void reset() {
answer = Math.abs(new Random().nextInt() % 100) + 1;
success = false;
numGuesses = 0;
}
}