jsp内置对象及jsp指令

一、JSP中的内置对象
  在JSP的Java代码块、表达式块等中可以直接使用的引用,称为JSP的内置对象。

二、常用的内置对象有九个
  2.1 page

  被JSP引擎将本页面翻译后的Servlet。
  2.2 pageContext
  pageContext,页面上下文,其具有一个只在当前页面范围的域属性空间,即其具有setAttribute()方法与getAttribute()方法。但由于在当前页面范围,数据不存在在域属性空间也可直接使用,将数据存放到域属性空间反而感觉"多此一举",所以这些方法并不常用。不过在同一页面中为了使用EL表达式(后面学习)来访问某变量的值,此时一般使用pageContext。
  pageContext具有一些get方法,可以获取到Request、Response、Session、ServletContext、ServletConfig、page(即当前的Servlet)、exception、out等另外八个内置对象。
  2.3 request
  2.4 response
  2.5 session
  2.6 application
   application,即ServletContext。所以ServletContext所具有的方法,application都具有。
  2.7 config
  2.8 out
  out,类型为javax.servlet.jsp.JspWriter。查看JavaEE文档,发现JspWriter类继承自IO流的Writer类。即out就是一个输出流对象,可以将某些信息输出到客户端浏览器中。
  2.9 exception
  在普通的JSP页面中是不能使用exception内置对象的。因为打开JSP翻译为的Servlet,发现并没有exception对象。若要在页面中直接使用exception对象,则需要配合着page指令使用。page指令后面讲解。
  这九个对象在JSP的Java代码块、表达式中可以直接使用。只所以可以直接使用,是因为Java代码块与表达式块被JSP引擎翻译后均出现在Servlet的_jspService()方法中。而这九个对象,就是_jspService()方法中的局部变量。在JSP的Java代码块、表达式块中的代码就是_jspService()方法中的代码,所以在其中可以直接使用。


三、jsp指令
  JSP指令的作用是为当前页面做一些基本的属性设置,为当前的页面的运行提供基本的环境。
  根据功能的不同,JSP中包含三类指令:
  3.1 page指令:页面指令
  page指令用于设置当前JSP页面的相关信息。一个JSP文件可以包含多个page指令。

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.util.*,java.text.SimpleDateFormat" %>  

  3.2 include指令:包含指令

  3.3 taglib指令:标签库指令
  无论那种指令,其使用的语法格式均为如下形式:
  <%@ 指令名称 属性名="属性值" 属性名="属性值" 属性名="属性值" ...%>