JSP相关技术详解七(Jsp基础语法-Jsp的三个编译指令)
JSP指令会被JSP引擎转换为相应的Java代码,但这些Java代码并不直接产生任何可见输出,而是告诉JSP引擎如何处理JSP页面,或是如何生成Servlet类。
JSP指令的语法格式如下:
<%@指令 属性名 = "值"%>
常见的编译指令有三个:
page:该指令是针对当前页面的指令。
include:用于指定包含另一个页面。
taglib:用于定义和访问自定义标签。
一、page指令
通常page指令位于JSP页面的顶端,在同一个JSP页面中可以有多个page指令,但不能重复指定同样的page指令。
page 指令中包含的属性:
1)import
语法:<%@page import="package.class|package.*,..."%>
说明:类似于在java中导入包一样,如果JSP页面中用到一些类,需要使用page指令的import属性导入使用的类。import设置当前JSP页面中要用到的Java类,这些java类可能是JDK的类,也可能是自定义的类。在JSP页面中也默认加入"java.lang.*;"、"java.servlet.*"、"java.servlet.jsp.*;"、"java.servlet.http.*;"。
2)session
语法:<%page session = "true|false" %>
说明:定义当前页面是否参与HTTP会话。当设置为true时,可以获得隐含的名session的对象,为false时,则不可以获得该对象。默认为true。
3)contentType
语法:<%page contentType = "mimeType[;charset=characterSet]"%>
说明:使用contentType属性可以设置JSP页面应答的MIME类型,默认值为"text/html"。另外可以定义JSP页面的字符编码方式,默认值为ISO-8859-1,即英文文本。如果在JSP中使用中文,则可以定义字符编码方式为GBK。
4)isThreadSafe(慎用)
语法:<%page isThreadSafe = "true|false" %>
说明:定义当前页面是否支持线程安全。若为true,则该页面可能同时收到JSP引擎发送的多个请求;反之,JSP引擎会对收到的请求进行排除,当前页面在同一时刻只处理一个请求。默认为true。
5)info
语法:<%page info = "some text" %>
说明:info属性允许开发人员包含有关页面的文本信息,可以通过Servlet.getServletInfo()方法得到该字符串。
6)language
语法:<%page language = "java" %>
说明:language属性定义JSP使用的脚本语言,JSP容器允许使用其他语言进行JSP开发,但这些语言需要满足JSP规范中定义的规则。默认为java。
7)extends
语法:<%page extends = "jsp base class" %>
说明:extends属性用来指定生成的JSP Servlet的基类。默认为扩展JspBase类。
8)buffer
语法:<%page buffer = "8k" %>
说明:buffer属性用来指定响应的缓冲模型。默认值为8k。若设置为none,则表示该JSP页面不使用缓冲,所有响应输出孝将被PrintWriter直接写到ServletResponse中。
9)autoFlush
语法:<%page autoFlush = "true|flase" %>
说明:当输出缓冲区即将溢出时,是否需要强制输出缓冲区的内容,设置为TRUE时为正常输出;如设置为FALSE,则会在buffer溢出时产生一个异常。
10)errorPage
语法:<%page errorPage = "true|flase" %>
说明:errorPage用来设定当JSP页面出现异常时,所要转身的页面。如果没有设定,则JSP容器会用默认的当前页面来显示出错信息。例如,<%@page errorPage="/error/error_page.jsp"%>
11)isErrorPage
语法:<%page isErrorPage = "true|flase" %>
说明:isErrorPage指定当前页面是否是错误处理页面。默认值为false。若设定为true,则JSP容器会在当前页面中生成一个exception对象。
二,include指令
使用include指令,可以将一个外部文件嵌入到当前JSP文件中,同时解析这个页面中的JSP语句(如果有的话)。这是个静态的include语句,它会把目标页面的其他编译指令也包含进来,但动态include则不会。
include既可以包含静态的文本,也可以包含动态的JSP页面。静态的include编译指令会将被包含的页面加入本页面,融合成一个页面。
include编译指令的