JSP内置对象之在Tag中使用session对象(习题六)--jsp程序设计

一、作业要求:

p107,猜字母小游戏(根据例题4_18猜数字改编,注释掉的是原书内容)

二、源码分析

2.1 ex4_18.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>猜英文字母</title>
</head>
<body>
    <%--随机分给了你一个1-100之间的数,猜猜!--%>
    随机分给了你一个a-z之间的数,猜猜!
    <%
//        int num =(int)(Math.random()*100)+1;
        char a[]=new char[26];
        int m=0;
        for(char i='a';i<='z';i++){
            a[m]=i;
            m++;
        }
        int randomIndex=(int)(Math.random()*a.length);
        char ch=a[randomIndex];
        session.setAttribute("count",new Integer(0));
//        session.setAttribute("save",new Integer(num));
        session.setAttribute("save",new Character(ch));
    %>
<br><a href="guess.jsp">去猜测这个数</a>
</body>
</html>

2.2 guess.jsp

<%--
  Created by IntelliJ IDEA.
  User: corrine
  Date: 2019/4/7
  Time: 16:45
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib tagdir="/WEB-INF/tags" prefix="guessNumber"%>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <%
        String str=request.getParameter("guessNumber");
        if(str==null) str="*";
        if(str.length()==0) str="*";
    %>
    <guessNumber:Guess number="<%=str%>"></guessNumber:Guess>
    当前猜测结果为:<%=message%><br>
   <%
    if(message.toString().startsWith("你猜对了")){%>
        <br><a href="ex4_18.jsp">重新获得随机数</a>
    <%}
    else {%>
        <br>输入你的猜测:
        <form action="" method="get" name="form">
            <input type="text" name="guessNumber">
            <input type="submit" value="送出" name="submit">
        </form>
    <%}
%>
</body>
</html>

2.3 Guess.tag

<%@ tag pageEncoding="GB2312" %>
<%@ attribute name="number" required="true" %>
<%@ variable name-given="message" scope="AT_END" %>
<%  String mess="";
//    Integer integer=(Integer)session.getAttribute("save");
//    int realnumber=integer.intValue();
    Character integer=(Character)session.getAttribute("save");
    Character realnumber=integer.charValue();
//    int guessNumber=0;
    Character guessNumber='a';
    boolean boo=true;
    try{
//        guessNumber=Integer.parseInt(number);
        guessNumber=number.charAt(0);
    }
    catch(Exception exp){
        boo=false;
    }
    if(boo){
        if(guessNumber==realnumber) {
            int n=((Integer)session.getAttribute("count")).intValue();
            n=n+1;
            session.setAttribute("count",new Integer(n));
            mess="您猜对了,这是第"+n+"次猜测";//+realnumber+":"+guessNumber
        }else if(guessNumber>realnumber){
            int n=((Integer)session.getAttribute("count")).intValue();
            n=n+1;
            session.setAttribute("count",new Integer(n));
            mess="您猜大了,这是第"+n+"次猜测";
        }
        else if(guessNumber<realnumber){
            int n=((Integer)session.getAttribute("count")).intValue();
            n=n+1;
            session.setAttribute("count",new Integer(n));
            mess="您猜小了,这是第"+n+"次猜测";
        }else if(number.equals("你还没开始猜测")){
            mess="你还没开始猜测";
        }
        jspContext.setAttribute("message",mess); //将对象message返回给JSP页面
    }else{
        jspContext.setAttribute("message","请输入您的猜测");
    }
%>

三、结果图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值