zl程序教程

您现在的位置是:首页 >  后端

当前栏目

JSP教程(二)

2023-06-13 09:13:45 时间
JSPdirectivemso-hansi-font-family:"">影响servlet类的整体结构。它常用以下形式:

  <%@directiveattribute=”value”%>

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

  <%@directiveattribute1="value1"
  attribute2="value2"
  attributeN="valueN"%>

  有两种主要的directive:

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

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

  一、JSPpageDirective
语法:

<%@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"]

%>

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

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

<%@pageimport="java.util.*"%>

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

  (2)contenType=“MIME=Type”或contentType=“MIME-Type;charset=Character-Set”
mso-hansi-font-family:"">
它指定输出的MIME类型。缺省为“text/html”。例如:
<%@pagecontentType="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”。如果值为“truemso-hansi-font-family:"">”(缺省)表示:当缓冲满时将自动清空,值为“falsemso-hansi-font-family:"">”时表示:当缓冲满时递出一个异常,这很少使用。当buffer=”none”是若用falsemso-hansi-font-family:"">值是不合法的。

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

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

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

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

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

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

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

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