返回
数据
分类

%@ 编译指令名 属性名=

日期: 2020-03-31 06:29 浏览次数 : 84

编译指令的语法格式:<%@ 编译指令名 属性名=“属性值” ...%>

必赢手机登录网址 ,JSP directive mso-hansi-font-family:"">影响servlet 类的整体结构。它常用以下形式:

Page 指令 定义JSP文件中的全局属性.

Page指令

<%@ page

language="java"

extends="package.class"

import="{package.class|package.*},..."

contentType="TYPE;charset=CHARSET"

session="true|false"

errorPage="地址"

pageEncoding="utf-8"

buffer="none|8kb|sizekb"

autoFlush="true|false"

isThreadSafe="true|false"

info="text"

isErrorPage="true|false"

%>

1.language:声明当前JSP页面使用的脚本语言的种类,因为页面是JSP页面,该属性的值通常是java,默认值为java,所以通常不需要设置。

2.extends:指定JSP页面编译所产生的Java类所继承的父类,或所实现的接口。

3.import:用来导入包,默认导入的包有java.lang.*、java.servlet.*、javax.servlet.jsp.*、javax.servlet.http.*。

4.session:设定这个jsp页面是否需要HTTP Session。

5.buffer:指定输出缓冲区的大小。输出缓冲区的JSP内部对象:out用于缓存JSP页面对客户浏览器的输出,默认值为8kb,可设置为none,也可设置为其他值,单位为kb。

6.autoFlush:当输出缓冲区即将溢出时,是否需要强制输出缓冲区内容,设置为true时为正常输出,为false时,则会在buffer溢出时产生一个异常。

7.info:设置该JSP程序的信息,也可以看作其说明,可以通过Servlet.getServletInfo()方法获取该值,在JSP页面中,可以直接使用getServletInfo()方法,因为JSP页面实质就是Servlet。

8.errorPage:指定错误处理页面,如果页面产生了异常或者错误,并且JSP页面没有对应的处理代码,则会自动调用该属性所指定的JSP页面,因为JSP内建了异常机制支持,所以JSP可以不处理异常,即使是checked异常。

9.isErrorPage:设置本JSP页面是否为错误处理程序。如果该页面本身已是错误处理页面,则通常不需要指定errorPage属性。

10.contentType:用于指定生成网页的文件格式和编码字符集,即MIME类型和页面字符集类型,默认的MIME类型是text/html;默认的字符集类型是ISO-8859-1。

11.pageEncoding:指定生成网页的编码字符集。

12.isThreadSafe:设置是否使用多线程的方式。

  <%@ directive attribute=”value”%>

JSP 语法
<%@ page
[ language="java" ]
[ extends="package.class" ]
[ import="{package.class | package.*}, ..." ]
[ session="true | false" ]
[ buffer="none | 8kb | sizekb" ]
[ autoFlush="true | false" ]
[ isThreadSafe="true | false" ]
[ info="text" ]
[ errorPage="relativeURL" ]
[ contentType="mimeType [ ;charset=characterSet ]" | "text/html ; charset=ISO-8859-1" ]
[ isErrorPage="true | false" ]
%>
例子
<%@ page import="java.util.*, java.lang.*" %>
<%@ page buffer="5kb" autoFlush="false" %>
<%@ page errorPage="error.jsp" %>
描述
<%@ page %>指令作用于整个JSP页面,同样包括静态的包含文件。但是<% @ page %>指令不能作用于动态的包含文件,比如 <jsp:include>

  而且,您可以将多个属性写在一个语句中:

你可以在一个页面中用上多个<% @ page %>指令,但是其中的属性只能用一次,不过也有个例外,那就是import属性。因为import属性和Java中的import语句差不多(参照Java Language),所以你就能多用此属性几次了.

  <%@ directive attribute1="value1"
  attribute2="value2"
  attributeN="valueN" %>

无论你把<% @ page %>指令放在JSP的文件的哪个地方,它的作用范围都是整个JSP页面。不过,为了JSP程序的可读性,以及好的编程习惯,最好还是把它放在JSP文件的顶部.

  有两种主要的directive:

  page,允许您做一些类似import classes的事,定义servlet的超类(Superclass),
mso-hansi-font-family:"">等;

  include,允许您将文件插入servlet类中(当JSP文件翻译为servlet时)。

  一、JSP page Directive
语法:

<%@ page
[ language="java" ]
[ extends="package .class" ]
[ import="{package .class | .*}, ..." ]
[ session="true|false" ]
[ buffer="none|8kb|sizekb" ]
[ autoFlush="true|false" ]
[ isThreadSafe="true|false" ]
[ info="text" ]
[ errorPage="relativeURL" ]
[ contentType="mimeType [ ;charset=characterSet ]" |
"text/html ; charset=ISO-8859-1" ]
[ isErrorPage="true|false" ]

%>

  Page directive mso-hansi-font-family:"">允许您定义一些区分大小写的属性:

  (1)import = “package.class”或 import = “package.class1,..,package.classN”。
mso-hansi-font-family:"">
您可以定想要import的packages。例如:

<%@ page import="java.util.*" %>

import属性是这几个属性中唯一一个可以在一个JSP中出现多次的。

  (2)contenType = “MIME=Type” 或contentType=“MIME-Type;charset=Character-Set”
mso-hansi-font-family:"">
它指定输出的MIME类型。缺省为“text/html”。例如:
<%@ page contentType="text/plain" %>"

在scriptlet中等价于:

<% response.setContentType("text/plain"); %>

  (3)isThreadSafe = “true | false”.如果值为“true”(缺省)表示:将进行普通的servlet处理,多个请求将被一个servlet实例并行处理,在这种情况下,编程人员同步访问多个实例变量。值为“false”时表示:servlet将实现单线程模式(SingleThreadModel),不管请求是顺序提交还是并发出现,都将提供不同的分离的servlet实例。

  (4)session=”true | false”。 如果值为“true”(缺省)表示:预定义变量session(继承HttpSession)应该绑定到一个已存在的session,否则就应该创建一个并将之绑定。值为“false”时表示:将不使用session变量,如果试图使用,将在JSP向servlet转化时出现错误。

  (5)buffer = “sizekb | none”。为JspWriter输出确定缓冲的大小。缺省由服务器而定,但至少要有8kb。

  (6)autoflush=”true | false”。 如果值为“true mso-hansi-font-family:"">”(缺省)表示:当缓冲满时将自动清空,值为“false mso-hansi-font-family:"">”时表示:当缓冲满时递出一个异常,这很少使用。当buffer=”none”是若用false mso-hansi-font-family:"">值是不合法的。

  (7)extends=”package.class”。这将为servlet产生一个超类。请特别谨慎的使用这一功能,因为,服务器也许已经定义了一个。

  (8)info = “message”。定义一个可以通过调用getServletInfo方法得到的串。

  (9)errorPage = “URL”。指定一个JSP mso-hansi-font-family:"">页面来处理任何一个可抛出的但当前页面并未处理的意外错误。

  (10)isErrorPage = “true | false”。指定当前页面是否可以处理来自另一个页面的错误,缺省为“false”。

  (11)language = “java” mso-hansi-font-family:"">。指出以下将使用的语言。不过,不必为这一属性费心,因为,“java mso-hansi-font-family:"">”既是缺省又是唯一合法的选择。

二JSP include Directive 这种directive 使您可以在JSP转换为servlet时将一个文件包含进来。语法:
<jsp:include page="{relativeURL | <%= expression %>}" flush="true" />mso-hansi-font-family:";mso-font-kerning: 0pt">或
<jsp:include page="{relativeURL | <%= expression %>}" flush="true" >
<jsp:param name="parameterName"
value="{parameterValue | <%=expression %>}" />+
</jsp:include>

  URL mso-hansi-font-family:"">通常相对于指向它的JSP页面,但是,普遍使用相对“URL”,您可以使用一个斜杠“/”作为URL的开始来告知系统URL mso-hansi-font-family:"">相对的Web server的主路径。被包含的文件将以规则的JSP形式来解析,因此,您可以在其中使用静态HTML,scripting elements,directives,和 actions。

  让我们来看一个例子,许多站点在每一个页面上包含一个小型的导航条。它通常出现在页面的顶部或左右侧,并包含在每一个页面里。这用include directive 来实现是很自然的,若用规则的HTML mso-hansi-font-family:"">来把这些语句拷到每一个页面无疑是个梦魇。请看下列代码:
<HTML>
<HEAD>
<TITLE> JSP教程</TITLE>
</HEAD>
<BODY>
<%@ include file="/navbar.html" %>
<!— 本页面的其他部分... -->
</BODY>
</HTML>
  因为文件是在页面被转换时插入的,因此,如果导航条改变了,您需要将所有指向它的JSP mso-hansi-font-family:"">页面全部重新编译一次。如果您的导航条并不常改变这样做无疑是高效的,但是,如果您的被包含文件更改频繁,则建议您使用jsp:include action(后面将谈到)来替代,它在页面被请求时才包含文件。