JSP之九大隐藏对象

jsp内置对象(隐藏对象):不加声明和创建就可以在jsp页面脚本中使用的成员对象。

内置对象类型作用域
requestjavax.servlet.http.HttpServletRequestrequest
responsejavax.servlet.http.HttpServletResponseresponse
pageContextjavax.servlet.jsp.PageContextpage
sessionjavax.servlet.http.HtpSessionsession
applicationjavax.servlet.jsp.ServletContextapplication
outjavax.servlet.jsp.JspWriterpage
configjavax.servlet.ServletConfigpage
pagejava.lang.Objectpage
exceptionjava.lang.Throwablepage

一、out输出流对象

1、Servlet和Jsp中输出数据都需要使用out对象。

2、Servlet中的out对象是通过response.getWriter( )方法获取的,Jsp中并没有定义out对象,可以直接使用,简单方便。

3、对象out为javax.servlet.jsp.JspWriter类的实例,用来向页面输出信息,常用的方法:

方法返回值类型方法说明
clear()void清除网页上输出内容
clearBuffer()void清除缓冲区内容
close()void关闭缓冲区,清除所有内容
getBufferSize()int取得缓冲区大小
getRemaining()int取得缓冲区剩余大小
isAutoFulsh()boolean获得缓冲区是否进行自动清除的信息
print(String str)void进行页面输出
println(String str)void进行页面输出并换行

二、request请求对象

1、对象request为javax.servlet.ServletRequest类的实例,代表客户端的请求。

2、request对象不但可以用来设置和取得request范围变量,还可以用来获取客户端请求参数、请求的来源、表头、Cookies等,常用方法:

 方法返回值类型 方法说明 
 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地址


三、response响应对

1、对象response为javax.servlet.ServletResponse类的实例,代表客户端的响应。

2、服务器端的任何输出都是通过response对象发送到客户端浏览器。每次服务器端都会响应一个response实例,常用方法:

方法返回值方法说明
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页面重定向,用来实现页面跳转

四、config配置对象

1、对象config是javax.servlet.ServletConfig类的实例。

2、ServletConfig封装了配置在web.xml中初始化Jsp的参数。

3、Jsp中通过config来获取这些参数,每个Jsp文件有一个config对象,常用方法:

方法返回值类型方法说明
getInitParameter(name)String获取Servlet初始化参数
getInitParameterNames()Enumeration获取Servlet所有初始化参数名称
getServletContext()ServletContext获取当前Application context
getServletName()String获取Servlet名称

五、session会话对象

1、对象session是javax.servlet.http.HttpSession类的实例。

2、session和cookie是记录客户访问信息的两种机制,session用于在服务器端保存用户信息,cookie用于在客户端保存用户信息。常用方法:

方法返回值类型方法说明
getId()String获取session的ID
getCreationTime()long获取session的生成时间
getLashAccessedTime()long获取用户最后通过session发送请求时间
getMaxInactiveInterval()long获取session生命周期,如果超过这个时间则失效
invalidate()void清空session内容
isNew()boolean判断session是否为“新”的
setMaxInactiveInterval()void设置session生命周期,如果超过这个时间则失效
getAttribute()Object获取session中属性名为name的对象
getAttributeNames()Enumeration获取session中的所有属性名

六、application应用程序对象

1、对象application是javax.servlet.ServletContext类的对象。

2、application封装了Jsp所在的Web应用程序的信息。

3、Servlet中application对象需要通过ServletConfig.getServletContext()来获取。

4、整个Web应用程序只有一个application对象,常用方法:

方法返回值类型方法说明
getMajorVersion()int获取主要的Servlet API版本
getMinorVersion()int获取次要的Servlet API版本
getServerInfo()String获取服务器版本
getMimeType()String获取指定文件的MIME类型
getContext()ServerContext获取指定Local的Application context
getRealPathString获取指定path的绝对路径

七、page页面对象

1、对象page是javax.servlet.jsp.HttpJspPage类的实例。

2、page对象代表当前jsp页面,是当前jsp编译后的Servlet类的对象。

3、page相当于普通java类的关键字this。

八、pageContext页面上下文对象

1、对象pageContext是javax.servlet.jsp.PageContext类的实例。

2、pageContext对象代表当前jsp页面的编译后的内容。

3、通过次对象可以获取到jsp中的资源。常用方法:

方法返回值方法说明
getException()Exception获取当前的exception内置对象
getOut()JspWriter 
getPage()Object 
getRequest()ServletRequset 
getResponse()ServletResponse 
getServletConfig()ServletConfig 
getServeltContext()ServletContext 
getSession()HttpSession 
getAttribute(String name,int scope)Object获取指定范围的name属性值
getAttributeNamesInScope(int scope)Enumeration获取指定范围所有属性名称
getAttributesScope(String name)int获取属性名称为name的属性范围
removeAttribute(String name)void移除属性名称为name的 属性
removeAttribute(String name,int scope)void移除指定范围的属性名称为name的 属性
setAttribute(String name,Object value,int scope)void设置指定范围的name属性
findAttribute(String name)Object寻找所有范围的属性名称为name的属性

九、exception异常对象

1、对象exception是java.lang.Exception类的对象。

2、exception封装了jsp中抛出的异常信息。要使用exception对象,

3、需要设置<%@page isErrorPage="true" %>。此对象通常被用来处理错误页面。例如:

3.1.包含错误的页面:error.jsp

<span style="font-family:微软雅黑, 'Microsoft YaHei';color:#000000;"><%@ page language="java" contentType="text/html;charset=gb2312" errorPage="ExceptionDemo01.jsp"%>
<html>
    <head>
        <title>错误页面</title>
    </head>
    <body>
        <% int[] arr = {1,2,3}; out.println(arr[3]); %>
    </body>
</html></span>
 注:error.jsp中arr[3]数组下表越界.需在page指令中指定errorPage的属性值为相应的异常处理程序。
3.2 异常处理页面:exceptionDo.jsp

<span style="font-family:微软雅黑, 'Microsoft YaHei';color:#000000;"><%@ page language="java" contentType="text/html;charset=gb2312" isErrorPage="true"%>
<%@page import="java.io.PrintStream"%>
<html>
    <head>
        <title>处理错误异常</title>
    </head>
    <body>
        <%=exception%><br>
        <%=exception.getMessage()%><br>
        <%=exception.getLocalizedMessage()%><br>
        <% exception.printStackTrace(new java.io.PrintWriter(out)); %>
    </body>
</html> </span>
 

注:必须在page指令中指定属性isErrorPage属性值为true。也就是说这个页面可以用于异常处理。

将会在exceptionDo.jsp中打印出error.jsp中的数组下标越界异常信息。


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值