为什么pageContext有这样的方法?
pageContext.setAttribute("test","xxxxxxxxxxxxxxxxx",pageContext.SESSION_SCOPE);不还是放pageContext里吗?
tks

解决方案 »

  1.   

    加上这个pageContext.SESSION_SCOPE之后,表示在整个session里都有效
      

  2.   

    session中取不到.您意思是不是
    pageContext.setAttribute("test","xxxxxxxxxxxxxxxxx",pageContext.SESSION_SCOPE)等同于
    session.setAttribute("test","xxxxxxxxxxxxxxxxx")?
      

  3.   

    pageContext.setAttribute("test","xxxxxxxxxxxxxxxxx",pageContext.SESSION_SCOPE);估计是因为pageContext里保存了session,application,request这些东西,所以提供一个简便的方法直接调用的。应该就是等同于session.setAttribute()
      

  4.   

      pageContext.setAttribute("test","xxxxxxxxxxxxxxxxx",pageContext.SESSION_SCOPE); 
      pageContext.setAttribute("test","xxxxxxxxxxxxxxxxx",pageContext.PAGE_SCOPE);
      pageContext.setAttribute("test","xxxxxxxxxxxxxxxxx",pageContext.REQUEST_SCOPE);
      pageContext.setAttribute("test","xxxxxxxxxxxxxxxxx",pageContext.APPLICATION_SCOPE); 这些都是针对JSP页面进行设置某个值的属性范围的.
    根据它后面的常量不用,作用范围也不一样.
      

  5.   

    不是根據前面的
    pageContext.setAttribute()
    request.setAttribute()
    session.setAttribute()
    來的嗎?
    pageContext.setAttribute("test","xxxxxxxxxxxxxxxxx",pageContext.SESSION_SCOPE);并沒有放到session中
    而且只有pageContext有這種三個參數的方法
      

  6.   

    pageContext属性默认在当前页面是共享的
    pageContext表示一个javax.servlet.jsp.PageContext对象。pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的session,也可以取本页面所在的application的某一属性值。request.setAttribute() 
    session.setAttribute() 
    是根据前面的对象来设定范围的.
    而pageContext是针对JSP页面的,可以设置在JSP页面进行传值的范围的.
    比如你在JSP页面A.jsp中设置了:
    pageContext.setAttribute("test","xxxxxxxxxxxxxxxxx",pageContext.APPLICATION_SCOPE); 
    那么你在JSP页面B.jsp中想得到它就得用.
    pageContext.getAttribute("test",pageContext.APPLICATION_SCOPE);