• JSP九大隐式对象pageContext


    JSP九大隐式对象--pageContext

      pageContext对象是JSP技术中最重要的一个对象,它代表当前JSP页面的运行环境,这个对象不仅封装了对其它8大隐式对象的引用,它自身还是一个域对象,可以用来保存数据。并且,这个对象还封装了web开发中经常涉及到的一些常用操作,例如包含和跳转其它资源、检索其它域对象中的属性等。 

    a)能够取得其它8个内置对象
    b)具有转发和包含的功能
    c)域对象

          1.通过pageContext获得其他对象
    getException方法返回exception隐式对象
    getPage方法返回page隐式对象
    getRequest方法返回request隐式对象
    getResponse方法返回response隐式对象
    getServletConfig方法返回config隐式对象
    getServletContext方法返回application隐式对象
    getSession方法返回session隐式对象
    getOut方法返回out隐式对象
     
    2.引入和跳转到其他资源
       PageContext类中定义了一个forward方法和两个include方法来分别简化和替代RequestDispatcher.forward方法和include方法
       传递给这些方法的资源路径,如果路径以“/”开头,表示相对于当前WEB应用程序的根目录,否则,表示相对于当前JSP所映射到的访问路径。
       转发
        public abstract void forward(java.lang.String relativeUrlPath)
     
     
    3.pageContext作为域对象
      pageContext域对象只限于当前jsp页面,出了该jsp页面,源pageContext域对象销毁,取不到,返回null
     
      1) pageContext对象的方法 
        
    public void setAttribute(java.lang.String name,java.lang.Object value)     
    public java.lang.Object getAttribute(java.lang.String name)
    public java.lang.Object getAttribute(java.lang.String name,int scope)
    public void removeAttribute(java.lang.String name)
     
       2) pageContext对象中还封装了访问其它域的方法
     
           pageContext/request/session/application
     
          public void setAttribute(java.lang.String name, java.lang.Object value,int scope)//可以指定存放到哪个域对象中去
          public java.lang.Object getAttribute(java.lang.String name,int scope)//指定将获取到的值放在某个指定的域对象中去
          public void removeAttribute(java.lang.String name,int scope)
     
       3)代表各个域的常量
     
          PageContext.APPLICATION_SCOPE
          PageContext.SESSION_SCOPE
          PageContext.REQUEST_SCOPE
          PageContext.PAGE_SCOPE
     
      4)findAttribute方法   
          先后查找各个域中的属性
     
     
    web开发接触到了4个域对象:
    •pageContext(称之为page域)
    •request(称之为request域)
    •session(称之为session域)
    •servletContext(称之为application域)
     

    [四个域对象的生命周期]

    1、pageContext jsp执行时创建pageContext,jsp页面结束时pageContext销毁
    2、request 客户请求服务器时创建,请求结束request销毁
    3、session 客户机请求服务器时,第一次getSession时,服务器创建session,session过xx多长时间没用了(或调用了 session.invalidate方法),服务器销毁session
    4、application(servletContext) web应用启动时就创建,web应用停止就销毁

    [什么情况下用什么域的问题]
    1、什么情况下用request域?如果在开发程序时,数据看完就没用了,那就应该把数据存在request域范围内。比如看新闻,新闻属于用户看完就没用的数据,这时servlet获得新闻数据,就应该存在request里面交给jsp显示。

    2、什么情况下用session域?如果在开发程序时,数据看完了用户等一会儿还要用,那就应该把数据存在session域范围内.例如购物,购买的商品是用户的数据,这个数据产生之后,用户等一会儿结帐还要用,那么程序就应该把数据存在用户的session中。

    3、什么情况下用application域?如果在开发程序,数据产生了,这个数据不仅等一会儿自己要用,还要给别人用,那就应该存在application域,例如web聊天室,用户的聊天数据,这个数据不仅用户等一会儿自己要看,还要给别人看。

     
          
     
  • 相关阅读:
    Vue 项目运行 npm run dev 命令时会报错:“'webpack-dev-server' 不是内部或外部命令,也不是可运行的程序” 的解决办法
    百度地图 操作步骤
    返回数据-----数组处理
    Echarts折线图,适配可移动
    jq checkbox的操作——全选、反选
    jquery 时间戳与日期转换
    Flex 布局
    iphone遇到INPUT标签BUG
    点击复制粘贴
    Python数据类型的可变与不可变
  • 原文地址:https://www.cnblogs.com/hacket/p/2960613.html
Copyright © 2020-2023  润新知