您当前的位置:首页 > 计算机 > 编程开发 > Java

JSP page指令详解

时间:10-11来源:作者:点击数:

page 指令用来对JSP文件的全局属性进行设置,如页面编码、脚本语言、错误页面、缓冲区等。

page 指令虽然可以放在JSP文件的任意位置,但是一般放在文件顶部。

page 指令的基本语法:

<%@ page attribute="value" %>

你也可以使用 XML 格式:

<jsp:directive.page attribute="value" />

注意:page 指令只能对当前JSP页面进行设置,每个JSP页面都有自己的page指令。

page 指令拥有多个属性:

属性 描述 默认值
language 指定JSP页面使用的脚本语言。 Java
extends JSP被翻译成Servlet程序,该属性设置Servlet继承的超类。 HttpJspBase 类
import 引用外部类文件。
session 设置session是否有效。 true (有效)
buffer 定义输出流缓冲区大小。 8KB
autoFlush 设置是否自动刷新输出缓冲区。 true (自动)
isThreadSafe 设置当前JSP页面是否能够同时处理一个以上的用户请求。 true (可以)
info 设置JSP页面的信息。
isELIgnored 是否忽略EL表达式。 false (不忽略)
isErrorPage 当前JSP页面是否是错误处理页面。 false (不是)
errorPage 设置异常处理页面的URL,即某个 isErrorPage 属性为 true 的页面的URL。
contentType 设置 MIME 类型和编码方式。 text/html,IS08859-l

language属性

language 属性用来指定当前JSP页面所采用的脚本语言。当前JSP版本只能采用Java作为脚本语言。其实该属性可以不设置,因为JSP默认的就是采用Java作为脚本。

language属性的设置方法如下:

<%@ page language="java" %>

extends属性

JSP其实是一个特殊的Servlet,最终会被翻译成Servlet程序。

被翻译成的Servlet一般都继承一个父类,默认是 HttpJspBase 类,可以通过 extends 属性来自定义继承的超类。例如:

<%@ page language="java" extends="com.manongsushe.JSPDemo" %>

翻译后的 Servlet 程序将继承 com.manongsushe 包下的 JSPDemo 类,大家可以在 tomcat 的 work 目录中找到 servlet 的源码。

注意:尽量少使用extend属性来指定超类,这样就会把JSP代码与Java代码进行了绑定。

import属性

import 属性用来引用外部类文件,与Java中的 import 语句功能相同。

import 属性引用的类文件包括:

  • 系统环境变量中所指定目录下的类文件;
  • Tomcat 容器的 $CATALINA_HOME/lib 目录下的零散类文件或者打包后的Jar文件;
  • WEB-INF/classes目录下的类文件以及WEB-INF/lib目录下的jar文件。

注意:使用 import 属性引用类文件必须写全名(即带上包名)。如果需要引用多个类文件,可以用逗号隔开。例如:

<%@ page import="java.util.*, javax.net.*, com.manongsushe.JSPDemo" %>

被翻译成 Servlet 后,会变成标准的Java程序形式:

import java.util.*;
import javax.net.*;
import com.manongsushe.JSPDemo;

session属性

session 属性和上面介绍的属性有所不同:上面介绍的属性是在JSP页面处于编译阶段执行的,而session属性是在容器处于请求阶段执行的。

session 是JSP内置对象(后续将会介绍),session 属性就是用来设置 session 对象是否有效:"true" 表示有效,"false"表示无效。

session 属性默认为 true,一般不设置。

buffer属性

buffer 属性用来设置输出缓冲区的大小,默认为8KB(一般默认即可)。当遇到特殊情况时,才将它设置成8KB以上或者none(表示不使用输出缓冲区)。

autoFlush属性

autoFlush 属性用来设置是否自动刷新输出缓冲区(将缓冲区中的内容输出到页面显示),可以和 buffer 一起使用,默认值为 "true",表示自动刷新。

如果设置为 "false",就需要编写代码手动刷新。

isThreadSafe属性

isThreadSafe 属性表示是否是线程安全的,用来设置当前JSP页面是否能够同时响应超过一个以上的用户请求。

info属性

info 属性非常简单,它并不对JSP页面进行设置,只是定义了一个字符串,作为页面的说明性文本,可以使用servlet.getServletInfo() 获得它所定义的信息。例如:

<%@ page info="JSP演示页面 -- Powered By 码农宿舍" %>
<%
    out.println(getServletInfo());  // 输出 info 属性所定义的字符串
%>

isELIgnored属性

EL 是 expression language 的缩写,即表达式语言(后续将会介绍)。isELIgonred 属性用来设置JSP页面中的EL是否可用,"true" 表示忽略,不可用,"false" 表示不忽略,可用。 

例如,对于EL表达式 ${2000%20},当 isELIgnored 设置为 true 时,在JSP中会显示字符串 ${2000%20};设置为 false 时,则显示100。

isELIgnored 属性默认值为 false,即EL可用。建议读者使用EL,这样会使得JSP的格式更加一致。

isErrorPage属性

isErrorPage 属性用来设置当前页面是否是用来作为其他页面的错误处理页面。当需要统一处理JSP错误时,就可以使用 isErrorPage 和下面即将介绍的 errorPage 属性,来设置错误处理页面。

isErrorPage 属性的值可以是 "true" 或 "false",默认为 "false"。为 true 时,可以使用隐式的exception内置对象(后续将会介绍)来处理请求异常。

errorPage属性

errorPage 属性一般和 isErrorPage 属性结合使用,errorPage 属性用来设置能够处理异常的页面,它是一个URL,即某个 isErrorPage 属性值为 true 的页面。

例如对 demo.jsp 设置了 errorPage 属性:

<%@ page errorPage="doError.jsp" %>

当 demo.jsp 页面出现异常错误的时候,就会自动跳转到 doError.jsp 页面进行错误处理。

在实际开发中,一般指定少数几个页面统一处理异常,其他页面通过 errorPage 属性来指定处理异常的页面。

contentType属性

contentType 属性用来设置页面的 MIME 类型和编码方式。例如:

<%@ page contentType="text/html; charset=UTF-8" %>

常见的 MIME 类型有 text/plain、text/html(默认)、text/xml、image/gif、image/jpeg,常见的字符集有 UTF-8 和 GBK,一般使用 UTF-8,它支持的字符比 GBK 多很多。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门