详解JSP向Servlet转换 |
本文标签:JSP向Servlet转换 有两种主要的directive: 一、JSP page Directive
Page directive mso-hansi-font-family:"">允许您定义一些区分大小写的属性: (1)import = “package.class”或 import = “package.class1,..,package.classN” 。 您可以定想要import的packages 。例如:
import属性是这几个属性中唯一一个可以在一个JSP中出现多次的 。 (2)contenType = “MIME=Type” 或contentType=“MIME-Type;charset=Character-Set”mso-hansi-font-family:""> 它指定输出的MIME类型 。缺省为“text/html” 。例如:
(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转换时将一个文件包含进来 。语法:
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:"">来把这些语句拷到每一个页面无疑是个梦魇 。请看下列代码:
因为文件是在页面JSP向Servlet转换时插入的,因此,如果导航条改变了,您需要将所有指向它的JSP mso-hansi-font-family:"">页面全部重新编译一次 。如果您的导航条并不常改变这样做无疑是高效的,但是,如果您的被包含文件更改频繁,则建议您使用JSP:include action(后面将谈到)来替代,它在页面被请求时才包含文件 。 |