日期:2014-05-16  浏览次数:20317 次

JSP九大隐式对象
 

JSP九个隐式对象:
request response out session application pageContext page config exception 隐式对象就是不需要我们new的对象,直接的我们就可以在页面使用的对象,注意是在<%...%>里面或者是<%=...%>里面,

request对象:保存了很多客户端请求的信息。如请求来源,Cookie和客户端请求的相关数据等
request对象的方法:

返回值 方法 描叙 object
getAttribute(String name) 返回指定属性的属性值 Enumeration getAttributeNames() 返回所有可用属性名的枚举 String getCharacterEncoding()
返回字符编码方式 int getContentLength() 返回请求体的长度(以字节数) String getContentType()
得到请求体的MIME类型 ServletInputStream getInputStream() 得到请求体中一行的二进制流 String getParameter(String name)
返回name指定参数的参数值 Enumeration getParameterNames()
返回可用参数名的枚举 String[]
getParameterValues(String name) 返回包含参数name的所有值的数组 String getProtocol() 返回请求用的协议类型及版本号 String getScheme() 返回请求用的协议名,如:http.https及ftp String getServerName() 返回接受请求的服务器主机名 int getServerPort() 返回服务器接受此请求所用的端口号 BufferedReader getReader() 返回解码过了的请求体 String getRemoteAddr() 返回发送此请求的客户端IP地址 String getRemoteHost() 返回发送此请求的客户端主机名 void setAttribute(String key,Object obj) 设置属性的属性值 String getRealPath(String path) 返回一虚拟路径的真实路径
response对象:生成服务器端响应,然后将响应结果发送到客户端
response.getContentType() 得到响应信息的头信息。
response.sendRedirect(String URL)重新定向页面
out对象:表示输出流,此输出流将作为请求发送到客户端
1.public abstract void clear()
清除缓冲区中的内容,不将数据发送至客户端。

2.public abstract void clearBuffer()
将数据发送至客户端后,清除缓冲区中的内容。

3.public abstarct void close()
关闭输出流。

4.public abstract void flush()
输出缓冲区中的数据。

5.public int getBufferSize()
获取缓冲区的大小。缓冲区的大小可用<%@ page buffer="size" %>设置。

6.public abstract int getRemainning()
获取缓冲区剩余空间的大小

7.public boolean isAutoFlush()
获取用<%@ page is AutoFlush="true/false"%>设置的AutoFlush值。

8.public abstract void newLine()
输出一个换行字符,换一行。

9.public abstract void print()
显示各种数据类型的内容。

10.public abstract void println()
分行显示各种数据类型的内容。



以下的对象是作用域通信对象,主要作用就是来存放对象的。
session对象:将我们写个对象放在这个session对象中,我们写个这个对象就在我们的会话中都存在
使用getAttribute("","")方法来把我们的对象放在session中比如:
Object obj;
session.getAttribute("name",obj); 、、这个地方的name是可以自己写的
我们要取出来的话就写
session.getAttribute("name");然后在强制转换一下,就取出来了
application对象:将我们写个对象放在这个application对象中,我们写个对象就在整个应用程序中都存在
放和取的方法是和session对象一样的
pageContext对象:将我们写个对象放在这个pageContext对象中我们这个页面中存在
放和取的方法是和session对象一样的
******************************************
pageContext对象相当于当前页面的容器,可以访问当前页面的所有对象。
pageContext对象的常用方法:
HttpSession getSession() 取得当前页面的session对象。
ServletRequest getRequest() 取得当前页面的request对象。
ServletResponse getResponse( ) 取得当前页面的response对象。
ServletContext getServletContext() 取得当前页面的application对象。
ServletConfig getServletConfig() 取得当前页面的config对象。
Object getPage() 取得当前页面的page对象。
JspWriter getOut() 取得当前页面的out对象。
Exception getException() 取得当前页面的exception对象。

以下这些对象在实际运用中page,config,exception对象用的很少.
paget对象:一般我们使用Page指令来替代使用这个对象
config对象:一样的我们在页面中是使用很少的,一般会在Servlet中使用这个
exception对象:用来处理异常的,
下面为这个exception对象来举个列子;
我有两个页面page1.jsp和page2.jsp
page1.jsp的代码
<%@ page contentType="text/html; charset=GBK" errorPage="page2.jsp" %>
<html>
<head>
<title>
page1
</title>
</head>
<body >
<h1>
<%=(3/0)%>
</body>
</html>
显然这个页面是有异常的就是我用绿色标出的地方,那么我在红色写的地方就是表示只要这个页面有异常就自动跳到page2.jsp中。
现在这个page2.jsp就是刚才page1.jsp出错的时候跳过来的,所以我的page2.jsp一定要指定为错误页面,也就是红色地方,
这样我就可以在页面写上<%=exception.toString(