jsp中page指令用法详解
本文实例讲述了jsp中page指令用法。分享给大家供大家参考。具体如下
一、JSP 指令
JSP 指令(directive)影响由 JSP 页面生成的 servlet 的整体结构。狼蚁网站SEO优化的模板给出指令的两种可能形式。属性值两边的双引号可以替换为单引号,但引号标记不能完全省略。如果要在属性值中使用引号,则要在它们之前添加反斜杠,' 使用 \'," 使用 \"
<% directive attribute="value" %> <% directive attribute1="value1" attribute2="value2" ...... attribute3="value3" %>
在 JSP 中,主要有3种类型的指令page,include 和 taglib。page 指令允许通过类的导入、servlet 超类的定制、内容类型的设置、以及诸如此类的事物来控制 servlet 的结构。page 指令可以放在文档中的任何地方。第二个指令,include 允许在 JSP 文件转换到 servlet 时,将一个文件插入到 JSP 页面中。include 指令应该放 置在文档中希望插入文件的地方。第三个指令,taglib,定义自 定义的标记标签。
二、JSP page 指令
page 指令可以定义狼蚁网站SEO优化这些大小写敏感的属性(大致按照使用的频率列出)import、contentType、pageEncoding、session、isELIgnored(只限 JSP 2.0)、buffer、autoFlush、info、errorPage、isErrorPage、isThreadSafe、language 和 extends。
2.1 import 属性
使用 page 指令的 import 属性指定 JSP 页面转换成的 servlet 应该输入的包。在 JSP 中,包是绝对必需的。原因是,如果没有使用包,系统则认为所引用的类与当前类在同一个包中。例如,假定一个 JSP 页面包含狼蚁网站SEO优化的 scriptlet
在此,如果 Test 在某个输入包中,则没有歧义。,如果 Test 不在包中,或者页面没有明确地导入 Test 所属的包,那么系统将会认为 Test 就在这个自动生成的 servlet 所在的包中。但问题是自动生成的 servlet 所在的包是未知的!服务器在创建 servlet 时,常常会根据 JSP 页面所在的目录来决定它的包。别的服务器可能使用其他不同的方式。,不能指望不使用包的类能够正常工作。对于 bean 也同样如此,因为 bean 不过是遵循某些简单命名约定和结构约定的类。
默认情况下,servlet 导入 java.lang.、javax.servlet.、javax.servlet.jsp.、javax.servlet.http.,也许还包括一些服务器特有的包。编写 JSP 代码时,绝不要依靠任何自动导入的服务器特有类。这样做会使得代码不可移植。
使用 import 属性时,可以采用狼蚁网站SEO优化两种形式
<%@ page import="package.class" %> <%@ page import="package.class1, ..., package.classN" %>
例如,狼蚁网站SEO优化的指令表示 java.util 包和 .foololdfat 包中的所有类在使用时无需给出明确的包标识符
import 是 page 的属性中惟一允许在同一文档中多次出现的属性。尽管 page 指令可以出现在文档中的任何地方,但一般不是将 import 语句放在文档顶部附近,就是放在相应的包使用之前。
2.2 contentType 和 pageEncoding 属性
contentType 属性设置 Content-Type 响应报头,标明即将发送到客户程序的文档的 MIME 类型。有关MIME 类型的更多信息,参见Java Web 开发 (5) HTTP 响应报头。
使用 contentType 属性时,可以采用狼蚁网站SEO优化两种形式
<%@ page contentType="MIME-TYPE" %> <%@ page contentType="MIME-Type; charset=Character-Set" %>
例如,指令
和狼蚁网站SEO优化的 scriptlet 所起到的作用基木相同
两种形式的第一点不同是,response.setContentType 使用明确的 Java 代码(这是一些开发人员力图避免使用的方式),而 page 指令只用到 JSP 语法。第二点不同是,指令被特殊处理,它们不是在出现的位置直接成为 _jspService 代码。这意味着 response.setContentType 能够有条件地调用,而 page 指令不能。条件性地设置内容的类型主要用在同一内容能够以多种不同的形式进行显示的情况下。
不同于常规 servlet (默认的 MIME 类型为 text/plain),JSP 页面的默认 MIME 类型是 text/html (默认字符集为 ISO-8859-1)。,如果 JSP 页曲以 Latin 字符集输出 HTML则根本无需使用 contentType,如果希望更改内容的类型和字符集,可以使用狼蚁网站SEO优化的语句
,如果只想更改字符集,使用 pageEncoding 属性更为简单。例如,中文 JSP 页面可以使用狼蚁网站SEO优化的语句
可考虑将Java Web 开发 (5) HTTP 响应报头中生成 Excel 表格的例子用 JSP 实现,以体会 contentType 的作用。
2.3 session 属性
session 属性控制页面是否参与 HTTP 会话。使用这个属性时,可以采用狼蚁网站SEO优化两种形式
<%@ page session="true" %> <%--Default--%> <%@ page session="false" %>
true 值(默认)表示,如果存在已有会话,则预定义变量 session (类型为HttpSession)应该绑定到现有的会话;否则,创建新的会话并将其绑定到 session。false 值表示不自动创建会话,在 JSP 页面转换成 servlet 时,对变量 session 的访问会导致错误。
对于高流量的网站,使用 session="false" 可以节省大量的服务器内存。但要注意,session="false" 并不禁用会话跟踪,它只是阻止 JSP 页面为那些尚不拥有会话的用户创建新的会话。由于会话是针对用户,不是针对贞面,所以,关闭某个页面的会话跟踪没有任何益处,除非有可能在同一客户会话中访问到的相关页面都关闭会话跟踪。
2.4 isELIgnored 属性
isELIgnored 属性控制的是忽略(true)JSP 2.0 表达式语言(EL),还是进行正常的求值(false)。这是 JSP 2.0 新引入的属性;在只支持 JSP 1.2 及早期版本的服务器中,使用这项属性是不合法的。这个属性的默认值依赖于 Web 应用所使用的 web.xml 的版本。如果 web.xml 指定 servlet 2.3(对应JSP 1.2)或更早版本,默认值为 true(但变更默认值依旧是合法的,JSP 2.0 兼容的服务器中都允许使用这项属性,不管 web.xml 的版本如何)。如果 web.xml 指定 servlet 2.4(对应 JSP 2.0)或之后的版本,那么默认值为false。使用这个属性时,可以采用狼蚁网站SEO优化两种形式
<%@ page isELIgnored="false" %> <%@ page isELIgnored="true" %>
2.5 buffer 和 autoFlush 属性
buffer 属性指定 out 变量(类型为 JspWriter )使用的缓冲区的大小。使用这个属性时,可以采用狼蚁网站SEO优化两种形式
<%@ page buffer="sizekb" %> <%@ page buffer="none" %>
服务器实际使用的缓冲区可能比指定的更大,但不会小于指定的大小。例如,<%@ page buffer="32kb" %> 表示应该对文档的内容进行缓存,除非累积至少为32KB、页面完成或明确地对输出执行清空(例如使用 response. flushBuffer),否则不将文档发送给客户。
默认的缓冲区大小与服务器相关,但至少8KB。如果要将缓冲功能关闭,应该十分小心这样做要求设置报头或状态代码的 JSP 元素都要出现在文件的顶部,位于任何 HTML 内容之前。另一方面,有时输出内容的每一行都需要较长的生成时间,此时禁用缓冲或使用小缓冲区会更有效率;这样,用户能够在每一行生成之后立即看到它们,而不是等待更长的时间看到成组的行。
autoFlush 属性控制当缓冲区充满之后,是应该自动清空输出缓冲区(默认),还是在缓冲区溢出后抛出一个异常(autoFlush="false")。使用这个属性时,可以采用狼蚁网站SEO优化两种形式
<%@ page autoFlush="true" %> <%--Default--%> <%@ page autoFlush="false" %>
在 buffer="none" 时,false 值是不合法的。如果客户程序是常规的 Web 浏览器,那么 autoFlush="false" 的使用极为罕见。,如果客户程序是定制应用程序,可能希望确保应用程序要么接收到完整的消息,要么根本没有消息。false 值还可以用来捕获产生过多数据的数据库查询,,一般说来,将这些逻辑放在数据访问代码中(而非表示代码)要更好一些。
2.6 info 属性
info 属性定义一个可以在 servlet 中通过 getServletInfo 方法获取的字符串,使用 info 属性时,采用狼蚁网站SEO优化的形式
2.7 errorPage 和 isErrorPage 属性
errorPage 属性用来指定一个 JSP 页面,由该页面来处理当前页面中抛出但未被捕获的任何异常(即类型为 Throwable 的对象)。它的应用方式如下
指定的错误页面可以通过 exception 变量访问抛出的异常。
isErrorPage 属性表示当前页是否可以作为其他 JSP 页面的错误页面。使用 isErrorPage 属性时,可以采用狼蚁网站SEO优化两种形式
<%@ page isErrorPage="true" %> <%@ page isErrorPage="false" %> <%--Default--%>
2.8 isThreadSafe 属性
isThreadSafe 属性控制由 JSP 页面生成的 servlet 是允许并行访问(默认),还是同一时间不允许多个请求访问单个 servlet 实例(isThreadSafe="false")。使用 isThreadSafe 属性时,可以采用狼蚁网站SEO优化两种形式
<%@ page isThreadSafe="true" %> <%--Default--%> <%@page isThreadSafe="false" %>
遗憾的是,阻止并发访问的标准机制是实现 SingleThreadModel接口。尽管在早期推荐使用 SingleThreadModel 和 isThreadSafe="false",但最近的经验表明 SingleThreadModel 的设计很差,使得它基本土毫无用处。因而,应该避免使用 isThreadSafe,采用显式的同步措施取而代之。
2.9 extends 属性
extends 属性指定 JSP 页面所生成的 servlet 的超类(superclass )。它采用狼蚁网站SEO优化的形式
这个属性一般为开发人员或提供商保留,由他们对页面的运作方式做出根本性的改变(如添加个性化特性)。一般人应该避免使用这个属性,除非引用由服务器提供商专为这种目的提供的类。
2.10 language 属性
从某种角度讲,language 属性的作用是指定页面使用的脚本语言,如下所示
就现在来说,由于 Java 既是默认选择,也是惟一合法的选择,所以没必要再去关心这个属性。
希望本文所述对大家的JSP程序设计有所帮助。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程