请选择 进入手机版 | 继续访问电脑版

JSP实现百万富翁猜数字游戏

[复制链接]
查看928 | 回复0 | 2020-7-16 08:00:21 | 显示全部楼层 |阅读模式
本文实例为大家分享了JSP实现百万富翁猜数字游戏的具体代码,供大家参考,具体内容如下
设计一个web app,每次产生一个30以内的数字,给5次机会让客户猜测这个数字:
1)如果客户猜的数字比产生的数字值大,则提示“大了”。
2)如果客户猜的数字比产生的数字值小,则提示“小点”
猜对了就过关,猜错Game Over,给玩家重玩的机会。
JSP代码:
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  7. <title>Insert title here</title>
  8. </head>
  9. <body>
  10. <%
  11. String result=(String)request.getAttribute("result");
  12. if(result!=null){
  13.   out.write("<font color='red'>"+result+"'</font>");
  14. }
  15. %>
  16. <%
  17. Integer times=(Integer)request.getAttribute("times");
  18. if(times!=null){
  19.   out.write("你还有"+(5-times)+"次机会!");
  20. }
  21. %>
  22. <br/>
  23. <form action="/zxz/zxz" method="POST">
  24. 请输入你的数(20以下):<input type="text" name="Lucy" /><br/>
  25. <%
  26. if(times!=null){
  27. %>
  28.   <input type="hidden" name="times" value="<%=times %>"/>
  29. <%
  30. }
  31. %>
  32. <input type="submit" value="竞猜" />
  33. </form>
  34. </body>
  35. </html>
复制代码
Servlet代码:
  1. package hah;
  2. import java.io.IOException;
  3. import java.util.Random;
  4. import javax.servlet.ServletException;
  5. import javax.servlet.annotation.WebServlet;
  6. import javax.servlet.http.HttpServlet;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9. /**
  10. * Servlet implementation class zxz
  11. */
  12. @WebServlet("/zxz")
  13. public class zxz extends HttpServlet {
  14. private static final long serialVersionUID = 1L;
  15. int answer;
  16. public void newGame() {
  17. Random random=new Random();
  18. answer=random.nextInt(20);
  19. }
  20. public zxz() {
  21. newGame();
  22. }
  23. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  24. response.setContentType("text/html;charset=utf-8");
  25. String lucyStr=request.getParameter("Lucy");
  26. Integer lucyNb=null;
  27. System.out.println("答案:"+answer);
  28. if(!lucyStr.equals("")) {
  29.   lucyNb=Integer.parseInt(lucyStr);
  30. }
  31. Integer times=1;
  32. String timeStr=request.getParameter("times");
  33. if(timeStr!=null&&!timeStr.equals("")) {
  34.   times=Integer.parseInt(timeStr)+1;
  35. }
  36. if(times<5) {
  37.   String result="";
  38.   if(lucyNb>answer) {
  39.   result="大了";  
  40.   }else if(lucyNb<answer) {
  41.   result="小了";
  42.   }else if(lucyNb==answer) {
  43.   result="中了";
  44.   times=null;
  45.   }
  46.   request.setAttribute("times", times);
  47.   request.setAttribute("result", result);
  48. }else {
  49.   newGame();
  50.   response.getWriter().write("游戏结束<a href='"+request.getContextPath()+"/One.jsp'>再来一把</a>");
  51.   return;
  52. }
  53. request.getRequestDispatcher("/One.jsp").forward(request, response);
  54. }
  55. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  56. doGet(request, response);
  57. }
  58. }
复制代码
总结:
a. 使用标签hidden可以隐式传递数据而不被用户发现 可以用来记录次数 如:
  1. <input type="hidden" name="times" value="<%=times %>"/>
复制代码
b. Servlet是用来跳转和执行逻辑代码的,JSP是用来展示数据的
c. request.getParameter(“Lucy”);如果参数不存在则返回null的字符串值
d 跳转有两种方式 一个是页面跳转 地址要写项目名+jsp或者servlet

另一个是转发共享了request的域对象,地址可以直接写jsp或者servlet 不要项目名 而且项目名和jsp或者servlet前都要加“/” 不然就是相对位置了
如:
  1. <form action="/zxz/zxz" method="POST">
  2. //转发
  3. request.getRequestDispatcher("/One.jsp").
  4. forward(request, response);
复制代码
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持目录社区。

买目录提供泛目录、二级目录、租目录、出租网站建设资源、编程学习类,提供asp、php、asp.net、javascript、jquery、vbscript、dos批处理、网页制作、网络编程、网站建设等编程资料。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则