付费节点推荐
免费节点
节点使用教程
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
<%@ 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
<%@ 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
<%@ 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>
运行结果:
未经允许不得转载:Bcoder资源网 » 使用session对象储存数据
评论前必须登录!
登陆 注册