JSP内置对象
JSP内置对象是指不需要声明而直接可以在JSP网页中使用的对象,这写内置对象由容器实现和管理,所有的内置对象只有对Scriptlet或者表达式有效,在JSP声明中不可用,因为他们无需声明。
对象名称 | Java类型 | 作用域 |
request | javax.servlet.ServletRequest | request |
respone | javax.servlet.ServletRespone | page |
pageContext | javax.servlet.jsp.PageContext | page |
session | javax.servlet.http.HttpSession | session |
application | javax.servlet.ServletContext | application |
out | javax.servlet.jsp.JspWriter | page |
config | javax.servlet.ServletConfig | page |
page | java.lang.Object | page |
exception | java.lang.Throwable | page |
1.请求对象request
该对象封装了用户提交的请求信息,通过调用该对象相应的方法可以获取封装的信息。
来自客户端的请求信息经Servlet容器处理后,由request对象进行封装。
2.应答对象response
response对象对客户的请求做出动态的响应,向客户端发送数据。
3.输出对象out
out对象被封装成javax.servlet.jsp.JspWriter接口。它表示为客户打开的输出流,printWriter使用它向客户端发送输出流。
4.会话对象session
session对象是由服务器自动创建的,用于保存每个用户信息,以便跟踪每个用户的操作状态。
它在第一个jsp页面被装载时自动创建,完成整个会话期的管理。
从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束被称为一个会话。
当一个客户首次访问服务器上的一个jsp页面时,jsp引擎产生一个session对象,同时分配一个String类型的ID号,jsp引擎将这个ID号发送到客户端,存放在Cookie中,这样session对象和客户之间就建立了一一对应的关系。
5.页面索引对象pageContext
pageContext对象,代表的是当前页面运行的一些属性,所有内置对象都可以从pageContext中取得
6.全局应用程序对象application
application对象保存了一个应用系统中共有的数据。
服务器启动后就产生了这个application对象,当客户在所访问网站的各个页面之间浏览时,这个application对象都是同一个,知道服务器关闭。
application与session的区别:
所有客户的application对象都是同一个,即所有客户共享这个内置的application对象。
7.配置对象config
config对象被封装成javax.servlet.ServletConfig接口,它表示Servlet的配置,提供一些配置信息。当一个Servlet初始化时,容器把某些信息通过此对象传递给这个Servlet。
8.页面对象page
page对象代表了正在运行的jsp页面产生的对象,是java.lang.Object类的一个实力。
它代表jsp被编译后的Servlet。page对象只有在当前jsp页面范围之内使用才是合法的,类似于类中的this指针。
9.页面意外对象exception
exception对象是java.lang.Throwable类的一个实例。
它指的是页面运行时的意外。该对象存储了jsp文件运行时所产生的意外信息。
此对象不能在一般的jsp文件中直接使用,如果要使用exception对象,必须在page指令中设定。
设定代码为:
<%@page isErrorPage="true" %>
下面代码是使用exception对象捕捉页面意外的简单示例。
1 <%@ page language="java" contentType="text/html; charset=GB18030" 2 pageEncoding="GB18030" errorPage="Ex4_19.jsp"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> 7 <title>Insert title here</title> 8 </head> 9 <body> 10 <% 11 String str="Hello"; 12 //下面这行会产生意外 13 Integer.parseInt(str); 14 %> 15 </body> 16 </html>
1 <%@ page language="java" contentType="text/html; charset=GB18030" 2 pageEncoding="GB18030" isErrorPage="true"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> 7 <title>Insert title here</title> 8 </head> 9 <body> 10 页面意外<br> 11 发生以下错误 12 <br><hr> 13 <%=exception.getMessage() %> 14 </body> 15 </html>
运行Ex4_18.jsp得到结果: