其实,每次使用<jsp:useBean id="a" class="myclass" scope="session">,都是新new一个对象的。
要跨页保存变量的值,用session吧。
session.setAttribute(name,value);
下一页中:session.getAttribute(name);

解决方案 »

  1.   

    那直接用
    sesseion.setAttribute("","");来设置然后用session.getAttribute("")来获取
      

  2.   

    从session中获取bean实例,而非在jsp里面创建一个bean实例,这个很重要。在jsp页面用jsp:useBean创建的一般应该是无状态的东西。
      

  3.   

    这种方法是我在一本书里看到的,它说这种方法,实际上等于sesseion.setAttribute("","");
    可是,我试了就是不行
      

  4.   

    我测试的没有问题啊(tomcat5下),b.jsp显示的是前一页写近的值"test":SessionBeanTest.javapackage test;public class SessionBeanTest
    {
    private String s1 = "sssssssss";

    public void setS1( String s )
    {
    this.s1 = s;
    }
    public String getS1()
    {
    return s1;
    }
    }SessionBeanTest.jsp<%@ page import="test.SessionBeanTest" %>
    <jsp:useBean id="sbt" class="test.SessionBeanTest" scope="session" />
    <%
    sbt.setS1( "test" );
    response.sendRedirect( "b.jsp" );
    %>b.jsp<%@ page import="test.SessionBeanTest" %>
    <jsp:useBean id="sbt" class="test.SessionBeanTest" scope="session" />
    <%=sbt.getS1()%>
      

  5.   

    to Tasia(这里是CSDN吗?) 
    你错了,你打开servlet代码发现如下代码:
    mycalss a=null;
    a=session.getAttribute("a");
    if(a==null){
       a=new myclass();
    }
    是发现在所在的scope中没有时才新建的,从这儿也可以看出为什么我们的bean要有一个默认的构造子
      

  6.   

    还有个可能:
    可能你的IE没有打开cookie功能,而又没有使用URL rewriting技术,所以每次服务器都是发现传来的数据中没有sessionID,而给你新建一个,所以每次都是一个新的session会话,你使用一个类似于tcp monitor的工具看一下之间的输出数据应该就可以发现问题之所在,可以下载可axis.jar,里面有个tcp monitor
      

  7.   

    agen10120216(agen)说得没错,这个是可以实现的。
      

  8.   

    做一个servlet,在结束的时候setAttribute一下,以保证数据对象通过request传到jsp页面上,然后再用<jsp:useBean>取得.
      

  9.   

    找时间我再自己试试看,现在我已经改为先写session,另外一个网页读session的方法,有时间会再试试用javaBean共享数据的方法吧。
      

  10.   

    用setAttribute()方法多好啊,这个很麻烦的,每次更改登陆帐户都要invalidate()下