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

JSP中的九大内置对象是指Out、Request、Response、Config、Page、PageContext、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.1page范围

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

3.2request范围

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

3.3session范围

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

3.4application范围

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

3.5移除属性

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

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

4.1Out对象:

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:
  类型为protectedbooleanautoflush
  如果变量值为真,则当当前的操作造成缓冲区溢出时,缓冲区会被清空。
  如果变量值为假,则如果当前操作造成缓冲区溢出就会抛出一个IOException
bufferSize:
  类型为protectedintbufferSize
  表示缓冲区目前的大小。初始值根据不同的设备而不同,但是不少于8KB
DEFAULT_BUFFER:
  类型为publicstaticfinalintDEFAULT_BUFFER
  表示Writer正使用的缺省的缓冲区大小设置。
No_BUFFER:
  类型为PublicstaticfinalintNO_BUFFER
  表示Writer是否处于缓存输出状态。

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

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

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

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

4.2Request对象:

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

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

4.3Response对象:

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.4Config对象:

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

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

4.5Page对象:

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

4.6PageContext对象:

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

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

4.7Session对象:

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.8Exception对象:

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

4.9Application对象:

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

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

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

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值