JSP九大内置对象

在JSP页面脚本(Java程序片和Java表达式)中有一组常见的、不需要在使用之前创建和事先声明的成员变量,就是内置对象。

JSP有九大内置对象,分别作用于四个域。

通过内置对象的作用范围也就是四个域来分别介绍九大内置对象。
他们按照作用范围的大小大致可分为:page域<request域<session域<application域。

1 page域

page域中的变量的作用范围只在当前页面。例如在当前页面中将对于page域中的变量的引用请求发送给客户端,在响应返回给客户端时,page域中的对象将被释放;或当页面发生跳转时,当前页面的page域中的对象也会被释放。换句话说,page域中的对象只作用在当前的页面中,离开此页面page域中的对象也就跟着消失了。

作用在page域的内置对象
①page对象:代表JSP页面本身,是this引用的一个代名词。

②config对象:ServletConfig类的一个对象,存放着一些servlet初始化信息。

常用方法说明
getInitParameter(name)取得指定名字的Servlet初始化参数值
getInitParameterNames()取得Servlet初始化参数列表,返回一个枚举实例
getServletContext()取得Servlet上下文
getServletName()取得生成的Servlet的名字

③out对象:JSP页面的主要目的是动态产生客户端需要的HTML结果,如可以通过out.print()来输出结果。out对象还提供了一些其他的方法来控制管理输出缓冲区(out.getBufferSize())和输出流(out.getRemaining())。

④response对象:用于将服务器端数据发送到客户端,通过在客户端浏览器显示、用户浏览页面的重定向以及客户端创建Cookies等实现。

主要方法说明
addHearder(String name,String value)添加HTTP头文件,该头文件将会传到客户端(若存在同名头文件,则直接覆盖)
setHeader(String name,String value)设定指定名字的HTTP文件头的值 (若该值存在,将被新值覆盖)
containsHeader(String name)判断指定名字的HTTP文件头是否存在,并返回布尔值
flushBuffer()强制将当前缓冲区的内容发送到客户端
addCookie(Cookie cookie)将添加一个Cookie对象,用来保存客户端的用户信息
sendError(int sc)向客户端发送错误信息
setRedirect(url)把响应发送到另一个指定的页面(URL)进行处理

*[布尔值]:“真” True 或"假" False 中的一个。

⑤pageContext对象:pageContext类的一个实例,提供对几种页面属性的访问,并且允许向其他应用组件转发request对象,或者其他应用组件包含request对象。

主要方法说明
getAttribute()返回与指定范围内名称有关的变量或null
forward(String relativeurl Path)把页面重定向到另一个页面或Servlet组件上
findAttribute()按照页面请求、会话及应用程序范围的顺序实现对某个已经命名属性的搜索
getException()返回当前的exception对象
setAttribute()设置默认页面的范围或指定范围中的已命名对象
removeAttribute()删除默认页面范围或指定范围中已命名的对象

⑥exception对象:用来处理JSP文件在执行是所发生的错误和异常。可以配合page指令一起使用,通过指定某一页面为错误处理页面,把所有的错误都集中到那个页面去处理(必须在isErrorPage=true的情况下才可以使用expection对象)。

主要方法说明
getMessage()返回错误信息
printStackTrace()以标准错误的形式输出一个错误和错误堆栈
toString()以字符串的形式返回一个对异常的描述

2 request域

request域代表变量只能在一次请求中生效,request域中的变量可以存在于forward请求跳转的前后两个页面中,但是进行页面刷新后就不存在了。但是一次请求不代表只跳转了一个页面,也可跳转多个页面。request域中的变量作用在从http请求发起,到服务器处理结束,这发出请求、返回响应的整个过程中。当这个请求周期结束运行,request域中的变量就失效了。

作用在request域的内置对象
request对象:对在用户请求中给出的信息进行访问,包含了所有有关当前浏览器请求的信息。

主要方法说明
getParameter(String name)以字符串的形式返回客户端的某一个请求参数的值,该参数由name指定
getParameterValue(String name)以字符串数组的形式返回指定参数所有值
getParameterNames()返回客户端传送给服务器端的所有的参数名,结果集是一个Enumeration(枚举)类的实例
getAttribute(String name)返回name指定的属性值
setAttribute(String name,java.lang.Object obj)设置名字为name的request参数的值为obj
getCookies()返回客户端的Cookie对象,结果是一个Cookie数组
getHeader(String name)获得HTTP协议定义的传送文件头信息
getDateHeader()返回一个Long类型的数据,表示客户端发送到服务器的头信息中的时间信息
getHeaderName()返回所有request Header的名字,结果集是一个Enumeration(枚举)类的实例
getServletPort()获得服务器的端口号
getServletName()获得服务器的名称
getRemoteAddr()获得客户端IP地址
getRemoteHost()获得客户端的主机名
getProtocol()获得客户端向服务器端传送数据所依据的协议名称
getMethod()获得客户端向服务器端传送数据的方法
getServletPath()获得客户端所请求的脚本文件的文件路径
getCharacterEncoding()获得请求中的字符编码方式
getSession(Boolean create)返回和当前客户端请求相关联的HttpSession对象
getQuertString()返回查询字符串,该字符串由客户端以get方法向服务器端传送
getRequestURI()获得发出请求字符串的客户端地址
getContentType()获取客户端请求的MIME类型

3 session域

session域中的变量只能在一次会话周期中生效,就是指从用户打开浏览器开始,到用户关闭浏览器的整个过程。这个过程可能包含多个请求响应,只要用户不关浏览器,那么就始终在一个会话中,session域中的变量就会一直生效,但是只在当前的会话中生效。

作用在session域的内置对象
session对象:一种服务器单独处理和记录用户端使用者信息的技术。当用户与服务器联机是,服务器会给每个用户一个唯一的session,服务器端通过这些session的信息来判断用户的信息,以提供独特的服务。

主要方法说明
getAttribute(String name)获得指定名字的属性。
getAttributeNames()返回session对象存储的每一个属性对象,结果集是一个Enumeration类的实例
getCreationTime()返回session对象被创建的时间,单位为毫秒
getId()返回session对象在服务器端的编号
getLastAccessedTime()返回当前session对象最后一次被操作的时间,单位为毫秒
getMaxInactiveInterval()获取session对象的生存时间,单位为秒
setMaxInactiveInterval(int interval)设置session对象的有效时间(超时时间),单位为秒
removeAttribute(String name)删除指定属性的属性名和属性值
setAttribute(String name,Java.lang.Object value)设定指定名字的属性,并把它存储在session对象中
invalidate()注销当前的session对象

4 Application域

Application域的范围是最大的,能在同一个web应用(一个应用存在多个会话)中使用,从应用启动到应用结束,Application域中的变量始终存在,如果不删除就可以一直使用。

作用在Application域的内置对象
application对象:为多个应用程序保存信息,所有用户都共同使用一个application对象。在JSP服务器运行时刻,仅有一个application对象,它由服务器创建,也由服务器自动清除,不能被用户创建和删除。

主要方法说明
getAttribute(String name)返回有name指定的名字application对象的属性值
getAttributeName()返回所有application对象属性的名字,结果集是一个Enumeration类型的实例
getInitParameter(String name)返回由name指定名字的application对象的某个属性的初始值
getServerInfo()返回Servlet编辑器当前版本信息
setAttribute(String name,Object obj)将参数Object指定的对象obj添加到application对象中,并为添加的对象指定的一个属性
removeAttribute(String name)删除一个指定的属性
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值