内置对象的使用


提及到的基本名词
1. restful 设计模式
2. Ajax;
3. https ssl  安全套接字;
4. shtml技术;
5. SSI 服务端包含;
6. saas 软件即服务;
调试方法技巧及其步骤
1. 首先看jsp页面的报错信息
2. 其次看控制太信息
其中控制台信息中是下面调用上面的方法。
  3.  最后看tomcat下面的log文件夹下面的信息(找最新的信息当天的日志);


  
今天的任务
  猜数字游戏:
  需求: 有多少人玩过此游戏;
         数字猜不正确进行提示;
         这个人玩了几次;
  进行此小练习的目的:
1. 使同学们进行代码的编写练手;
2. 对内置对象 session 、request、、out、application、等对象进行进一步的了解。
  在编写此程序遇到的问题:
1. 首先考虑的使用servlet进行业务逻辑的处理但是很不好意思由于当时不知道怎么实现所以暂且搁置(注:用servlet时 直接在你提交的方式的doXxx方法下面写方法体最后用farward方法进行转向到.jsp页面。
2. 首先考虑的是在session里面放一个固定的值,知道如何写,并且已经写正确,但是进行随机数函数进行写的时候每次调用process,jsp页面的时候都执行了随机数函数所以每次session里面的值就会变化,不符合要求。之后的解决方案:对session集合里的值进行判断处理,看是否执行了random函数,若已经执行则跳过进行下面的 逻辑处理,否则则进行函数的执行。
注:产生随机数的函数方法有:
1. 使用lang.Math包里面的Random函数进行随机数的生成
具体方式为:int m=Math,Random();
    2.使用java.util包中的Random函数生成数据库
具体方式为(产生0-100的随机整型整数) :Random random1=new Random();
random=random1.nextInt(101);
3. 对失败成功次数进行统计部分:
应用的全局变量(相当于静态变量),在执行每次循环的时候就进行failure++;然后放到session中,操作这样就会对其猜的次数进行统计。当猜中之后要对其相关的session进行相关的removAttribute();对failure进行复位操作。
4. 对总共进行统计的部分用application对象进行统计,但是该application的相关操作最好放在执行Random()函数的地方,这样就能保证其不是每次刷新就进行一次统计。
5. 对有多少人猜数成功部分仍未做。有待完善。。。。。。
在此小练习掌握的类和方法以及小技巧
1. Random类方法的使用
2. equals()与“==”号的区别
“==“是引用的地址一样才返回true,否则返回false;
“equals()”方法如果内容相等就返回true;否则返回false。
3. equals()方法的小技巧:
例如:   true".equals(session.getAttribute("execute")
     这样的话不管后面的session.getAttribute(“execute”)是否为空指针都不会出现异常
    若两者调换一下位置成session.getAttrbute(“execute”).equals(“true”) 则会抛出异常;
4. 在网页中使用<a></a>进行超链接的时候在本页中进行链接则可以使用name 属
性进行页面之间的定位;此作用为一标签
5.如何使用firefox的http表头的插件。;
6.++在前和++在后的区别;



附录(自己编写的相关代码):
Main.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>
    <base href="<%=basePath%>">
   
    <title>My JSP 'main.jsp' starting page</title>
   
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">   
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

  </head>
 
  <body>
   <form action="process.jsp" name="form" method="post">
   请输入你猜的数字:<input type="text" size="10" name="number" />
                 <input type="submit" value="提交"/>
   </form>
  </body>
</html>



process.jsp
对main.jsp页面提交过来的值进行业务逻辑上的处理同时进行相关简单的页面显示
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="com.yuqiao.dongbiao.*"%>



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>


<title>My JSP 'process.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">d
-->

</head>

<body>
<%!
int failure=0;
%>
<%

   // int failure=0;
    Integer random;
  
     //创建random对象   
    if(!"true".equals(session.getAttribute("execute")))
    {
    Random random1=new Random();
    random=random1.nextInt(101);
    session.setAttribute("execute","true");
    session.setAttribute("random",random);
      Integer times=(Integer)application.getAttribute("times");
      if(times==null)
      {
        times=new Integer(1);
        application.setAttribute("times",times);
      }
   else
    {
     times++;
   application.setAttribute("times",times);
    }
   
    }
   
    String String_number=request.getParameter("number");
   
    Number_Guess number_guess=new Number_Guess();
   
    int Int_number=number_guess.converter(String_number);
   
    int m=(Integer)session.getAttribute("random");
   
    System.out.println(m);
   
    if(number_guess.Judge(Int_number,m)==0)
    { ++failure;
      out.print("恭喜你,猜中了!<br>");
      session.removeAttribute("execute");
      session.removeAttribute("random");
      session.setAttribute("failure",failure);
      out.print("你在第"+session.getAttribute("failure")+"次猜数成功");
     // session.setAttribute("failure",0);
      failure=0;
     }
    if(number_guess.Judge(Int_number,m)==1)
    {
     ++failure;
     out.print("你猜的数字大了");
     out.print("<br>");
     out.print("<a href='main.jsp'>点此返回重新猜</a><br>");
     session.setAttribute("failure",failure);
     out.print("你总共猜了"+session.getAttribute("failure")+"次失败");
    
    // session.removeAttribute("failure");
     }
    
    if(number_guess.Judge(Int_number,m)==-1)
    {
     ++failure;
     out.print("你猜的数字小了");
     out.print("<a href='main.jsp'>点此返回重新猜</a><br>");
     session.setAttribute("failure",failure);
     out.print("你总共猜了"+session.getAttribute("failure")+"次失败");
    }
    out.print("<hr><br>"); 
    out.println("<h2> 你是第 ");
    out.print(application.getAttribute("times"));
    out.print(" 个猜数的");
 
%>
</body>
</html>



Number_Guess():
主要是对页面所使用的方法进行自行编写
主要方法就是1.对字符串转化为整形
3. 对输入的数字和session里面的值进行判断

package com.yuqiao.dongbiao;

public class Number_Guess {
//类型转换函数
public int converter(String value)
{
return Integer.parseInt(value);
}
//判断是大是小
public int Judge(int input,int consult)
{
if(input<consult)
       return -1;
else
{
if(input==consult)
return 0;
else
return 1;
}


}

}




你可能感兴趣的:(游戏,Ajax,jsp,saas,网页游戏)