session(会话)实现浏览器猜数游戏

来源:互联网 发布:淘宝知识产权申诉失败 编辑:程序博客网 时间:2024/06/07 13:25

创建一个Dynamic Web Project, 命名为GuessNumber,在GuessNumber下的scr文件夹中创建一个servlet,命名为gn1。

在doget方法中写如下代码:

HttpSession s1=request.getSession();                                     //创建会话,不用解释了吧
  PrintWriter out=response.getWriter();
  response.setContentType("text/html;charset=GBK");             //注意编码,不过这个程序没问题,因为都是英文的
  if(s1.getAttribute("guessNumber")==null){                                            //判断程序开始
   s1.setAttribute("guessNumber",(int)(Math.random()*99+1) );              //系统取随机数
  
   s1.setAttribute("message", "hey
,i have a number,can you guess it?");         //创建消息对象
  }
  
  
  out.println("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html;charset=gbk\"></head><body>");
  out.println(s1.getAttribute("message"));
  out.println("<form method=\"post\" action=\"gn2\">");                     //post方法提交到gn2

  out.println("<input type=\"text\" size=4 name=\"value\">");
  out.println("<input type=\"submit\" value=\"submit\">"+s1.getAttribute("guessNumber"));

//显示随机到的数字。调试用的,可以去掉...
  out.println("</form></body></html>");

再创建一个servlet,命名为gn2,dopost方法中写代码如下:

HttpSession s2=request.getSession();
  int num1=(int)s2.getAttribute("guessNumber");     //取gn1的随机数,下面比较的时候用
  s2.getAttribute("message");                                   //取gn1的message,这句好像没用...不用也可以
  String num2=request.getParameter("value");        //取客户端输入的值
  int num=Integer.parseInt(num2);                           //字符串转换成数字
  if(num>num1){                                                       //下面是比较
   
   s2.setAttribute("message", "big");
   response.sendRedirect("gn1");
  }else if(num<num1){
   s2.setAttribute("message", "small");
   response.sendRedirect("gn1");
  }else if(num==num1){
   response.sendRedirect("success.html");
   s2.removeAttribute("guessNumber");

在Web Content文件夹下创建一个html文件,命名为success.html。

编辑代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
 <p>恭喜你猜对了!</p>
 <a href="http://localhost:8088/GuessNumber/gn1">play again</a>                //注意端口,酌情选择

</body>
</html>

就这样!

打开浏览器,输入地址http://localhost:8088/GuessNumber/gn1                         回车,就ok了。

上面的端口为什么是8088,我在“简单的helloworld”中有解释。