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

JSP内置对象--学习笔记

程序员文章站 2022-07-03 20:08:07
...

内置对象名称

所 属 类 型

有效范围

说    明

application

javax.servlet.ServletContext

application

该对象代表应用程序上下文,它允许JSP页面与包括

在同一应用程序中的任何Web组件共享信息

config

javax.servlet.ServletConfig

page

该对象允许将初始化数据传递给一个JSP页面

exception

java.lang.Throwable

page

该对象含有只能由指定的JSP“错误处理页面”访问的

异常数据

out

javax.servlet.jsp.JspWriter

page

该对象提供对输出流的访问

page

javax.servlet.jsp.HttpJspPage

page

该对象代表JSP页面对应的Servlet类实例

pageContext

javax.servlet.jsp.PageContext

page

该对象是JSP页面本身的上下文,它提供了唯一一组

方法来管理具有不同作用域的属性,这些API在实现

JSP自定义标签处理程序时非常有用

request

javax.servlet.http.HttpServletRequest

request

该对象提供对HTTP请求数据的访问,同时还提供用

于加入特定请求数据的上下文

response

javax.servlet.http.HttpServletResponse

page

该对象允许直接访问HttpServletReponse对象,可用

来向客户端输入数据

session

javax.servlet.http.HttpSession

session

该对象可用来保存在服务器与一个客户端之间需要

保存的数据,当客户端关闭网站的所有网页时,

session变量会自动消失

 requestresponsesession是JSP内置对象中重要的3个对象,这3个对象体现了服务器端与客户端(即浏览器)进行交互通信的控制.在JSP内置对象中,pageContextconfigpageexception这些对象是不经常使用的.

request对象: 获取客户浏览器的请求

 访问请求参数:

String userName = request.getParameter("name");//参数name与HTML标记name属性对应

在作用域中管理属性:

request.setAttribute("key", Object);//设置转发数据
request.getAttribute(String name);//获取转发数据

获取Cookie:

Cookie[] cookie = request.getCookies();//返回Cookie数组
request.addCookie(cookie_response);//添加Cookie对象

获取客户信息:

方    法

说    明

getHeader(String name)

获得Http协议定义的文件头信息

getHeaders(String name)

返回指定名字的request Header的所有值,其结果是一个枚举的实例

getHeadersNames()

返回所有request Header的名字,其结果是一个枚举的实例

getMethod()

获得客户端向服务器端传送数据的方法,如get,post,header,trace等

getProtocol()

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

getRequestURI()

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

getRealPath()

返回当前请求文件的绝对路径

getRemoteAddr()

获取客户端的IP地址

getRemoteHost()

获取客户端的机器名称

getServerName()

获取服务器的名字

getServerPath()

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

getServerPort()

获取服务器的端口号

访问安全信息:

方    法

说    明

isSecure()

返回布尔类型的值,它用于确定这个请求是否使用了一个安全协议,例如HTTP

isRequestedSessionIdFromCookie()

返回布尔类型的值,表示会话是否使用了一个Cookie来管理会话ID

isRequestedSessionIdFromURL()

返回布尔类型的值,表示会话是否使用URL重写来管理会话ID

isRequestedSessionIdFromValid()

检查请求的会话ID是否合法

访问国际化信息:

<%
java.util.Locale locale=request.getLocale();//获取web服务器所使用的本地语言
if(locale.equals(java.util.Locale.US)){
out.print("Welcome to BeiJing");
}
if(locale.equals(java.util.Locale.CHINA)){
out.print("北京欢迎您");
}
%>

response对象 :对客户浏览器进行响应

重定向网页:

方    法

说    明

sendError(int number)

使用指定的状态码向客户发送错误响应

sendError(int number,String msg)

使用指定的状态码和描述性消息向客户

发送错误响应

sendRedirect(String location)

使用指定的重定向位置URL想客户发送

重定向响应,可以使用相对URL

设置HTTP响应报头:

方    法

说    明

setDateHeader(String name,long date)

使用给定的名称和日期值设置一个响应报头,如果指定的名称已经设置,则新值会覆盖旧值

setHeader(String name,String value)

使用给定的名称和值设置一个响应报头,如果指定的名称已经设置,则新值会覆盖旧值

setHeader(String name,int value)

使用给定的名称和整数值设置一个响应报头,如果指定的名称已经设置,则新值会覆盖旧值

addHeader(String name,long date)

使用给定的名称和值设置一个响应报头

addDateHeader(String name,long date)

使用给定的名称和日期值设置一个响应报头

containHeader(String name)

返回一个布尔值,它表示是否设置了已命名的响应报头

addIntHeader(String name,int value)

使用给定的名称和整数值设置一个响应报头

setContentType(String type)

为响应设置内容类型,其参数值可以为text/html,text/plain,application/x_msexcel或application/msword

setContentLength(int len)

为响应设置内容长度

setLocale(java.util.Locale loc)

为响应设置地区信息

 eg:设置HTTP头可实现禁用缓存功能:

<%response.setHeader("Cache-Control","no-store");
response.setDateHeader("Expires",0);%>

缓冲区配置:

方    法

说    明

flushBuffer()

强制把缓冲区中内容发送给客户

getBufferSize()

返回响应所使用的实际缓冲区大小,如果没使用缓冲区,则该方法返回0

setBufferSize(int size)

为响应的主体设置首选的缓冲区大小

isCommitted()

返回一个boolean,表示响应是否已经提交;提交的响应已经写入状态码和报头

reset()

清除缓冲区存在的任何数据,同时清除状态码和报头

session对象: 一直保存着会话期间所需要传递的数据信息 

 创建及获取客户的会话:

session.setAttribute(String name,String value);
session.getAttribute(String name);

从会话中移除指定的对象:

session.removeAttribute (String name);

 销毁session:

session.invalidate();

 会话超时的管理:

方    法

说    明

getLastAccessedTime()

返回客户端最后一次发送与这个会话相关联的请求

时间

getMaxInactiveInterval()

以秒为单位返回一个会话内两个请求的最大时间间

隔,Servlet容器在客户访问期间保存这个会话处于

打开状态

setMaxInactiveInterval(int interval)

以秒为单位指定在服务器小程序容器使该会话无效

之前的客户请求之间的最长时间,也就是超时时间

application对象:  

 访问应用程序初始化参数:

方    法

说    明

getInitParameter(String name)

返回一个已命名的初始化参数的值

getInitParameterNames()

返回所有已定义的应用程序初始化参数名称的枚举

 管理应用程序环境属性:

方    法

说    明

removeAttribute(String name)

从ServletContext的对象中去掉指定名称的属性

setAttribute(String name,Object object)

使用指定名称和指定对象在ServletContext的对象中进行关联

getAttribute(String name)

从ServletContext的对象中获取一个指定对象

getAttributeNames()

返回存储在ServletContext对象中属性名称的枚举数据

out对象:  

 管理响应缓冲:

方    法

说    明

clear()

清空缓冲区

clearBuffer()

清空当前区的内容

close()

先刷新流,然后关闭流

flush()

刷新流

getBufferSize()

以字节为单位返回缓冲区的大小

getRemaining()

返回缓冲区中没有使用的字符的数量

isAutoFlush()

返回布尔值,自动刷新还是在缓冲区溢出时抛出IOException异常

向客户端输出数据:

<%out.println("同一世界,同一梦想");%>

 pageContext对象: 获取会话范围

方    法

说    明

forward(java.lang.String relativeUtlpath)

把页面转发到另一个页面或者servlet组件上

getAttribute(java.lang.String name[,int scope])

scope参数是可选的,该方法用来检索一个特定的已经命名的对象的范

围,并且还可以通过调用getAttributeNameInScope()方法,检索对某个

特定范围的每个属性String字符串名称枚举

getException()

返回当前的Exception对象

getRequest()

返回当前的request对象

getResponse()

返回当前的response对象

getServletConfig()

返回当前页面的ServletConfig对象

invalidate()

返回servletContext对象,全部销毁

setAttribute()

设置默认页面范围或特定对象范围之中的已命名对象

removeAttribute()

删除默认页面范围或特定对象范围之中的已命名对象

 说明:pageContext对象在实际JSP开发过程中很少使用,因为request和response等对象可以直接调用方法进行使用,如果通过pageContext来调用其他对象有些麻烦。

config对象: 读取web.xml配置信息

方    法

说    明

getServletContext()

返回执行者的Servlet上下文

getServletName()

返回Servlet的名字

getInitParameter()

返回名字为name的初始参数的值

getInitParameterNames()

返回这个JSP的所有的初始参数的名字

开发者可以在web.xml文件中为应用程序环境中的Servlet程序和JSP页面提供初始化参数 

page对象: 应答或请求

方    法

说    明

getClass()

返回当前Object的类

hashCode()

返回此Object的哈希代码

toString()

将此Object类转换成字符串

equals(Object o)

比较此对象和指定的对象是否相等

copy(Object o)

把此对象赋值到指定的对象当中去

clone() 

对此对象进行克隆

page对象是为了执行当前页面应答请求而设置的Servlet类的实体,即显示JSP页面自身,只有在JSP页面内才是合法的。page隐含对象本质上包含当前Servlet接口引用的变量,可以看作是this变量的别名,因此该对象对于开发JSP比较有用。

exception对象: 获取异常信息

方    法

说    明

getMessage()

该方法返回异常消息字符串

getLocalizedMessage()

该方法返回本地化语言的异常错误

printStackTrace()

显示异常的栈跟踪轨迹

toString()

返回关于异常错误的简单信息描述

fillInStackTrace()

重写异常错误的栈执行轨迹