`

jsp指示元素

阅读更多

指示元素

指示元素的作用是:指示容器在将JSP翻译成servlet的过程中,应该加入什么样的附加内容
举例来说,我们在写servlet时,可以用import语句导入一个类或一个包,但是,在JSP页面中是不能在脚本元素中使用import语句的。这是 因为所有的脚本元素在翻译成servlet后都被放到了JSP实现类的类体中(即不能放在类定义之外),而import语句是不能被包含在类体中的。因 此,要想在JSP页面中导入一个类,就必须要想其它的办法。指示元素的意义就在于此


指示元素一共有3个,即page、include、taglib
所有指示元素都采用如下的基本语法:
<%@ directive attribute1=“value1”
                            attribute2=“value2”
                            attributeN=“valueN”
%>

 

page指示元素     page指示元素     page指示元素     page指示元素     page指示元素     page指示元素     page指示元素    

 

page指示元素包含了与整个JSP页面有关的一些属性(一共13个属性)
在一个JSP翻译单元(翻译单元是指JSP源文件及其它通过include指示包含进来的JSP文件)中,可以包含多个独立的page指示。但是,在整个 翻译单元中,page指示中的属性只能被设置一次。也就是说,如果在一个page指示中已经设置了某一属性,则在其它的page指示中就不能再设置它了。 这里有两个例外,一个是import属性,一个是pageEncoding属性

 


虽然page指示是位置无关的(即无论page指示出现在页面的什么地方,对整个页面都是有效的),但建议在JSP页面的开头就写上它
语法形式:
<%@ page   属性列表 %>
属性列表采用“名字/值”对形式

1

 

language属性
设置JSP页面中脚本元素使用的脚本语言
默认值为java(只能是java)
没必要设置这个属性

2

extends属性
设置由JSP翻译成的servlet类要扩展的父类
属性值必须是一个完整的类名
默认值由容器进行设置。一般情况下用户不要设置这个属性

3


import属性
用来向JSP页面servlet中导入一个类或者一个包
属性值是一个合法的完整类名或包名
import属性可以被指定多次,也可以在一个import属性中加入多个值(用逗号分隔)。指定了该属性后会在翻译生成的servlet类中加入相应的import语句。示例:
<%@ page import=“java.util.*, java.sql.*” %>
不设置这个属性,JSP页面servlet也会默认导入以下包:java.lang.*、javax.servlet.*、javax.servlet.jsp.*、javax.servlet.http.*

4


session属性
用于指示当前JSP页面中会话是否有效
默认值为true
示例:
<%@ page session=“true” %>
JSP中会话的概念和servlet中的会话是一样的。当session=“true”时,在该页面中JSP的隐含对象session是有效的;当session=“false”时,在该页面中JSP的隐含对象session是无效的
设置这个属性实际上是在控制在页面servlet类中是否要定义一个HttpSession的实例

5


buffer属性
用来设置输出的缓冲区的最小值
属性值:
None:表示不使用缓冲
整数:表示缓冲区的大小,单位是KB
示例:
<%@ page buffer=“32” %>
默认值为8KB
缓存是重要的,因为即使在页面开始生成输出以后,缓冲也允许添加或者更改响应的标题。另外,缓存可以取消一个页面的输出,以及把请求转发给另外的页面

6


autoFlush属性
用来指示如何处理缓冲溢出问题,是自动刷新,还是抛出一个异常
默认值为true(自动刷新)
示例:
<%@ page autoFlush=“true” %>
如果一个缓冲区被写满,通常就说这个缓冲区溢出了。当缓冲区溢出时,有两种处理办法:一种是自动将缓冲区中的内容写到客户端,然后将缓冲区清空,这样就可以继续使用缓冲区了;另一种办法就是停止缓冲区的使用,并抛出一个异常

 

注意:当buffer=“none”时,不能设置autoFlush=“false”。因为:如果没有缓冲区,设置autoFlush=“false”使得每次页面被请求时都会产生一个异常。如果没有缓冲区的话,对客户端页面的输出必须总是立即刷新

7

isThreadSafe属性
用来指示这个页面在线程不安全的情况下是否可并行处理请求。默认值为true
示例:
<%@ page isThreadSafe=“true” %>
当isThreadSafe=“true” 时,JSP页面可以对多个客户请求同时进行处理,这时jsp页面实现类不实现SingleThreadModel接口;而当 isThreadSafe=“false” 时,JSP页面在处理多个客户请求时,会将所有的请求排队,一个一个地进行处理,这时, jsp页面实现类实现SingleThreadModel接口
注意,JSP2.0规范不推荐使用这个属性


8

info属性
用来设置JSP的作者、版权等内容
通过getServletInfo()方法来取得这个属性的值
示例:
<%@ page info=“王大,版权所有” %>

9

isErrorPage属性
用来指定当前的JSP页面是不是一个错误处理页面
默认值为false
示例:
<%@ page isErrorPage=“true” %>
所谓错误处理页面就是当其它JSP页面出错时可以导向的页面。页面出错时,往往会抛出一个异常,错误页面能够接收到其它页面抛出的异常,程序员就可以对异常进行分析处理
当isErrorPage=“true”时,在该页面中exception隐含对象有效,表明当前页面是错误处理页面,可以作为其它页面的errorPage属性的URL

10

errorPage属性
用来指定当当前页面发生不可捕获的异常时,客户被转发的错误处理页面的URL地址
属性值:错误处理页面的URL地址
示例:
<%@ page errorPage=“invalid_login.jsp”%>
<%@ page errorPage=“/error/ invalid_login.jsp”%>
URL地址只能是相对URL。以“/”开始的相对URL相对于Web应用程序的文档根目录被解释;不以“/”开始的相对URL相对于JSP页面的当前目录被解释
错误页面必须和被请求的JSP页面位于同一个服务器上


errorPage属性必须和输出缓冲一起使用。如果没有使用缓冲,当不能捕获到的异常发生时,JSP容器将不能把请求转发给错误处理页面。同样,当缓冲区充满时,如果页面被刷新, JSP容器也不能把请求转发给错误处理页面
默认的错误处理页面是和容器相关的,不同的容器设置的错误处理页面是不同的

11

contentType属性
用来指明JSP页面生成的响应的MIME类型和字符编码
属性值:
格式为:“TYPE; charset=CHARSET”
其中,TYPE=text/html或其它,CHARSET代表字符集的名字,一般是GBK或gb2312
默认值:
TYPE的默认值是text/html,而CHARSET的默认值由pageEncoding属性的值给出

12
pageEncoding属性
用来指定JSP页面的字符编码集
属性值:字符集的名字
默认值:iso-8859-1

13
isELIgnored属性
用来设置JSP页面和整个翻译单元中的EL表达式是被忽略,还是把它们计算出来
属性值:true/false
不同的web.xml版本有不同的默认值。Servlet 2.4版本的web.xml默认值是true

 

include指示元素     include指示元素     include指示元素     include指示元素     include指示元素     include指示元素    


在把JSP页面翻译成servlet之前,使用include指示元素将指定的文件加入到当前的JSP页面中
语法:
<%@ include file=“local_url” %>
属性值local_url代表要加入到JSP页面中的文件的相对URL。和page指示的errorPage属性相似,可以使用两种类型的URL。例如:
<%@ include file=“includes/footer.jsp” %>
<%@ include file=“/includes/footer.jsp” %>
include标记实质上是用引用的文件的内容替换掉标记本身


被引用的文件可以是文本文件、HTML文件、JSP文件或者XML文件。所有被引用的文件都会在当前JSP文件中被展开,同当前JSP文件一起组成一个编译单元同时进行翻译
特别注意,JSP容器不能感知到被包含文件的变化。如果被包含的文件的内容发生了变化,则必须要重新编译当前的JSP页面
示例程序include.JSP,它使用include指示引用了两个JSP文件header.jsp和footer.jsp


taglib指示元素   taglib指示元素   taglib指示元素   taglib指示元素   taglib指示元素   taglib指示元素   taglib指示元素  


taglib指示元素用来指示JSP页面引用一个定制的标记库。一个定制标记库是定制标记的一个集合
什么是定制标记库?
在JSP中,标记可以分成两种类型,一种就是JSP中已经定义好的标记,如脚本元素标记、page指示标记等,这类标记称为标准标记。但是用户在开发 JSP页面时,还是希望能够定义一些个些化的标记,以实现一些特殊的功能。为此,JSP规范中就为用户自定义标记提供了一套完整的方法来生成具有定制功能 的标记。在这套方法中,将用户自定义的标记统一存放到一个用户指定的库中,这个库就是定制标记库


如何使用自定义标记?
如果用户想要在JSP页面中使用自定义标记,就必须要向容器声明将要使用的自定义标记是在哪个标记库中,它的前缀是什么。这时就要用到taglib指示元素
示例:
<%@ taglib uri=“http://www.mycorp/supertags” prefix=“super” %>
它的意思是:JSP页面将用到一个自定义标记,这个标记所用到的标记库描述文件(Tag Library Descriptor ,TLD)位于http://www.mycorp/supertags ,标记前缀名是super


标记库描述文件是用来说明一个标记库具体情况的XML文件,文件的扩展名是.tld。标记前缀名则是将要用在自定义标记前面的名字,标记名和前缀名用冒号(:)分开。例如,<super:doMagic>
实际上,用户自定义标记在容器看来是一种行为元素,它与JSP标准行为一样都会对输出流产生影响
语法:
<%@ taglib uri=“taglib_uri”          prefix=“tag_prefix” %>


属性说明:
uri属性:可以是绝对的,也可以是相对的,它的作用是指定标记库描述文件的位置。JSP规范规定,uri属性必须解析为本地的TLD文件。因此,对于一个绝对的URI,必须在web.xml文件中把它映射到一个本地资源
JSP容器分析taglib指示元素的时候,会首先在web.xml文件中查找映射。如果映射不存在并且使用了绝对URI,将会出错;如果映射不存在并且使用了相对URI,JSP容器就会在本地查找TLD文件:
如果相对URI以“/”开始,它的位置被解析为是相对于Web应用程序的文档根目录
如果相对URI不以“/”开始,它的位置被解析为是相对于JSP页面当前目录

 

prefix属性:用来指定标记的前缀名。前缀名的用法是<前缀名:标记名>。例如,前缀名为myPrefix,在使用标记myTag时,则要写成<myPrefix:myTag>
前缀名jsp、jspx、java、javax、servlet、sun、sunw是JSP规范中定义的保留字,不能用于用户自定义的前缀名
在一个JSP页面中可以多次使用taglib指示元素.

分享到:
评论

相关推荐

    jsp简单语法,servlet,JSP概述,JSP页面构成,注释,指令,脚本元素,动作元素,错误处理

    JSP动作元素不直接执行Java代码,而是指示服务器执行特定的操作。例如: - `&lt;jsp:include&gt;`:动态包含其他资源。 - `&lt;jsp:forward&gt;`:转发请求到另一个URL。 - `&lt;jsp:params&gt;`:传递参数给包含或转发的页面。 **7. ...

    jsp表达式语言

    1. **页面指示**:在JSP页面的顶部使用`&lt;%@ page isELIgnored="false" %&gt;`来启用EL。 2. **部署描述符**:在`web.xml`文件中为特定的JSP页面配置`&lt;jsp-config&gt;`标签,例如: ```xml &lt;jsp-config&gt; &lt;jsp-property-...

    一套JSP测试题,有答案

    JSP指令用于向页面发送编译指示,如包含其他文件、设置页面属性等。 - **page指令**:定义页面的全局属性,例如content type、import等。 - **include指令**:用来包括静态或动态文件。 - **taglib指令**:定义...

    jsp自定义标签开发+TLD文件元素详解+实例

    年 MM 月 dd 日");String dateStr = sdf.format(new Date());out.println(dateStr);}} 在JSP技术中,自定义标签是一种强大的功能,允许...通过正确理解和使用这些元素,开发者可以构建出高效且易于维护的JSP应用。

    JSP脚本小总结

    指令元素是JSP页面中用于控制JSP容器行为的关键组成部分,这些指令告诉JSP引擎如何处理特定页面。 1. **page指令** - `import`:指定在当前JSP页面中可以使用的类或包。 ```jsp *, java.util.Date" %&gt; ``` - `...

    JSP应用教程 课后习题答案

    2. **JSP动作**: JSP动作是由XML语法构成的,它们指示JSP引擎执行特定的操作,比如`jsp:include`、`jsp:forward`、`jsp:params`等。这些动作允许开发者在不编写Java代码的情况下实现页面导航和数据传递。 3. **内置...

    JSP试卷及答案

    4. **JSP指令**:如`&lt;%@...%&gt;`,用于提供元信息,如导入包、指示JSP引擎使用哪个Servlet实现等。 **JSP动作标签:** 1. **&lt;jsp:include&gt;**:用于在运行时动态包含另一个页面。 2. **&lt;jsp:forward&gt;**:将请求转发到...

    JSP应用教程课件及源代码

    2. **JSP动作**:如jsp:include、jsp:forward、jsp:params等,它们不执行Java代码,而是指示容器执行特定的操作。 **三、EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)** 1. **EL**...

    jsp文件的上传和下载

    JSP页面可以包含表单元素让用户选择要上传的文件,而Servlet接收这些请求,处理文件并返回响应。为了使代码更简洁和可维护,可以将文件操作封装到单独的服务层或者DAO中。 在项目的`upload`子目录中,可能包含了...

    jsp 学习记录 通俗易懂

    JSP主要包括三种类型的元素:表达式、脚本片段和声明。 1. **表达式(Expression)** 表达式是用于输出Java表达式的值到客户端的一种方式,使用`&lt;%=%&gt;`语法。例如: - 当前时间:`()%&gt;` - 随机数:`()%&gt;` - ...

    JSP(Web开发技术)教案

    JSP语法包含脚本元素(Scriptlets、Declarations、Expressions)、动作指令(JSP指令,如page、include、forward)和声明式表达式。脚本元素允许插入Java代码,声明式表达式用于输出Java表达式的值,而指令则用于...

    jsp帮助文档

    - **指令元素**:以`&lt;%@...%&gt;`形式,用来对整个JSP页面进行配置,如导入Java包(`import`),定义页面编码(`page`),指示继承的Servlet类(`extends`)等。 - **动作元素**:以`&lt;jsp:...&gt;`形式,用于插入动态内容...

    JSP 标准动作的WORD文档

    这些动作是JSP中用于处理JavaBean和页面交互的关键元素,它们帮助开发者更高效地组织和管理JSP应用程序。 首先,我们要理解JSP隐式对象的重要性。这些预定义的对象,如`request`、`response`、`out`、`session`、`...

    jsp问卷调查系统

    JSP页面由JSP指令、脚本元素和表达式组成,这些元素帮助开发者构建和控制网页的行为。 2. **Servlet技术**:虽然JSP主要是为了简化视图层的开发,但实际的业务逻辑通常由Servlet处理。Servlet是Java编写的服务器端...

    JSP文件管理系统

    - 文件上传:通常使用`&lt;input type="file"&gt;`表单元素,配合Servlet接收文件流,存储到服务器的指定目录。 - 文件下载:通过HTTP响应设置特定的Content-Disposition头,指示浏览器下载文件,而不是直接显示。 - ...

    JSP分选房间聊天室

    在JSP中,开发者可以使用脚本元素、指令元素以及JSP标签库来实现业务逻辑和页面展示。 **核心组件和技术:** 1. **Servlet** - JSP最终会被编译成Servlet,Servlet是Java中的一个接口,用于处理HTTP请求。在JSP中,...

    JSP应用程序开发指南

    - **指令**: 如`&lt;%@ %&gt;`,用于配置JSP页面,如导入包、定义页面编码、指示包含其他文件等。 **3. JSP生命周期** JSP页面经历三个主要阶段:翻译、编译和执行。在翻译阶段,JSP被转换为Servlet源代码;编译阶段,源...

    JSP和Servlet公司培训课件

    1. **JSP元素:** - **指令(Directives)**:比如`&lt;%@ page %&gt;`, `&lt;%@ include %&gt;`, `&lt;%@ taglib %&gt;`, 它们用来设置页面属性或者引入其他资源。 - **脚本元素(Scriptlets)**:如`&lt;%...%&gt;`,用于编写Java代码,...

    jsp配置问题 教你一步一步解决

    - JSP文件由HTML代码、脚本元素(Scriptlets、Expressions、Declarations)和指令(Directives)组成。理解这些元素的作用对于配置和调试至关重要。 3. **部署描述符(web.xml)配置** - 在`WEB-INF`目录下,`web...

    jsp-Ajax_Login_songxv7_jsp_

    在登录场景中,JSP页面通常包括用户界面元素(如登录表单)和处理用户输入的后台逻辑。 2. **Ajax(Asynchronous JavaScript and XML)**:Ajax的核心是使用JavaScript向服务器发送异步请求,接收响应,并在不刷新...

Global site tag (gtag.js) - Google Analytics