JSP内置对象又称为隐式对象,它们是JSP引擎为每个页面提供的Java对象,开发者可以直接使用而无需声明(由JSP页面对应的Servlet的_jspService()方法来创建这些实例对象)。JSP内置对象也被称为预定义变量。
JSP一共有9大内置对象:
1:request:HttpServletRequest接口的实例。
2:response:HttpServletResponse接口的实例。
3:out:JspWriter类的实例。
4:session:HttpSession类的实例。
5:application:ServletContext类的实例。
6:config:ServletConfig类的实例。
7:pageContext:PageContext类的实例。
8:page:类似于java类中的关键字:this。
9:exception:Exception类的对象。
requset对象:javax.servlet.http.HttpServletRequest的实例,该对象代表客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据。每当客户端请求一个JSP页面时,JSP引擎就会制造一个新的request对象来代表此请求,客户端的请求信息被封装在request中。这是一个常用的对象,获取客户端请求参数必须使用该对象。常用方法:
getParameter(String paramName)、getParameterValues(String paramName)、setAttribute(String attrName,Object attrValue)、getAttribute(String attrName)、setCharrcterEncoding(String env)等。
response对象:javax.servlet.http.HttpServletResponse的实例,代表服务器端对客户端的响应,也就是说可以通过response对象来阻止发送到客户端的数据。当服务器创建request对象时会同时创建response对象。通常很少使用该对象直接响应,而是使用out对象,除非需要生成非字符响应。response对象常用于重定向。常用的方法有:
getOutputStream()、sendRedirect(java.lang.String location)等。
out对象:javax.servlet.jsp.JspWriter的实例。代表JSP页面的输出流,用于输出内容,形成HTML页面。常用方法:
out.println("String content")
session对象:javax.servlet.http.HttpSession的实例,该对象代表一次会话。当客户端与站点建立连接时,会话开始。当客户端关闭时,会话结束。常用方法:
getAttribute(String attrName)、setAttribute(String attrName, Object attrValue)等。
application对象:javax.setvlet.ServletContext的实例,该实例代表JSP所属的Web应用本身,可用于JSP页面或者在Servlet之间交换信息。常用方法:
getAttribute(String attrName)、setAttribute(String attrName, Object attrValue)、getInitParameter(String paramName)等。
config对象:javax.servlet.ServletConfig的实例,代表该JSP的配置信息。事实上,JSP页面通常无需配置,也就不存在配置信息。该对象更多的是在Servlet中有效。常用方法:
getInitParameter(String paramName)、getInitParameternames()等。
pageContext对象:javax.servlet.jsp.PageContext的实例,该对象代表JSP页面的上下文。使用该对象可以访问页面中的共享数据。常用方法:
getServletContext()、getServletConfig()等。
page对象:就是页面实例的引用。代表着整个JSP页面。等同于this。通常没太大用处。
exception对象:java.lang.Throwable的实例,代表其他页面中的异常和错误。只有当页面是错误处理页面,即编译指令paga的isErrorPage属性为true时,才能使用该对象。常用方法:
getMessage()、printStackTrace()
包装了从先前页面中抛出的异常信息。