JSP内置对象session

本文介绍如何使用JSP内置对象session实现一个简单的猜数字游戏。通过设置session属性存储随机数和猜测次数,用户可以尝试猜出服务器随机生成的1至100之间的数字。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JSP内置对象session

Tomcat服务器可以使用内置对象session记录有关链接的信息。内置对象session由Tomcat服务器创建,session是实现了HttpSession接口类的一个实例,可以在Tomcat服务器的webapps\tomcat-docs\servletapi中查找HttpSession接口的方法

session 对象存储数据可以调用的方法

(1)调用public void setAttribute(String key,Object obj) 将参数Object指定的对象obj添加到session对象中,并为添加的对象指定一个索引关键字。
(2)调用public void getAttribute(String key) 获取session对象索引关键字是key的对象。由于任何对象都可以添加到session对象中,因此用该方法取回对象时,应强制转化为原来的类型。
(3)调用public Enumeration getAttributeNames() session对象为该方法产生一个枚举对象,该枚举对象使用nextElements()遍历session中的各个对象所对应的关键字。

使用session对象实现一个猜数字小游戏

number.jsp

<%@ page language="java" contentType="text/html; charset=gb2312"%>
<html>
<body bgcolor=cyan><font size=3>
<%
    int number=(int)(Math.random()*100)+1;
    session.setAttribute("count", new Integer(0));
    session.setAttribute("random",new Integer(number));
%>
<p>已经为您随机生成了一个1-100之间的数字,请在此输入您的猜测:<br>
      <form action="result.jsp" method=post name=form>
           <input type="text" name="guess">
           <input type="submit" value="确定" name="submit">
      </form>
</font>
</body>
</html>

result.jsp

<%@ page language="java" contentType="text/html; charset=gb2312"%>
<html>
<body bgcolor=cyan><font size=4>
<% 
      String str=request.getParameter("guess");
      if(str==null || str.length()==0){
           response.sendRedirect("number.jsp");
      }
      else{
           int guessnumber=Integer.parseInt(str);
           session.setAttribute("guess",new Integer(guessnumber));
           Integer integer=(Integer)session.getAttribute("random");
           int realnumber=integer.intValue();
           if(guessnumber==realnumber){
               int n=((Integer)session.getAttribute("count")).intValue();
               n=n+1;
               session.setAttribute("count",new Integer(n));
               response.sendRedirect("success.jsp"); 
           }
           else if(guessnumber>realnumber){
               int n=((Integer)session.getAttribute("count")).intValue();
               n=n+1;
               session.setAttribute("count",new Integer(n));
               response.sendRedirect("large.jsp");
           }
           else if(guessnumber<realnumber){
               int n=((Integer)session.getAttribute("count")).intValue();
               n=n+1;
               session.setAttribute("count",new Integer(n));
               response.sendRedirect("small.jsp");
           }
      }

      %>       
</font>
</body>
</html>

success.jsp

<%@ page language="java" contentType="text/html; charset=gb2312"%>
<html>
<body bgcolor=cyan><font size=3>
     <%
        int count=((Integer)session.getAttribute("count")).intValue();
        int num=((Integer)session.getAttribute("random")).intValue();
     %>
     <p>恭喜您,猜对了,这个数字是<%= num %>
     <br>您共猜了<%= count %></font>
</body>
</html>

large.jsp

<%@ page language="java" contentType="text/html; charset=gb2312"%>
<html>
<body bgcolor=cyan><font size=3>
     <%
        Integer count=(Integer)session.getAttribute("count");
        Integer number=(Integer)session.getAttribute("guess");
     %>
     <p>您猜的数字是<%= number %>,猜大了,您已经猜了<%= count %>次了,请重新猜,
     <form action="result.jsp" method=post name=form>
           <input type="text" name="guess">
           <input type="submit" value="确定" name="submit">
      </form>
</font>
</body>
</html>

small.jsp

<%@ page language="java" contentType="text/html; charset=gb2312"%>
<html>
<body bgcolor=cyan><font size=3>
     <%
        Integer count=(Integer)session.getAttribute("count");
        Integer number=(Integer)session.getAttribute("guess");
     %>
    <p>您猜的数字是<%= number %>,猜小了,您已经猜了<%= count %>次了,请重新猜,
     <form action="result.jsp" method=post name=form>
           <input type="text" name="guess">
           <input type="submit" value="确定" name="submit">
      </form>
</font>
</body>
</html>

结果展示

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值