Jsp的a) 内置对象(隐含对象)
内置对象:在jsp中的输出脚本(<%= %>)或者是普通脚本(<% %>)中,不用创建就可以直接使用的对象。
1. request【重要】
操作request作用域:request.setAttribute(); request.getAttribute();
request.getContextPath(); //动态获取应用名
![9b5ca613b0fcb22be03dbca77a1aebcf.png](https://img-blog.csdnimg.cn/img_convert/9b5ca613b0fcb22be03dbca77a1aebcf.png)
2. response【重要】
response.setContentType(“text/html;charset=GBK”); //设置响应类型和编码方式
response.getWriter();
response.setCharacterEncoding(“GBK”); //设置响应的编码方式
response.sendRedirect(); //redirect跳转
response.encoderUrl(); //URL重写
3. session【重要】
操作session作用域:session.setAttribute(); session.getAttribute();
4 application【重要】(代表ServletContext作用域)
实际上application这个内置对象的类型是ServletContext,application这个内置对象在jsp页面的定义是这样的:
ServletContext application = null;
操作ServletContext作用域:
application.setAttribute(); application.getAttribute();
5. out
作用:用于页面输出,等价于输出脚本<%= %>
![1233c5dc95f00c4876456c329b2ebbeb.png](https://img-blog.csdnimg.cn/img_convert/1233c5dc95f00c4876456c329b2ebbeb.png)
6. config 对应的是ServletConfig
7. exception
exception这个内置对象,只能使用在声明isErrorPage=”true”的jsp页面中,代表上一张发生错误的页面,产生的异常。
![8d336ea12a963d15b91135d2cf8fb7ef.png](https://img-blog.csdnimg.cn/img_convert/8d336ea12a963d15b91135d2cf8fb7ef.png)
8. page
page就代表当前jsp页面,类似this
9. pageContext【重要】
pageContext是一个非常重要的对象,这就涉及到了JSP中比较高级的一个知识点:自定义标签。
我们之前使用过<%@taglib uri=”” prefix=””%>,<jsp:forward page=””/>等一系列标签。这些标签都是JSP帮我们写好的,其实我们完全可以自定义标签,比如:我们就定义一个标签<liw>,当然这个标签的作用,由我们自己来指定。自定义标签就要用到pageContext,这个我们后续再讲。我们现在先来学习一下这个pagecContext内置对象:
1. pageContext可以获得其他的8种内置对象
pageContext.getRequest(); --> 获得request对象
pageContext.getResponse(); --> 获得response对象
pageContext.getSession(); --> 获得session对象
...
2. pageContext是一个作用域:
pageContext作用域 本页面有效
request作用域 一个请求有效
session作用域 一个浏览器有效
application作用域 一个应用(网站)有效
pageContext作用域的相关操作和其他三个作用域是一样的:
pageContext.setAttribute(); pageContext.getAttribute();
3. pageContext可以操作设置其他的作用域
![a67ec53ffd15dd5372b36aea04382f9f.png](https://img-blog.csdnimg.cn/img_convert/a67ec53ffd15dd5372b36aea04382f9f.png)
![21a43fa35a1f783104d709d23ee4e47f.png](https://img-blog.csdnimg.cn/img_convert/21a43fa35a1f783104d709d23ee4e47f.png)
![ef0eabde27b4ba4d3e202a1cc82dc741.png](https://img-blog.csdnimg.cn/img_convert/ef0eabde27b4ba4d3e202a1cc82dc741.png)
4. pageContext可以进行forward处理
request.getRequestDispatcher(“/url-pattern”).forward(request, response);
<jsp:forward page=””/> forward动作只能在jsp中使用,一般不建议使用。
pageContext.forward(“”);自定义标签的时候使用
后面的两种代码都是第一种代码的封装,第一种代码是最核心的,最底层的。
![v2-1d2d68366f09dae242a2ca0afc4d5154_b.jpg](http://img-02.proxy.5ce.com/view/image?&type=2&guid=375fc5cd-6131-eb11-8da9-e4434bdf6706&url=https://pic1.zhimg.com/v2-1d2d68366f09dae242a2ca0afc4d5154_b.jpg)