对session对象的方法session.setAttribute和session.getAttribute的问题?

biti509 2004-10-02 08:14:48
我从书上拷了一段源程序,运行没问题,功能就是,首先读一个文件前5行,点击按钮"读取文件的下5行",又接着读下边5行,利用session对象的方法session.setAttribute记住读到的位置,以免又从头再读5行
但是却有一个很大的疑问(在*号处)
buffer.readLine()读完5行后,似乎应该在session保存buffer,
但是,程序未保存,当再次取出buffer时,它还记得上次读出的位置,不会从头再读
这是为什么???????????????????

<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import ="java.io.*" %>
<% String s=request.getParameter("g"); //获取客户提交的信息(是否重新读取文件)
if(s==null)
{s=""; }
byte b[]=s.getBytes("ISO-8859-1");
s=new String(b);
File f=null;
FileReader in=null;
BufferedReader buffer=null;
if(session.isNew()||s.equals("重新读取文件")) //当第一次请求该页面时,建立和文件的输入流连接。或当请求重新读取文件时,建立和文件的输入流连接。
{ f=new File("f:/javabook","JSP教程.txt");
in=new FileReader(f);
buffer=new BufferedReader(in);
session.setAttribute("file",f); session.setAttribute("in",in);
session.setAttribute("buffer",buffer);
}
//将上述对象保存到用户的session 对象中:
try{ String str=null; int i=1;
f=(File)session.getAttribute("file");
in=(FileReader)session.getAttribute("in");
buffer=(BufferedReader)session.getAttribute("buffer");
while( ((str=buffer.readLine())!=null)&&(i<=5))
{
out.print("<BR>"+str);
i++;
}
***************************************************
}
catch(IOException e)
{ out.print("文件不存在,或读取出现问题");
}
%>
<%String code=response.encodeURL("readFileByLine.jsp");
%>
<HTML>
<BODY>
<P><BR>点击按钮读取下5行:
<FORM action="<%=code%>" method="post" name=form>
<Input type=submit value="读取文件的下5行">
</FORM>
<P><BR>点击按钮读重新读取文件:
<FORM action="" method="post" name=form>
<Input type=submit name="g" value="重新读取文件">
</FORM>
</BODY>
</HTML>
...全文
232 点赞 收藏 2
写回复
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
cuixiping 2005-01-02
都保存在session里了,没看见么?
session.setAttribute("file",f); session.setAttribute("in",in);
session.setAttribute("buffer",buffer);
回复
biti509 2004-10-02
没人知道么?
回复
发动态
发帖子
Web 开发
创建于2007-09-28

7.9w+

社区成员

Java Web 开发
申请成为版主
社区公告
暂无公告