什么是内置对象?
在jsp开发中,会频繁使用到一些对象。例如:HttpSession、ServletContext、HttpServletRequest
。如果每次使用这些对象都要创建,就显得非常麻烦。所以Sun公司设计jsp时,在jsp页面加载完毕后就会帮开发者创建这些对象,而开发者只需要直接使用这些对象调用方法即可。这些创建好的对象就叫内置对象。
9大内置对象
jsp中的9个内置对象将由容器为用户进行实例化,用户直接使用即可。
以上内置对象中常用的是
pageContext、request、response、session、application
,掌握了这5个,即可进行程序开发。
request内置对象
客户端的请求被封装在request对象中,通过它可以了解客户端的请求,然后作出响应,request请求具有request请求域。
常用方法:
getParameter(String name)
getParamterValues(String name)
setAttribute(String name,Onject o)
getAttribute(string name)
getContetType();
getProtocol()
getServerName();```
###response对象
response对象包含了响应客户端请求的有关信息,它具有页面作用域,该页面的作用域只对该页面有效。
**常用方法:**
getCharacterEncoding()
setContentType();
getWriter();该方法打应输出流总是前于 out.println();
sendRedirect(String location)```
请求重定向和请求转发:
请求重定向:客户端行为:response.sendDirect();两次请求,前一次请求的请求对象不会保存,地址栏的url地址会发生改变
请求转发:服务器行为,request.getResuestDispatcher().forward();一次请求,转发后请求对象会保存,地址栏url地址不会变。
session对象
session表示客户端与服务器的一次会话
web中session指的是用户在浏览某个网站,是进入网站到关闭浏览器这段时间
它是保存在服务器的内存中,不同用户有不同的session
它在第一个jsp页面被装载时自动创建,完成会话期管理。
常用方法:
getCreationTime();
String getId();
setAttribute(String name,Object o);
getAttribute(String name);
String[] getValueNames();
int getMaxInactivieInterval();单位 秒
setMaxInactiveInterval();```
**session的生命周期:**
创建: 当客户端第一次访问某个页面jsp或者servlet,服务器会创建一个 sessionId,每次客户端向服务器发送请求时,都会将sessionId携带过去,服务器会对sessionId进行校验。
活动: 当客户端通过超链接打开新页面属于同一次会话;当浏览页面全部关闭,重新打开属于一次新的会话。
销毁:调用sesson.invalidate();session过期,默认是30分钟;服务器重启;
###application对象
application实现了用户数据共享,可存放全局变量。
application 开始于服务器的重启,终止于服务器的关闭
application 是ServletContext实例。
**常用方法:**
setAttribute(String ,Object);
getAttribute(String);
Enumeration getAttributeNames();
getServerInfo();返回Jsp 引擎名和版本号
###page对象
page对象就是指当前jsp页面本身,有点像this指针,它是java.lang.Object类的实例。常用的方法就是Object 类的方法。
getClass()
hashCode();
equals();
copy();
clone()
toString();
notify();
notifyAll();
wait();```
Out内置对象
out对象类型,JspWriter类,相当于带缓冲的PrintWriter
PrintWriter:writer(内容)直接向浏览器写出内容。
JspWriter:writer(内容)向jsp缓冲区写出内容
pageContext内置对象
jsp的上下文对象可以获取其他八个内置对象
作用:保存数据和获取数据,用于数据之间的共享
获取数据
- 默认情况下,从page获取
pageContext.getAttribute("name")```
2. 可以从四个域中获取数据
pageContext.getAttribute("name",域范围常量)
域范围常量:
PageContext.PAGE_SCOPE
PageContext.REQUEST_SCOPE
PageContext.SESSION_SCOPE
PageContext.PAGE_APPLICATION_SCOPE
3. 在四个域中搜索数据
```
PageContext.findAttribute("name");
顺序:page域 ->request域 ->session域 ->context(application域)```
**常用方法**
getOut()
geSession();
getPage();
getReuest();
getResponse();
setAttribute();
getAttibute();
getAttributeScope();
forward();
include();```
config对象
它是在一个servlet初始化时,jsp页面用它传递信息,比如servlet初始化参数;以及服务器的有关信息。
ServletContext getServletContext();
getInitParameter(String);
Enumeration getInitParameterNames();```
####Jsp中的四个域对象
#####域对象作用
1. 保存数据和获取数据,用于数据共享
2. 域对象方法
```
setAttribute("name",Object);保存数据```
```
getAttribute("name")获取数据```
```
removeAttribute("name")清除数据```
3. 域对象范围
page域:只能在当前jsp页面中使用
request域:只能在同一个请求中使用
session:只能在同一个会话(session对象)中使用
context域:只能在同一个web应用中使用
###exception对象
即异常对象。如果一个jsp想要用此对象,就必须把isErrorPage 设为true.