实验3:猜数游戏
实验要求:
在index.jsp中输入一个0-100之间的整数,并把输入数据提交给猜数页面guess.jsp,index.jsp的界面如下图所示:
在guess.jsp中判断所输入数据与游戏程序中生成的随机数之间的大小关系。如果小,则显示“小了”,并通过“再试一次”链接返回index.jsp;如果大,则显示“大了”,并通过“再试一次”链接返回index.jsp;如果相等,显示“猜对了”,重新设置随机数,并通过“再试一次”链接返回index.jsp开始新一轮游戏。
guess.jsp的界面如下图所示:在游戏过程中仅当猜对时才能重新开始游戏,不能每猜一次更换一次数据。
index.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>猜数游戏</title>
</head>
<body>
<h1>猜数游戏</h1>
<hr/>
<script>
function Fun(){
Num = document.myform.txtNum.value;
if (Num >= 0 && Num <= 100){
return true;
}
else{
alert("数字应该在0-100。");
return false;
}
}
</script>
<form name=myform action="guess.jsp" method="post">
<input type="text" name="txtNum"/>
<input type="submit" value="猜数" onclick="return Fun();"/>
<input type="reset" value="重置"/>
</form>
</body>
</html>
guess.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>猜数游戏</title>
</head>
<body>
<h1>猜数游戏</h1>
<hr>
<%!int SrcNum,DesNum;%>
<%request.setCharacterEncoding("utf-8");
if (session.getAttribute("Num") == null){
session.setAttribute("Num",Integer.valueOf((int)(Math.random() * 1000 % 101)));
}
else{
SrcNum = (Integer)session.getAttribute("Num");
}
DesNum = Integer.valueOf(request.getParameter("txtNum"));
if (DesNum == SrcNum){
out.print("猜中了!<br/>");
session.setAttribute("Num",Integer.valueOf((int)(Math.random() * 1000 % 101)));
}
else if (DesNum> SrcNum){
out.print("大了!<br/>");
}
else{
out.print("小了!<br/>");
}
%>
<a href="index.html">再来一次</a>
</body>
</html>
session中保存的变量能在服务器保存一段时间,使用最多的就是记录登录状态。