标签:des class java ext int http
第一个问题: JSP有多少类内置对象?
要想回答好这个问题,首先是对JSP的基本知识和技术有深刻的理解和掌握。主要有九个
内置对象:application对象,config对象,exception对象,out对象,page对象,pageContext对象,request对象,reponse对象,session对象。
第二个问题:JSP的内置对象都是什么类型的?这些对象的作用是什么?它们常用的方法是什么呢?
(1)application对象:javax.servlet.ServletContext的实例。该实例代表JSP所属的Web应用本身,可用于JSP或者Servlet之间交换信息。常用的方法有:
方法
|
返回值类型
|
方法说明
|
getMajorVersion()
|
int
|
获取主要的Servlet API版本
|
getMinorVersion()
|
int
|
获取次要的Servlet API版本
|
getServerInfo()
|
String
|
获取服务器版本
|
getMimeType()
|
String
|
获取指定文件的MIME类型
|
getContext()
|
ServerContext
|
获取指定Local的Application context
|
getRealPath
|
String
|
获取指定path的绝对路径
|
getInitParameter(name)
|
String
|
获取Servlet初始化参数
|
getInitParameter(String
paramName)用来获取Web应用的配置参数,这些配置参数应该在Web.xml文件中使用context-param元素配置,每个元素配置一个参数。
注意:每个Web应用只有一个ServletContext实例,在JSP页面可以通过application内置对象访问该实例,而在Servlet中则必须通过代码获取:ServletContext
sc= getServletConfig().get ServletContext();
(2)config对象:javax.servlet.ServletConfig的实例,该实例代表JSP的配置信息,事实上,JSP页面通常无须配置,也就不存在配置信息了。更多的在Servlet中使用。
方法
|
返回值类型
|
方法说明
|
getInitParameter(name)
|
String
|
获取Servlet初始化参数
|
getInitParameterNames()
|
Enumeration
|
获取Servlet所有初始化参数名称
|
getServletContext()
|
ServletContext
|
获取当前Application context
|
getServletName()
|
String
|
获取Servlet名称
|
(3)exception对象:java.lang.Throwable的实例,只有当页面是错误处理页面,即编译指令page的isErrorPage属性为true时候,该属性才可以使用。
(4)out对象:javax..servlet.jsp.JspWriter的实例,该实例代表JSP页面的输出流,用于输出内容,形成HTML页面。表达式的本质就是out.writer方法。
方法
|
返回值类型
|
方法说明
|
clear()
|
void
|
清除网页上输出内容
|
clearBuffer()
|
void
|
清除缓冲区内容
|
close()
|
void
|
关闭缓冲区,清除所有内容
|
getBufferSize()
|
int
|
取得缓冲区大小
|
getRemaining()
|
int
|
取得缓冲区剩余大小
|
isAutoFulsh()
|
boolean
|
获得缓冲区是否进行自动清除的信息
|
print(String str)
|
void
|
进行页面输出
|
println(String str)
|
void
|
进行页面输出并换行
|
(5)page对象:代表该页面本身,通常没有多少作用的。也就是servlet中的this。
(6)pageContext对象:PageContext的实例,该实例代表JSP页面上下文,使用该对象可以访问页面的共享数据。常用的方法为:getServletContext和getServletConfig方法。详细介绍见下面内容。
(7)request对象:javax.servlet.http.HttpServletRequest的实例,该对象封装了一次请求,客户端的请求参数都将封装到该对象里面。获得参数的方法有:
方法
|
返回值类型
|
方法说明
|
getParameter(String name)
|
String
|
获取参数名为name的参数值
|
getParameterNames()
|
Enumeration
|
获取所有参数的名称,可与上一个方法合用获取所有参数的值
|
getParameterValues(String name)
|
String[]
|
获取参数名为name的所有参数,比如参数是多个checkbox
|
getParameterMap()
|
Map
|
获取所有参数封装的Map实例,通过Map实例的String[]
get(“id”)方法返回对应参数名为id的值数组
|
其他的方法有:
方法
|
返回值类型
|
方法说明
|
getHeader(String name)
|
String
|
获取指定标题名称为name的标头
|
getHeaderName()
|
Enumeration
|
获取所有的标头名称
|
getIntHeader(String name)
|
int
|
获取标题名称为name的标头,内容以整数类型返回
|
getDateHeader(String name)
|
long
|
获取标题名称为name的标头,内容以日期类型返回
|
getCookies()
|
Cookie
|
获取相关的Cookie
|
getContextPath()
|
String
|
获取Context的路径
|
getMethod()
|
String
|
获取客户端的提交方式
|
getProtocol()
|
String
|
获取使用的HTTP协议
|
getQueryString()
|
String
|
获取请求的字符串
|
getRequestSessionId()
|
String
|
获取客户端的Session ID
|
getRequestURI()
|
String
|
获取请求的URI
|
getRemoteAddr()
|
String
|
获取客户端IP地址
|
(8)reponse对象:javax.servlet.http.HttpServletReponse的实例,代表了服务器对客户端的响应,通常很少使用该对象直接响应,而是使用out对象,除非需要生成非字符响应。而response对象常用于重定向,常用的方法是getOutStream,sendRedirect方法等。
方法
|
返回值
|
方法说明
|
addCookie(Cookie cookie)
|
void
|
|
addDateHeader(String name,long date)
|
void
|
|
addHeader(String name,String value)
|
void
|
|
addIntHeader(String name,int value)
|
void
|
|
setDateHeader(String name,long date)
|
void
|
|
setHeader(String name,String value)
|
void
|
|
setIntHeader(String name,int value)
|
void
|
|
sendError(int sc)
|
void
|
传送状态码
|
sendError(int sc,String msg)
|
void
|
传送状态码和错误信息
|
setStatus(int sc)
|
void
|
设置状态码
|
sendRedirect(String URL)
|
void
|
页面重定向,用来实现页面跳转
|
注:这里的response对象的sendRedirect(String
URL)方法设置页面重定向将改变浏览器地址栏信息,所以也称客户端跳转。
实例1:response对象实现页面的自动刷新:只需要早JSP页面中加上
实例2:实现页面自动跳转:可以通过response对象的setHeader()方法添加一个标题为Refresh的标头,并制定页面跳转时间及跳转页面,从而实现页面自动跳转。
这里使用setHeader方法添加一个标题为”Refresh”,值为”10,URL=http://www.baidu.com”的标头。
(9)session对象:javax.servlet.http.HttpServletReponse的实例,代表一次回话。当客户端浏览器与站点建立连接时候,会话开始;当客户端关闭浏览器时,回话结束。
方法
|
返回值类型
|
方法说明
|
getId()
|
String
|
获取session的ID
|
getCreationTime()
|
long
|
获取session的生成时间
|
getLashAccessedTime()
|
long
|
获取用户最后通过session发送请求时间
|
getMaxInactiveInterval()
|
long
|
获取session生命周期,如果超过这个时间则失效
|
invalidate()
|
void
|
清空session内容
|
isNew()
|
boolean
|
判断session是否为“新”的
|
setMaxInactiveInterval()
|
void
|
设置session生命周期,如果超过这个时间则失效
|
第三个问题:JSP内置对象的在什么情况下产生的呢?
一个JSP页面对应一个Servlet类,每个Servlet类有三个方法:
init方法:初始化JSP/Servlet的方法。
destory方法:销毁JSP/Servlet的方法。
service方法:对用户请求产生响应的方法。
request对象和reponse对象是service方法的形参,application对象,page对象,out对象,pageContext对象,session对象都是service的方法里面生成的局部变量。
转载请自:Struts教程网(网易旗下) ? JSP内置对象详细介绍(上)
【转】JSP内置对象详细介绍(上),搜素材,soscw.com
【转】JSP内置对象详细介绍(上)
标签:des class java ext int http
原文地址:http://www.cnblogs.com/live365wang/p/3709547.html