JSP的隐式对象指的是不需要显示定义,直接就可以使用的对象,比如request,response
JSP一共有9个隐式对象,分别是
request,response,out
pageContext, session,application
page,config,exception
JSP一共有9个隐式对象,分别是
request,response,out
pageContext, session,application
page,config,exception
- request,response,out
这三个已经很熟悉了
request 代表请求
response 代表响应
out 代表 输出 - pageContext, session,application
pageContext 代表当前页面作用域
session 代表当会话作用域
application 代表当全局作用域 - page
page 对象即表示当前对象
JSP 会被编译为一个Servlet类 ,运行的时候是一个Servlet实例。 page即代表this
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.util.*"%> page:<%=page%> <br> this:<%=this%>
- config
config可以获取一些在web.xml中初始化的参数。
在JSP中使用config比较复杂,需要如下几个步骤
1. 在web.xml中进行配置
2. 创建一个testconfig.jsp
通过config.getInitParameter("database-ip") 获取参数
3. 访问路径,获取web.xml中配置的参数
http://127.0.0.1/testconfig
注1: 不能通过 http://127.0.0.1/testconfig.jsp 获取参数,只能通过/testconfig路径
注2:这种用法不常见,不推荐使用
web.xml
testconfig.jsp<servlet> <!-- 把 testconfig.jsp配置为一个 servlet --> <servlet-name>testconfig</servlet-name> <jsp-file>/testconfig.jsp</jsp-file> <!-- 配置初始化参数 --> <init-param> <param-name>database-ip</param-name> <param-value>127.0.0.1</param-value> </init-param> </servlet> <!-- 将路径 testconfig映射到testconfig.jsp --> <servlet-mapping> <servlet-name>testconfig</servlet-name> <url-pattern>/testconfig</url-pattern> </servlet-mapping>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.util.*"%> database-ip: <%=config.getInitParameter("database-ip")%>
- exception
exception 对象只有当前页面的<%@page 指令设置为isErrorPage="true"的时候才可以使用。
同时,在其他页面也需要设置 <%@page 指令 errorPage="" 来指定一个专门处理异常的页面。
1. 准备一个try.jsp
设置errorPage="catch.jsp",表示有异常产生的话,就交给catch.jsp处理
故意在里面造成数组越界异常
2. 准备一个catch.jsp
设置 isErrorPage="true",表示当前页面可以使用exception对象
try.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" errorPage="catch.jsp"%> <% int[] a = new int[10]; a[20] = 5; %>
catch.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isErrorPage="true"%> <%=exception%>