Jsp隐式对象

1.简介
Jsp引擎在调用JSP对应的_jspServlet,会传递或者创建9个与web开发相关的对象供servlet使用。JSP技术的设计者为了便于开发人员在编写JSP页面时获得这些web对象的引用,特意定义了9个相应的变量,在JSP页面中通过这些变量可以快速获取这9个对象的引用。

9个对象分别是

  • Response
  • Request
  • Session
  • Application
  • Config
  • Page
  • Exception
  • pageContext

这里写图片描述

Exception这里看不到的原因下面会讲的~


2.用途

Out对象
主要是用于向页面输出内容,因为JSP本身也是个Servlet,响应浏览器的方式还是用out对象write一堆的HTML标签。JSP内置的out类型是JspWriter。这玩意至今我都没用过,因为后面输出内容基本都是用EL表达式以及c:out标签,不需要这个东西。

page对象
这个对象就是指向jsp页面本身,类似类中this一样,但其声明类型是Objt,在JSP上边的图中可以看到。小例子:
这里写图片描述

pageContext 页面上下文
JSP页面的内置对象,都是通过pageContext获取的,意思就是整个页面中能用的对象,都是从它这里取的。 pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的session,也可以取本页面所在的application的某一属性值。

通过上下文获取request对象,再通过request对象获取上下文路径:
这里写图片描述

config对象
config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成),以及服务器的有关信息(通过传递一个ServletContext对象),还可以给JSP设置一个像Servlet一样的访问路径。

<servlet>
    <servlet-name>outJSP</servlet-name>
    <jsp-file>/day03/config.jsp</jsp-file>
 </servlet>
 <servlet-mapping>
    <servlet-name>outJSP</servlet-name>
    <url-pattern>/config</url-pattern>
 </servlet-mapping>

这种方式和直接访问JSP有所区别,这个访问方式可以初始化个Config对象,(Servlet中有个init方法是带个config参数的)那个对象和这个是一样的玩法,都可以通过在servlet标签中定义init-param,设置初始化参数。

<init-param>
    <param-name> hey< param-name>
    <param-value> dumpass </param-value>
</init-param>

注意:只有通过url-pattern的方式访问才可以设置获取到这个param。

Exception
exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。他实际上是java.lang.Throwable的对象。

1.将一个JSP页面设置为Error页面的方法是:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
            pageEncoding="UTF-8" isErrorPage="true"%>

2.当正常的业务JSP出现异常需要跳转到Error页面:

<%@ page language="java" contentType="text/html; charset=UTF-8"
            pageEncoding="UTF-8" ErrorPage="Error.jsp"%>

3.获取异常信息:

ByteArrayOutputStream baos=new ByteArrayOutputStream();
PrintStream ps=new PrintStream(baos);
exception.printStackTrace(ps);
String str = new String(baos.toByteArray());

其他几个就统称为作用域对象,拥有 setAttribute和getAttribute方法的对象统称为作用域对象。其对应的作用域(或者说是生命周期):

request 请求 -> 响应后就销毁
如果是重定向到别的网页,那么这个request的数据
还是会存在的,跳转到的页面中也可以获取Attribute

session
一次会话,或者会话超时之前

application(servletContext)
服务器启动 -> 关闭

PageContext 只有JSP有,作用域是当前页面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值