- ·上一篇文章:消息摘要MD/SHA/HMAC的使用方法
- ·下一篇文章:jsp旋转的椭圆
使用session对象储存数据
-->
session对象储存数据
(1)session对象驻留在服务器端,session对象通过调用setAttribute()方法保存用户在访问某个web服务目录有关数据。
public void setAttribute(String key,Object obj)
(2)调用getAttribute()方法获取session对象的值,参数为key(键)
public Object getAttribute()
(3)session对象调用getAttributeName()返回的是一个枚举对象,该枚举对象使用nextElements()遍历session中个个对象所对应的关键字。
public Enumeration getAttributeName()
(4)session对象调用getCreationTime()可以获取对象创建的时间。单位是毫秒。
public long getCreationTime()
(5)seesion对象调用removeAttribute(String key)方法从当前seesion对象中删除关键字为key的对象。
public void removeAttribute(String key)
程序示例 – 在Tag文件中使用session对象
jsp页面通过Tag文件来实现代码复用,那么在调用Tag文件时,Tag文件就可以对session对象中存储的数据进行处理,并将结果返回为JSP页面。
- example4_18.jsp
- guess.jsp
- GuessTag.jsp
example4_18.jsp:使用session对象初始化猜的“次数”和“要猜的数”。
guess.jsp: 输入数给tag,tag接受数据后做出判断,将结果又返回给guess.jsp,由guess.jsp输出结果。
GuessTag.jsp: 数据处理。
example4_18.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <title>Insert title here</title> </head> <body bgcolor="black"> <font color="white" > 随机分给你1到100的数,请猜! <% int num=(int)(Math.random()*100)+1; session.setAttribute("count",new Integer(0)); session.setAttribute("sava",new Integer(num)); //session通过setAttribute方法存储数据 %> <BR> <a href="guess.jsp">去猜这个数</a> </font> </body> </html> |
guess.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib tagdir="/WEB-INF/tags" prefix="guessNumber" %> <title>Insert title here</title> <head> <body> <body bgcolor="black"> <font color="white"> <% String str=request.getParameter("guessNumber"); if(str==null) str="*"; if(str.length()==0) str="*"; %> <guessNumber:GuessTag number="<%=str %>" /> 当前猜测结果:<%=message %> <% if(message.startsWith("你猜对了")){ %> <br><a href="example4_18.jsp">重新获得随机数</a> <% } else{ %> <br>请输入你的猜测: <form action="" method="post" name=form> <input type="text" name="guessNumber"> <input type="submit" name="submit" value="送出"> </form> <% } %> </font> </body> </html> |
GuessTag.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | <%@ tag language="java" pageEncoding="UTF-8"%> <%@ attribute name="number" required="true" %> <!-- tag文件接收jsp传回的数据 --> <%@ variable name-given="message" scope="AT_END" %> <!--tag文件返回的对象 --> <body bgcolor="black"> <font color="white" > <% String mess=""; Integer integer=(Integer)session.getAttribute("sava"); //取回session中的数据保存至integer中 Integer realnumber=integer.intValue(); //realnumber保存要猜的数 int guessNumber=0; //guessNumber保存用户输入的数 boolean boo=true; try{ guessNumber = Integer.parseInt(number); //number为guess.jsp传回的数据 } catch(Exception e){ boo=false; } if(boo){ if(guessNumber==realnumber){ int n=((Integer)session.getAttribute("count")).intValue(); //获取session中count的值(计算次数) n=n+1; session.setAttribute("count",new Integer(n)); //重新设置session的值 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(guessNumber <realnumber){ int n=((Integer)session.getAttribute("count")).intValue(); n=n+1; session.setAttribute("count",new Integer(n)); mess="你猜小了,这是第"+n+"次猜测"; } jspContext.setAttribute("message",mess); //返回tag计算的数据给guess.jsp中 } else if(number.equals("*")){ mess="输入为空!"; jspContext.setAttribute("message",mess); } else { jspContext.setAttribute("message","输入格式错误!"); } %> </font> </body> |
运行结果:
使用session对象储存数据