实习总结(四)---JSP九大内置对象

        JSP中的九大内置对象是指Out、Request 、Response、Config 、PagePageContext、Session、Exception、Application。

一.目的:

      1熟练使用JSP内置对象保存属性。

      2熟练JSP属性保存的四个范围。

      3熟练使用request对象取得参数值。

      4了解其他各对象的常用方法。

二.分类:

       根据各对象的作用不同,可以将这九个对象分为如下四类。

       第一类:与Servlet有关的内置对象。

                     包括pageconfig两个对象。

       第二类:与Input/Output有关的内置对象

                     包括outrequestresponse三个对象。

       第三类:与Context有关的内置对象

                     包括sessionapplicationpageContext三个对象。

       第四类:与Error有关的内置对象。

                     仅包括exception这一个对象。

三.  属性保存范围

      在JSP中可以通过setAttribute()getAttribute()这两个方法来设置和取得属性,从而实现数据的共享。同样JSP中提供了四种属性保存范围,分别为pagerequestsession以及application

  3.1  page范围

      所谓page范围,就是指设置的属性只在当前页面有效。通过使用pageContextsetAttribute()方法来设置属性,并通过pageContextgetAttribute()方法来取得属性。

  3.2  request范围

      所谓request范围,就是指属性在一次请求范围内有效。如果页面从一个页面跳转到另一个页面,那么该属性就失效了。这里所指的跳转是指客户端跳转,比如客户单击超链接跳转到其他页面,或者通过浏览器地址栏浏览其他网页。如果使用服务器端跳转<jsp:forward>,则该属性仍然有效。通过使用requestsetAttribute()方法来设置属性,并通过requestgetAttribute()方法来取得属性。

  3.3  session范围

     所谓session范围,也就是指客户浏览器与服务器一次会话范围内,如果和服务器断开连接,那么这个属性也就失效了。通过使用sessionsetAttribute()方法来设置属性,并通过sessiongetAttribute()方法来取得属性。

  3.4  application范围

     所谓application范围,也就是指在整个服务器范围,直到服务器停止以后才会失效。通过使用applicationsetAttribute()方法来设置属性,并通过applicationgetAttribute()方法来取得属性。

  3.5  移除属性

     只需调用相应对象的removeAttribute()方法就可以移除指定属性。

四.  下面对这九大对象一一讲解:

  4.1  Out对象:

       out对象用来向网页输出信息。该对象主要是向客户端发送各种格式的数据,而且该对象以对服务器上的输入缓冲区进行管理。

       out对象用于输出数据,它可以是javax.servlet.jsp.JspWriter的一个实例。out对象的范围是page
  从java.io.Writer拓展而来的公共抽象类JspWriter效仿了java.io.BufferedWriterjava.Io.PrintWriter中的某些功能。但是,不同之处在于它会在打印方法中抛出(throw) java.Io.IOException异常,而PrintWriter不这样做。
  JSP中的out对象就是这种类型的。如果page指令选择了autoflush="true",那么当出现由于当前的操作不清空缓存而造成缓冲区溢出的情况时,这个类的所有I/O操作会自动清空缓冲区的内容。如果autoflush="false",那么当操作造成了缓冲区溢出时,这个类的所有的I/O操作将抛出一个IOException

autoFlush
  类型为protected boolean autoflush
  如果变量值为真,则当当前的操作造成缓冲区溢出时,缓冲区会被清空。
  如果变量值为假,则如果当前操作造成缓冲区溢出就会抛出一个IOException
bufferSize
  类型为protectedintbufferSize
  表示缓冲区目前的大小。初始值根据不同的设备而不同,但是不少于8KB
DEFAULT_BUFFER
  类型为publicstaticfinalintDEFAULT_BUFFER
  表示Writer正使用的缺省的缓冲区大小设置。
No_BUFFER: 
  类型为Public static final int NO_BUFFER
  表示Writer是否处于缓存输出状态。

    4.1.1  使用out对象进行页面输出

       通过out对象的print()方法和println()方法进行页面输出,不同的println()方法输出完成后,会在字符串后面添加换行标记。

    4.1.2  使用out对象求得缓冲区使用大小

      通过out对象的getBufferSize ()方法可以获得缓冲区的大小,而通过getRemaining()方法可以获得缓冲区剩余大小。通过这两个值可以很容易地求得缓冲区使用大小。

  4.2  Request对象:

      request对象是ServletRequest的一个实例。当客户端请求一个JSP网页时,JSP引擎会将客户端的请求信息包装在这个request对象中,请求信息的内容包括请求的标题头(Header)、信息(如浏览器的版本信息、语言和编码方式等),请求的方式(HTTP方法:GETPOSTPUT),请求的参数名称、参数值和客户端的主机名称等,然后将request对象当作jspService方法的HttpServletRequest参数值,所以我们可以通过这个对象来取得有关客户端的请求信息。

request对象不但可以用来设置和取得request范围变量,还可以用来获得客户端请求参数、请求的来源、表头、cookies等。该对象封装了用户的提交信息,可以通过调用该对象的相应的方法来获取到用户的提交信息。

  4.3  Response对象:

       response对象的类型是javax.servlet.ServletResponse类的实例,JSP引擎会根据客户端的请求信息建立一个默认的response对象。它用于将浏览器参考信息,如回应的Header、回应本体(HTML的内容)以及服务器端的状态码等信息提供给客户端。

      response对象用来给客户端传送输出信息。可以对用户的请求作出相应,并向客户端发送数据。可以通过Response对象来添加新的Cookie或者数据标记,或者是改变页面的MIME内容类型。 

    4.3.1  实现页面跳转

       可以通过response对象的sendRedirect()方法设置页面重定向,从而实现页面跳转。这种跳转将改变浏览器地址栏信息,所以也称为客户端跳转。

    4.3.2  实现页面自动刷新

       可以通过response对象的addIntHeader()方法添加一个标题为Refresh的标头,并指定刷新间隔时间,从而实现页面自动刷新。

    4.3.3  实现页面自动跳转

      可以通过response对象的addHeader()方法添加一个标题为Refresh的标头,并指定页面跳转时间及跳转页面,从而实现页面自动跳转。

  4.4  Config对象:

      config对象是javax.servlet.ServletConfig类型的。它提供存取servlet class初始参数及有关Server环境信息的ServletContext对象。config对象的范围是page。 

      config对象可以用来获得Servlet的配置信息,该对象允许JSP开发人员访问Servlet或者是JSP引擎的初始化参数,这样就可以获取例如路径或文件位置的全局信息。 

  4.5  Page对象:

      page对象是java.lang.Object类型的,它是处理当前请求的JSP页的实现类的实例。page对象在页的正文中可以被看作“this”的同义词。page对象的范围是pagepage对象代表JSP转译后的Servlet,通过page对象可以非常方便地调用Servlet类中定义的方法。

  4.6  PageContext对象:

      pageContext对象是javax.servlet.jsp.PageContext类的一个实例。pageContext对象提供了存取所有关于JSP程序执行时所需要用到的属性和方法,如sessionapplicationconfigout等对象属性。对于pageContext对象,它的范围是page

     pageContext对象不但可以用来设置page范围的属性,同样也可以用来设置其他范围属性,不过需要指定范围参数。通过pageContext对象还可以获得其他内置对象。

  4.7  Session对象:

       session对象是JSP中一个很重要的内部对象,我们使用它来保存某个特定客户端(访问者)一次访问的一些特定信息。在JSP网络编程中,有多种方法可以保存客户信息,但是最常用、最实用的还是session对象。 session对象用来表示用户的会话状况,一般用于保存用户的各种信息,直到生命周期超时或者被认为释放掉为止。当加载第一个JSP页面的时候会自动创建一个Session对象,在此期间完成会话的管理。

session对象,实际上就是服务器与客户端之间的会话
  (1) session可以用来储存访问者的一些特定信息。主机服务器就是根据session来跟踪这些信息的。
  (2) session可以创建访问者信息容器。
  (3) session可以用来跟踪访问者的访问路径,从中挖掘有用的信息,如访问者的兴趣爱好、访问目的。

       session对象的类是HttpSessionHttpSession由服务器的程序实现,提供HTTP服务器和HTTP客户端之间的会话。会话,就是在给定时间段内持续进行多路连接和请求。会话被用来在多页面请求中保持状态和用户认证。
  用户在Web应用程序中访问同一页面时,session变量始终存在,当用户在应用程序的页之间跳转时,存储在session对象中的变量也不会清除,当然也可以使用session方法显式地结束一个会话和设置空闲会话的超时期限。  

   4.7.1  设置并获得session生命周期

       通过session对象的setMaxInactiveInterval()方法可以设置session的生命周期,可以通过其getMaxInactiveInterval()方法来获得session的生命周期。

   4.7.2  获得session的其他信息

     通过调用session对象的其他方法可以获得与session相关的更多信息,如sessionIDsession的生成时间等。

  4.8  Exception对象:

     exception对象用来处理错误异常,如果要使用exception对象,必须指定page中的isErrorPage属性值为“true”。通常在JSP开发中需要在页面中加入page指令的errorPage属性来将其指向一个专门处理错误的页面。

  4.9  Application对象:

     application对象保存了一个应用系统中一些公用的数据。与session对象相比,application对象是所有客户共享的,而session对象则是每个客户专用的。application对象可以是javax.servlet.ServletContext类型的。ServletContext接口让servlet访问关于其环境的信息。

      application对象用来取得和设置Servlet的相关信息。application对象的生命周期是从服务器启动产生直到服务器关闭为止,在此期间所有的用户会共享这一个Application对象。该对象只可以由服务器来创建和清除,而用户不可以对其进行创建和清除操作。   

   4.9.1  通过application对象获得服务器版本

       通过application对象的getMajorVersion()方法和getMinorVersion()方法,可以很方便地获得主要的Servlet API版本和次要的Servlet API版本。同时通过其getServerInfo()方法,可以获得服务器版本。

   4.9.2  通过application对象获得其他信息

       通过调用application对象的其他方法可以获得更多信息,如文件的MIME类型、获得指定LocalApplication context等。

    

 

你可能感兴趣的:(exception,jsp,session,servlet,服务器,application)