欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

jsp之四大域对象与九大内置对象学习讲解

程序员文章站 2022-05-29 12:56:24
1、什么是内置对象 在开发中会频繁使用到一些对象,如servletcontext、httpsession、pagecontext等.如果每次我们在jsp页面中需要使用这些对象都要自己亲自动手创建就会...

1、什么是内置对象

在开发中会频繁使用到一些对象,如servletcontext、httpsession、pagecontext等.如果每次我们在jsp页面中需要使用这些对象都要自己亲自动手创建就会特别的繁琐.sun公司因此在设计jsp时,在jsp页面加载完毕之后自动帮开发者创建好了这些对象,开发者只需要使用相应的对象调用相应的方法即可.这些创建好的对象就叫做内置对象.

在servlet程序中,如果开发者希望使用session对象,必须通过request.getsession()来得到session对象;而在jsp程序中,开发中可直接使用session(系统帮我们创建好的session对象的名字就叫session)调用相应的方法即可,如:session.getid().

jsp有九个内置对象(又叫隐含对象),不需要预先声明就可以在脚本代码和表达式中随意使用。

2、九大内置对象?

1)、jsp九大内置对象分为四类:

输入输出对象:out对象、response对象、request对象

通信控制对象:pagecontext对象、session对象、application对象

servlet对象:page对象、config对象

错误处理对象:exception对象

2)、九种对象简介:

out对象:用于向客户端、输出数据。

request对象:封装了来自客户端、浏览器的各种信息。

response对象:封装了服务器的响应信息。

exception对象:封装了jsp程序执行过程中发生的异常和错误信息。

config对象:封装了应用程序的配置信息。

page对象:指向了当前jsp程序本身。

session对象:用来保存会话信息。也就是说,可以实现在同一用户的不同请求之间共享数

application对象:代表了当前应用程序的上下文。可以在不同的用户之间共享信息。

pagecontext对象:提供了对jsp页面所有对象以及命名空间的访问。

3、内置对象解析:

1)、out对象

out对象是一个输出流,用来向浏览器输出信息,除了输出各种信息外还负责对缓冲区进行管理。

out对象方法介绍:

方法名

说明

print或println

输出数据

newline

输出换行字符

flush

输出缓冲区数据

close

关闭输出流

clear

清除缓冲区中数据,但不输出到客户端

clearbuffer

清除缓冲区中数据,输出到客户端

getbuffersize

获得缓冲区大小

getremaining

获得缓冲区中没有被占用的空间

isautoflush

是否为自动输出

 

2)request对象

request对象封装了从客户端到服务器发出的请求信息。

request对象方法介绍:

方法名

说明

isuserinrole

判断认证后的用户是否属于某一成员组

getattribute

获取指定属性的值,如该属性值不存在返回null

getattributenames

获取所有属性名的集合

getcookies

获取所有cookie对象

getcharacterencoding

获取请求的字符编码方式

getcontentlength

返回请求正文的长度,如不确定返回-1

getheader

获取指定名字报头值

getheaders

获取指定名字报头的所有值,一个枚举

getheadernames

获取所有报头的名字,一个枚举

getinputstream

返回请求输入流,获取请求中的数据

getmethod

获取客户端向服务器端传送数据的方法

getparameter

获取指定名字参数值

getparameternames

获取所有参数的名字,一个枚举

getparametervalues

获取指定名字参数的所有值

getprotocol

获取客户端向服务器端传送数据的协议名称

getquerystring

获取以get方法向服务器传送的查询字符串

getrequesturi

获取发出请求字符串的客户端地址

getremoteaddr

获取客户端的ip地址

getremotehost

获取客户端的名字

getsession

获取和请求相关的会话

getservername

获取服务器的名字

getserverpath

获取客户端请求文件的路径

getserverport

获取服务器的端口号

removeattribute

删除请求中的一个属性

setattribute

设置指定名字参数值

3)、response对象

response对象主要用于对客户端的请求进行回应。
以及处理http的连接信息,例如设置http文件头,设置cookie对象等。

response对象方法:

方法名

说明

addcookie

添加一个cookie对象

addheader

添加http文件指定名字头信息

containsheader

判断指定名字http文件头信息是否存在

encodeurl

使用sessionid封装url

flushbuffer

强制把当前缓冲区内容发送到客户端

getbuffersize

返回缓冲区大小

getoutputstream

返回到客户端的输出流对象

senderror

向客户端发送错误信息

sendredirect

把响应发送到另一个位置进行处理

setcontenttype

设置响应的mime类型

setheader

设置指定名字的http文件头信息

4)、session对象

session对象:是一个jsp内置对象,它在第一个jsp被装载时自动创建,完成会话期管理。从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束(或者超时),被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个客户,就需要创建session对象。

http是无状态的连接协议,需要使用session来存放用户每次的登陆信息

session对象方法:

方法名

说明

getattribute

获取指定名字的属性

getattributenames

获取session中全部属性名字,一个枚举

getcreationtime

返回session的创建时间

getid

获取会话标识符

getlastaccessedtime

返回最后发送请求的时间

getmaxinactiveinterval

返回session对象的生存时间单位千分之一秒

invalidate

销毁session对象

isnew

每个请求是否会产生新的session对象

removeattribute

删除指定名字的属性

setattribute

设定指定名字的属性值

 

5)、application对象

application对象代表当前的应用程序。存在于服务器的内存空间中。
应用一旦启动便会自动生成一个application对象。如果应用没有被关闭,
此application对象便一直会存在。直到应用被关闭
application的生命周期比session更长。
应用:
为多个用户共享全局信息。比如当前的在线人数等。

application对象方法:

方法名

说明

getattribute

获取应用对象中指定名字的属性值

getattributenames

获取应用对象中所有属性的名字,一个枚举

getinitparameter

返回应用对象中指定名字的初始参数值

getservletinfo

返回servlet编译器中当前版本信息

setattribute

设置应用对象中指定名字的属性值

 

6)、config对象

config对象表示当前jsp程序的配置信息
一般项目中,jsp被用作模版技术,也就是位于表示层
而位于表示层的jsp文件一般是不需要配置信息的
所以此对象在jsp程序中其实很少使用
config对象是servletconfig类的一个实例。

config对象方法:

方法名

说明

getservletcontext

返回所执行的servlet的环境对象

getservletname

返回所执行的servlet的名字

getinitparameter

返回指定名字的初始参数值

getinitparameternames

返回该jsp中所有的初始参数名,一个枚举

7)、page对象

page对象有点类似与java中的this指针,他指向了当前jsp页面本身。
page对象是java.lang.object类的一个实例

page对象的方法:

方法名

说明

tostring

将当前项目的信息打印出来

getclass

返回当前的object类

hashcode

返回page对象的hashcode值

equals

用于比较对象是否与当前对象相同

8)、exception对象

exception对象表示jsp引擎在执行代码时抛出的异常
如果想要使用exception对象,那么需要配置编译指令的iserrorpage属性为true

即在页面指令中设置:<%@pageiserrorpage=“true”%>

9)、pagecontext对象

pagecontetx对象是jsp页面中所有对象功能的最大集成着。
使用他可以访问所有的jsp内置对象。

pagecontext对象方法:

方法名

说明

forward

重定向到另一页面或servlet

getattribute

获取某范围中指定名字的属性值

findattribute

按范围搜索指定名字的属性

removeattribute

删除某范围中指定名字的属性

setattribute

设定某范围中指定名字的属性值

getexception

返回当前异常对象

getrequest

返回当前请求对象

getresponse

返回当前响应对象

getservletconfig

返回当前页面的servletconfig对象

getservletcontext

返回所有页面共享的servletcontext对象

getsession

返回当前页面的会话对象


 

4、jsp中四大域对象

1)分类:

servletcontextcontext域

httpservletrequetrequest域

httpsessionsession域--前三种在学习servlet时就能接触到

pagecontextpage域--jsp学习的

域对象的作用:保存数据,获取数据,共享数据.

2)、保存数据:

pagecontext.setattribute("内容");//默认保存到page域

pagecontext.setattribute("内容",域范围常量);//保存到指定域中

四个域常量:

pagecontext.page_scope

pagecontext.request_scope

pagecontext..session_scope

pagecontext.application_scope

3)、获取数据:

pagecontext.getattribute("内容");

pagecontext.getattribute("name",域范围常量);

自动在四个域中搜索数据pagecontext.findattribute("内容");

在四个域中自动搜索数据,顺序:page域->request域->session域->application域(context域)

4)、域作用范围:

page域:只能在当前jsp页面使用(当前页面)

request域:只能在同一个请求中使用(转发)

session域:只能在同一个会话(session对象)中使用(私有的)

context域:只能在同一个web应用中使用(全局的)