一:问题描述:
通过系统自动生成随机数(整数),用户猜测该随机数的值,系统会根据用户输入的大小提示用户是猜大了还是猜小了,用户根据系统提示信息重新进行猜测,最终,系统会记录用户一共猜测了 几次猜到了正确结果,并给出该随机数的值。
二:技术:jsp内置对象实现
代码如下:
竞猜页面:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import ="java.util.Random" import="java.util.Scanner"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%!
Random random =new Random();
%>
<%
//产生的随机数在未猜中之内唯一
if(session.getAttribute("guess_m")==null){
//产生随机数
int guess=random.nextInt(5);
//类型转换,方便传值,int-->String
String guess_string=Integer.toString(guess);
session.setAttribute("guess_number_demo", guess);
}
%>
<form action="check.jsp" method="Get">
请输入你要竞猜的数字:<input type="text" name="number"><br>
<!-- 第一次不显示提示信息 -->
<%
if(session.getAttribute("guess_m")!=null){
%>
提示信息:<%=session.getAttribute("guess_m")%>
<% }%>
<input type="submit" value="提交">
</form>
</body>
</html>
检查页面:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%!
//定义访问次数的变量
private static int count=0;
//接受随机数的变量
private static int number=0;
%>
<%
//接受随机数
String guess_number="";
//判断所传参数是否为空
if(session.getAttribute("guess_number_demo")!=null){
//类型转换,String-->int
//类型转换,因为session设置值,要的是字符串
guess_number=session.getAttribute("guess_number_demo").toString();
number = Integer.parseInt(guess_number);
}
//接受用户输入的数据
String name=request.getParameter("number");
int num=0;
//判断所传数据是否为空
if(name!=null&&!name.equals("")){
try{
//不为空强制转换为int
num=Integer.parseInt(name);
}catch(NumberFormatException e){
}
}
//流程判断,随机数与用户的数据谁大谁小
if(num>number){
// out.println("猜大了");
//次数加1,设置提示信息,跳转到猜的页面
count++;
session.setAttribute("guess_m", "猜大了");
response.sendRedirect("guess.jsp");
}else if(num<number){
//out.println("猜小了");
//次数加1,设置提示信息,跳转到猜的页面
count++;
session.setAttribute("guess_m", "猜小了");
response.sendRedirect("guess.jsp");
}
else {
//次数加1,传次数和随机值给猜中页面,跳转到猜中页面
count++;
//类型转换,因为session设置值,要的是字符串
String count_string=Integer.toString(count);
//传次数和随机值给猜中页面
session.setAttribute("count", count_string);
session.setAttribute("num", guess_number);
//跳转到猜中页面
response.sendRedirect("result.jsp");
}
%>
</body>
</html>
结果显示页面:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
//接受猜的次数的值
int number_count=0;
String guess_number_count="";
//判断所传数据是否为空
if(session.getAttribute("count")!=null){
//数据类型转换String-->int
guess_number_count=session.getAttribute("count").toString();
number_count = Integer.parseInt(guess_number_count);
}
//接受随机数值
int number=0;
String guess_number="";
//判断所传数据是否为空
if(session.getAttribute("num")!=null){
//数据类型转换String-->int
guess_number=session.getAttribute("num").toString();
number = Integer.parseInt(guess_number);
}
%>
输入了<%=number_count%>次<br />
随机数是:<%=number %>
</body>
</html>