本人初学JSP,对JSP共享数据的几个范围不是很清楚,请高手指点下:
我知道JSP共享的范围有4个:page,request,session,'servletContent'(appliaction)
对这四个的有效范围、生命周期不是太清楚,清高手指点!
谢谢了!

解决方案 »

  1.   

    page:当前页面有效
    request:上一个页面传递过来的值,
    session:一个用户的会话期间
    appliation:系统整个运行期间
      

  2.   

    page:
        在某一个JSP第一行使用page.setAtt....("A","aaaa");
        在同一个JSP的后面使用page.getAtt...("A");就可以得到这个"aaaa"字符串。当这个JSP执行完后,就不能再得到“aaaa”这个字符串了。
    request:
        当请一个JSP时,在第一句使用request.setAtt("tt","yyy");
        在同一JSP中使用request.getAtt...("tt"),可以得到“yyy”这个字符串,同样的如果你在这个JSP使用了
        <jsp:include page="b.jsp"/>标签,把另外一个b.jsp也包含进来,在b.jsp里你也可以使用request.getAtt...("tt")得到"yyy"这个字符串,其中在两个JSP页面都可以使用request.getParameter();方法取得同个参数。如果使用forword的方法去转发到别的页面c.jsp,那么在c.jsp里也可以得到"yyy"这个字符串对像。
       当服务器执行完后,就再也得不到"yyy"那个对像了。它是在一次请求过程中存在的,请求完之后,request对像就不存在了,那些"yyy"当然也是不存在了。
      

  3.   

    page:当前页面有效,意思是说页面提交了或者跳转了,page范围内的变量都失效了(详细看3楼)
    request:上一个页面传递过来的值, 详细看3楼
    session:一个用户的会话期间 ,session就是一个会话,对于ie来说,你打开一个页面,如果产生一个session,那么在session失效之前(session有作用时间,默认20分钟,可修改)只要你的页面是用之前的ie窗口打开的,session就有效,你就可以session.setAttribute来设置变量的值,session.getAttribute来获取变量的值
    appliation:系统整个运行期间,当前服务只要不重启,application中的变量就会存在,一样的set,get方法,你可以查看api
    appliation>session>request>page
    有效范围、生命周期依次递减
      

  4.   

    假如我登陆了一个网站,网站创建了一个关于我的session,如果把这个网站的所有页面都关了,在这个session默认
    的20分钟内再登陆,这个session还有效没?
      

  5.   

    无效了。 你可以把session的存在时间理解为你的IE浏览器从创建这个session到浏览器关闭的过程。
    这几个问题你如果刚接触的话没有必要非要弄个水落石出,在学习半个月之后你自然有你自己的理解。!
      

  6.   

    fys249931556 说得对,关于request我说点。
    不一定要在上一个页面传过来,我们可以理解成变量设成request后,只要有请求到这个变量的地方都可以访问到,不管它是哪个地方来的。