jsp内置对象

这几天整理项目资料,发现好多东西都快忘记了,因此打算从头整理一下,对于jsp的内置对象,文章很多 ,可是写的都有点不太好理解,因此打算自己写点东西。

首先 jsp的内置对象一共有9个: request对象,response对象,pageContext对象,session对象,application对象,out对象,config对象,page对象,exception对象

特点 :对于它们而言,不用声明就可以直接使用.

1:request对象

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

返回接收请求的端口
getServerPort
返回接收请求的服务器的主机名
getServerName
返回发出请求的 URL 的机制
getScheme
返回发送请求的接口程序的完全限定的主机名
getRemoteHost
返回发送请求的接口程序的 IP 地址
getRemoteAddr
返回运用替换规则从虚拟地址中获得的实际地址
getRealPath
返回从请求体中读取的文本的缓存数据
getReader
返回请求的协议和版本号
getProtocol
返回作为字符串列举的指定参数的值
getParameterValues
返回本次请求的参数名字
getParameterName
返回包含指定参数的单独值的字符串
getParameter
返回在请求体中读取二进制数据的输入流
getlnputStream
返回请求实体数据的 InternetMedia 类型
getContenType
返回请求实体数据的大小
getContentLength
返回为请求的输入进行编码的字符集合
getCharacterEncoding
设置为请求的输入进行编码的字符集合
setCharacterEncoding
返回请求的给出名字的属性的值
getAttribute
设置请求的给出名字的属性的值
setAttribute

request对象使用,和主要应用
1. request对象获取服务器及客户端的信息
就是上面列举的那些get.....方法,这些方法主要为了获取客户端的信息
此外他还可以用来设置一些页面的构建所需要的一些属性的设置
2. 用request对象来获取和处理表单传过来的参数值,具体操作步骤如下
(1) 建立HTML表单 (FORM)
(2) 使用GET和POST方法
如:<FORM METHOD="POST" NAME="FRM" ACTION="<%= urlRoot %>">
(3) 用request对象处理
用户输入的页面控件的数据用来存放在request对象里,用javax.servlet.HttpServletRequest来执行,你可以在JSP代码中直接访问request对象.并且用getParameterName方法来获取表单传送过来的数据.
3. 用request对象来存放和获取非表单数据 ,具体步骤如下:
(1)在前页设置存放数据(健值对的方式)setAttribute('KEY','VALUE')
(1)在request作用范围取数据getAttribute('KEY')

1:response对象

response对象的类型是javax.servlet.ServletResponse类的实例,JSP引擎会根据客户端的请求信息建立一个默认的response对象.它用于将浏览器参考信息,如回应的Header,回应本体(HTML的内容)以及服务器端的状态码等信息提供给客户端.
如果说从客户端获取信息request为正方向的话,那么response就是反方向
response对象的方法
重定向客户端的地址
sendRedirect
设定指定名字的HTTP文件头的值
setHeader
向客户端发送错误信息
sendError
判断指定的HTTP文件头是否存在
containsHeader
添加HTTP文件头(Header),将会传送到客户端
addHeader
添加一个Cookie对象,用来保存客户端的用户信息
addCookie
为应答设置内容类型
setContentType
为应答设置内容长度
setContentLength
返回用于格式化文本应答的打印程序
getWriter
返回用于书写二进制应答数据的输出流
getCharacterEncoding
返回用于MIME编码的字符集合
getCharacterEncoding
用于在页面中输出内容 向对应的是End
write
response对象使用,和主要应用
这个对象没有什么太多的东西,主要用于返回客户端信息,如设置cookie 向客户端写数据等工作

3 session对象

终于说到了session对象,这个对象是我个人觉得最重要的一个对象,这个对象如果处理不好,可能会导致服务器端的压力增大,这并不是说别的对象不重要,而是这个对象关系到全局,应用比较广泛,所以才说他重要。在web服务中我们使用它来保存某个特定客户端(访问者)一次访问的一些特定信息.在JSP网络编程中,有多种方法可以保存客户信息,但是最常用,最实用的还是session对象,际上就是服务器与客户端之间的"会话",他在客户端第一次访问的时候创建,对于什么时候过期,我们可以手动设置它过期,也可以在web.xml中配置它的过期时间来实现。
(1) session可以用来储存访问者的一些特定信息.主机服务器就是根据session来跟踪这些信息的.
(2) session可以创建访问者信息容器.
(3) session可以用来跟踪访问者的访问路径,从中挖掘有用的信息,如访问者的兴趣爱好,访问目的.
用户在Web应用程序中访问同一页面时,session变量始终存在,当用户在应用程序的页之间跳转时,存储在session对象中的变量也不会清除,当然也可以使用session方法显式地结束一个会话和设置空闲会话的超时期限.

session对象的类为HttpSession,它提供了很多使用的方法.
session对象的类是HttpSession.HttpSession由服务器的程序实现,提供HTTP服务器和HTTP客户端之间的会话.会话,就是在给定时间段内持续进行多路连接和请求.会话被用来在多页面请求中保持状态和用户认证.
session对象的常用方法
移去和会话应用层数据中指定名字相连的对象
removeValue
将指定的对象和使用指定名字的会话应用层数据相连
putValue
检查是否客户端参加了会话
isNew
使会话无效,并将其从上下文中移出
invalidate
返回和会话相连的应用层数据对象的名字
getValueNames
返回和应用层数据中指定名字相联系的对象
getValue
返回会话相连的上下文
getSessionContext
返回客户端上一次发送携带会话账号的时间
getLastAccessTime
返回会话标识符
getId
返回会话创建的时间
getCreationTime
session的主要作用有两个
使用session对象在不同的JSP文件(整个客户会话过程中)中保存信息
1.保存会话的一些重要的信息,比如用户名,验证信息
2.实现网上商店的购物车的信息存储。等

4 application对象
application对象保存了一个应用系统中一些公用的数据.与session对象相比,application对象是所有客户共享的,而session对象则是每个客户专用的.application对象可以是javax.servlet.ServletContext类型的.ServletContext接口让servlet访问关于其环境的信息.application对象的范围是application.即整个应用服务,从服务器启动到关闭是他的作用周期。
application对象的方法

设置某个application对象的某个属性值
setAttribute
获得当前版本的Servlet编译器的信息
getServerInfo
返回application某个属性的值
getInitParameter
以Enumeration数据形式返回所有application对象的属性名称
getAttributeNames
以Object对象的形式返回对应名称的application对象的属性值
getAttribute

application对象的使用
(1)一个使用了application对象的计数器
(2)应用application内建对象,同于session存储公共信息(一般没这么干的 呵呵)


5.pageContext对象

pageContext对象是javax.servlet.jsp.PageContext类的一个实例,pageContext对象提供了存取所有关于JSP程序执行时所需要用到的属性和方法,如session,application,config,out等对象属性,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本 类名也叫pageContext。

方法
返回当前客户端响应被使用的JspWriter流(out)
JspWriter getOut()
返回当前页中的HttpSession对象(session)
HttpSession getSession()
返回当前页的Object对象(page)
Object getPage()
返回当前页的ServletRequest对象(request)
ServletRequest getRequest()
返回当前页的ServletResponse对象(response)
ServletResponse getResponse()
返回当前页的Exception对象(exception)
Exception getException()
返回当前页的ServletConfig对象(config)
ServletConfig getServletConfig()
返回当前页的ServletContext对象(application)
ServletContext getServletContext()
设置属性及属性值
void setAttribute(String name,Object attribute)
在指定范围内设置属性及属性值
void setAttribute(String name,Object obj,int scope)
取属性的值
public Object getAttribute(String name)
在指定范围内取属性的值
Object getAttribute(String name,int scope)
寻找一属性,返回起属性值或NULL
public Object findAttribute(String name)
删除某属性
void removeAttribute(String name)
在指定范围删除某属性
void removeAttribute(String name,int scope)
返回某属性的作用范围
int getAttributeScope(String name)
返回指定范围内可用的属性名枚举
Enumeration getAttributeNamesInScope(int scope)
释放pageContext所占用的资源
void release()
使当前页面重导到另一页面
void forward(String relativeUrlPath)
在当前位置包含另一文件
void include(String relativeUrlPath)

他的主要作用,它的主要功能在提供一个单一个介面,以管理各种的公开对象(像是 HttpSession、ServletContext、ServletConfig、ServletRequest、ServletResponse等等),提供一个单一的API来管理对象和属性。

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

Out对象的方法

打印一个对象
参数Object
print
打印一个长整数
参数long
print
打印一个整数
参数int
print
打印一个浮点数
参数float
print
打印一个双精度浮点数
参数double
print
打印一个字符数组
参数char[]
print
打印一个字符
参数char
print
打印一个布尔值
参数boolean
print
写一行分隔符
newLine
获得autoFlush的当前值
isAutoFlush
获得缓冲区中未使用的字节数
getRemaining
获得缓冲区的大小
getBufferSize
清除缓冲区的流
clearBuffer
清除缓冲区内容
Clear
输出流
flush
关闭流,并输出
Close
打印一个字符串,然后结束行
参数String
println
打印一个对象,然后结束行
参数Object
println
打印一个长整数,然后结束行
参数long
println
打印一个整数,然后结束行
参数int
println
打印一个浮点数,然后结束行
参数float
println
打印一个双精度浮点数,然后结束行
参数double
println
打印一个字符数组,然后结束行
参数char[]
println
打印一个字符,然后结束行
参数char
prinfln
打印一个布尔值,然后结束行
参数boolean
println
通过写一个行分隔符来结束当前行
println
打印一个字符串
参数String
print
主要作用就是用out对象输出多种不同类型的数据,包括输出中文

7 page对象
page对象是java.lang.Object类型的,它是处理当前请求的JSP页的实现类的实例.page对象在页的正文中可以被看作"this"的同义词.page对象的范围是本页.

8.config对象
config对象是javax.servlet.ServletConfig类型的.它提供存取servlet class初始参数及有关Server环境信息的ServletContext对象.config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象) ,config对象的范围是本页.
方法
返回含有服务器相关信息的ServletContext对象
ServletContext getServletContext()
返回初始化参数的值
String getInitParameter(String name)
返回Servlet初始化所需所有参数的枚举
Enumeration getInitParameterNames()

9 exception对象
exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。他实际上是java.lang.Throwable的对象

方法
返回描述异常的消息
String getMessage()
返回关于异常的简短描述消息
String toString()
显示异常及其栈轨迹
void printStackTrace()
重写异常的执行栈轨迹
Throwable FillInStackTrace()

*******************************************************
如上 我们对这9大内置对象作了大概的描述,他们都有其作用范围
pageContext所设定的属性物件,其共用范围限於同一个 JSP页面,使用request所设定的属性物件,其在同一个request处理期间可以共用(包括forward给其它JSP页面,即前后页),session物件所设定的属性物件则限於同一个进程作用期间可以共用,而application物件所设定的属性,则在整个Web应用程式中的JSP页面都可以共用。

既然已经内置了,那么我们在用他们的时候就不需要麻烦去创建他们了,我们只需要怎么去合理的用他们,对于他们的具体一切使用的实际操作,光是上面所说的还是不够的,具体的实现我会在以后的章节《jsp内置对象使用里》表述,希望能对大家有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值