zoukankan      html  css  js  c++  java
  • 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聊天室,用户的聊天数据,这个数据不仅用户等一会儿自己要看,还要给别人看。

     
          
     
  • 相关阅读:
    SharePoint 2010 User Profile Sync Service自动停止
    如何区别多个svchost.exe?
    Log Parser分析IIS log的一个简单例子
    Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.
    Windows中右键点击文件夹, 结果找不到共享选项卡, 怎么办?
    介绍SOS中的SaveModule命令
    SharePoint中Draft版本的文档不会收到document added的Alert Email
    和我一起学Windows Workflow Foundation(1)创建和调试一个WF实例
    门户网站
    C#基础—— check、lock、using语句归纳
  • 原文地址:https://www.cnblogs.com/hacket/p/2960613.html
Copyright © 2011-2022 走看看