当然会实例化一个值
session只是对BEAN的生存期作一个限制。
你要的是串行化吧

解决方案 »

  1.   

    scope为session 
    当使用bean时候,如果session存在这个对象是不会新实例化得MSG 的scope为session 吗?
      

  2.   

    和同学讨论后,认为没有将MSG放在session里,所以不能得到值,现在想办法将调用MSG时放到session里就可以,怎么做?
      

  3.   

    变量为private String 要继承才能得到的哟?
    你还是用public String吧,或定义一个getMessage()的方法来返回你的message
      

  4.   

    现在想办法将调用MSG时放到session里就可以,怎么做???
    MSG 的scope设置为session不就可以 
      

  5.   

    专门为private String定义了get和set方法!to hjwl(hj) :
    可是发生异常时,并没有通过use bean调用MSG,而是别的类发生了异常才调用MSG,然后将异常信息写入,另一个页面B显示信息时,先要use bean MSG,这是因为先前的MSG在session里并不存在,所以会实例化一个MSG,而这个MSG实例与发生异常时的MSG不是同一个实例,所以无法得到值!
      

  6.   

    在jspA中用session.setAttribute("msg",MSG);
    在jspB中getAttribute就行了
      

  7.   

    to blackcourser(be stronger……) 
    你的意思是你在一些类的错误处理中把信息写到MSG的类中??那你就要这样 
    A.jsp
    useBean MSG scope=session id=msg
    在你的那些类中使用MSG的时候不要新实例化,用(MSG)session.getAttribute("msg")来得到MSG使用
    B.jsp
    useBean MSG scope=session id=msg
    就可以得到A.jsp产生的错误message
      

  8.   

    to AlexHeHe(呵呵):
    你们的想法很好,可是无法在jspA中使用session.setAttribute("msg",MSG),因为jspA页面根本得到MSG,而是jspA页面调用java bean,比如BeanA,发生异常时调用MSG,所以和jsp页面没有关系,是bean之间的调用;to hjwl(hj) :
    在那些类中如何编写(MSG)session.getAttribute("msg")?需要传递什么参数?
      

  9.   

    blackcourser(be stronger……) 
    你的错误处理方式到底是什么呢?刚开始我理解你的问题是一个bean在scope设置为session时候,在其他页面useBean的时候是否会实例化一个新的。现在看到的问题好像不是这个 我现在的理解
    你有一个MSG的class来专门作错误信息的纪录,在你的A.jsp中使用的各个class中只要有错误就要调用MSG来写错误信息,但是你在b.jsp中使用MSG时候是新实例化因此得不到A.jsp里面记录的错误。
    解决方法:
    A.jsp 
    useBean MSG scope=session id=msg 或 session.setAttribute("msg",MSG)
    A.jsp中使用的class都必须使用从session取出的msg 也就是(MSG)session.getAttribute("msg"),你的这些class 都增加一个getMSG(HttpSession session)的方法,用这个传递的session对象取得session中的msg
    B.jsp
    useBean MSG scope=session id=msg 或 (MSG)session.getAttribute("msg",MSG)
      

  10.   

    to hjwl(hj) :
    我就想知道怎么写这个getMSG(HttpSession session)方法
    将(MSG)session.getAttribute("msg")作为参数传给这个方法是吗?
    在方法里怎么写?
      

  11.   

    getMSG
    返回为MSG 参数是HttpSession
    取得MSG
    (MSG)session.getAttribute("msg")
      

  12.   

    HttpSession在哪个包里?
    是interface?
      

  13.   

    我使用HttpSession出错
    使用ServletContext可以作为参数吧,也有getAttribute方法
      

  14.   

    随便啦可以得到session的方法很多
      

  15.   

    不好意思HttpSession可以,使用ServletContext不行
    我刚才把HttpSession写成Httpsession了:(