什么是JSP内置对象
按照内置对象的功能来划分,可以分为以下四类:
1、输出输入对象:request对象、response对象、out对象;
2、通信控制对象:pageContext对象、session对象、application对象;
3、Servlet对象:page对象、config对象;
4、错误处理对象:exception对象。
JSP内置对象是Web容器创建的一组对象,是可以直接在JSP页面使用的对象,无需使用“new”获取实例。
常见的内置对象:out,session,request,application,response
request
request对象主要用于处理客户端请求,包括用户提交的信息以及客户端的一些信息。客户端可通过HTML表单或在网页地址后面提供参数的方法提交数据,然后服务器通过request对象的相关方法来获取这些数据。
request的方法
response
response对象用于响应客户请求并向客户端输出信息
response对象的转发(forward) 和 重定向 (redirect)
Forward和Redirect代表了两种请求转发方式:直接转发和间接转发。
直接转发方式(Forward),客户端和浏览器只发出一次请求,Servlet、HTML、JSP或其它信息资源,由第二个信息资源响应该请求,在请求对象request中,保存的对象对于每个信息资源是共享的。
间接转发方式(Redirect)实际是两次请求,服务器端在响应第一次请求的时候,让浏览器再向另外一个URL发出请求,从而达到转发的目的。
response对象的方法
session
session对象用来存储有关用户会话的所有信息
Servlet和JSP页面通过session来共享数据
session对象常用方法:
void setAttribute(String key,Object value) 将一对键值对存储到session会话中=
session.setAttribute("name","admin");
Object getAttribute(String key) 获取session中指定名称的值对象
String name = (String)session.getAttribute("name");
application
作用范围起始于服务器开始运行,application对象被创建之时;终止于服务器关闭之时。
application类似于系统的“全局变量”,用于实现用户之间的数据共享
application 对象实现了javax.servlet.ServletContext 接口
application对象的常用方法:
void setAttribute(String key, Object value):以键/值的方式,将一个对象的值存放到application中
application.setAttribute("LOGINED_USER",new ArrayList());
Object getAttribute(String key):根据键去获取application中存放对象的值
if(application.getAttribute("LOGINED_USER")!=null){
List loginedUsers=(List)applicaton.getAttribute("LOGINED_USER");
}
out
out对象用于向客户端输出数据,类似于servlet内通过response.getWriter()获取的out对象。
out对象常用的输出数据方法:
append()
print()
write()
向客户端浏览器输出信息(即在网页中显示信息)
out对象可以输出各种数据类型的数据,out对象提供了print()和println()两种向页面中输出信息的方法。
如:<% out.print(“页面输出信息”) %>
pageContext对象
pageContext对象是javax.servlet.jsp.PageContext类的实例
容器自动为每个JSP页面创建与之对应的pageContext对象
并把与JSP对应的Servlet对象的相关对象都自动地加入到pageContext对象中
pageContext对象提供了PAGE_SCOPE、REQUEST_SCOPE、SESSION_SCOPE、APPLCATION_SCOPE4个属性对应4个作用域
<%
pageContext.setAttribute("kongfu","太极拳");
//pageContext.setAttribute("kongfu","太极拳",pageContext.PAGE_SCOPE);
request.setAttribute("name","张无忌");
//pageContext.setAttribute("name","张无忌",pageContext.REQUEST_SCOPE);
session.setAttribute("age","108");
//pageContext.setAttribute("age","108",pageContext.SESSION_SCOPE);
application.setAttribute("address","湖北武当山");
//pageContext.setAttribute("address","湖北武当山",pageContext. APPLICATION_SCOPE);
%>
page
page对象代表JSP本身,更准确地说它表示与JSP对应的Servlet类的实例
page对象可以引用Servlet中的任何方法
page对象对应的接口javax.servlet.jsp.HttpJspPage
在JSP页面中,this关键字表示当前JSP页面这个对象,可以调用常见的方法
ServletConfig getServletConfig() 返回当前页面的ServletConfig对象
ServletContext getServletContext()返回当前页面的ServletContext对象
String getServletInfo() 获取当前JSP页面的Info属性
config
config 对象是实现了javax.servlet.ServletConfig接口,用来存放与JSP相关的初始化数据
在showconfig.jsp页面里,使用config对象来从web.xml读取JSP页面的初始化参数
getInitParameter(name) 返回web.xml中指定参数的值
<servlet>
<servlet-name>show</servlet-name>
<jsp-file>/showconfig.jsp</jsp-file>
<init-param>
<param-name>name</param-name>
<param-value>张三丰</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>show</servlet-name>
<url-pattern>/show.jsp</url-pattern>
</servlet-mapping>
exception
exception内置对象是java.lang.Throwable类的实例,提供此对象是为了在JSP中处理异常
JSP错误处理涉及一个对象,即exception对象,此隐式对象只适用于JSP错误页面
在JSP页面跑出异常时,将转发至JSP错误处理页面
若要在页面中使用exception 对象,必须在page 指令中指定<%@ page isErrorPage=“true” %>