热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JSP指令(page、include、taglib)详解

JSP指令为了设置JSP页面中的一些信息,Sun公司提供了JSP指令。JSP2.0中共定义了page、include、taglib三种指令,每种指令都

JSP指令

为了设置JSP页面中的一些信息,Sun公司提供了JSP指令。JSP2.0 中共定义了page、include、taglib三种指令,每种指令都定义了各自的属性。

语法格式如下:

<%&#64; directive attribute&#61;"value" %>

指令可以有很多个属性&#xff0c;它们以键值对的形式存在&#xff0c;并用逗号隔开。
JSP中三种指令标签&#xff1a;

指令描述
<%&#64; page … %>定义网页依赖属性&#xff0c;比如脚本语言&#xff0c;error页面、缓存需求等等
<%&#64; include … %>包含其他文件
<%&#64; taglib … %>引入标签库的定义

Page指令

Page指令为容器提供当前页面的使用说明。一个JSP页面可以包含多个page指令。
在JSP页面中&#xff0c;经常需要对页面的某些特性进行描述&#xff0c;例如&#xff0c;页面的编码方式&#xff0c;JSP页面采用的语言等&#xff0c;这时&#xff0c;可以通过page指令来实现。

Page指令的具体语法格式如下所示&#xff1a;

<%&#64; page attribute&#61;"value" %>

等价的XML格式&#xff1a;

<jsp:directive.page attribute&#61;"value" />

Page指令的常用属性

属性名称取值 or 范围描述
pageEncoding当前页面指定页面的编码格式
contentType有效的文档类型客户端浏览器根据该属性判断文档类型&#xff0c;例如&#xff1a;
HTML格式为 text/html
纯文本格式为 text/plain
JPG图像为 image/jpeg
GIF图像为 image/gif
Word文档为 application/msword
buffer8kbjsp缓存大小
autoFlushtrue / false是否自动刷新
errorPage某个JSP页面的相对路径指定一个错误页面&#xff0c;如果该JSP程序抛出一个未捕捉的异常&#xff0c;则转到errorPage指定的页面。eooroPage指定页面的isErrorPage属性为true&#xff0c;且内置的exception对象为未捕捉的异常。
isErrorPagetrue / false指定该页面是否为错误处理页面&#xff0c;如果为true&#xff0c;则该JSP内置有一个Exception对象的exception&#xff0c;可直接使用。默认情况下&#xff0c;isErrorPage的值为false
import任何包名、类名指定在JSP页面翻译成的Servlet源文件中导入的包或类。import是唯一可以声明多次的page指令属性。一个import属性可以引用多个类&#xff0c;中间用英文逗号隔开
languagejava指明解释该JSP文件时采用的语言&#xff0c;默认为Java
sessiontrue / false指明该JSP内是否内置Session对象&#xff0c;如果为true&#xff0c;则说明内置Session对象&#xff0c;可以直接使用&#xff0c;否则没有内置Session对象。默认情况下&#xff0c;sessiion属性为true。需要注意的是&#xff0c;JSP引擎自动导入以下4个包&#xff1a;
java.lang.
javax.servlet.

javax.servlet.jsp.
javax.servlet.http.

<%&#64; page language&#61;"java" contentType&#61;"text/html; charset&#61;UTF-8"pageEncoding&#61;"UTF-8"buffer&#61;"8kb"autoFlush&#61;"true"session&#61;"true"errorPage&#61;"/error.jsp"isErrorPage&#61;"false"isThreadSafe&#61;"true" %>
<%&#64; page import&#61;"java.io.*" %>

include 指令

在实际开发时&#xff0c;有时需要在JSP页面静态包含一个文件&#xff0c;例如HTML文件&#xff0c;文本文件等&#xff0c;这时&#xff0c;可以通过include指令来实现。
包含的文件就好像是该JSP文件的一部分&#xff0c;会被同时编译执行。

include指令的具体语法格式如下所示&#xff1a;

  • 静态包含&#xff08;jsp include指令&#xff09;

<%&#64; include file&#61;"被包含的文件相对url地址" %>

  • 动态包含&#xff08;jsp include动作&#xff09;

<jsp:include page&#61;"被包含的文件相对url地址" flush&#61;"true/false" %>

区别&#xff1a;

  • 静态包含&#xff0c;两个jsp文件会编译成一个java文件&#xff0c;两个jsp文件中可以共享同一个变量&#xff0c;但不能定义重名变量。
  • 动态包含&#xff0c;两个jsp文件会生成两个java文件&#xff0c;两个jsp文件中不可以共享同一个变量&#xff0c;可以定义重名的变量。

在这里插入图片描述例子&#xff1a;
创建两个JSP页面文件date.jsp 和 include.jsp 在include.jsp文件中使用include指令将date.jsp
文件包含其中&#xff0c;如下图所示&#xff1a;
在这里插入图片描述在这里插入图片描述运行结果&#xff1a;
在这里插入图片描述从图中可以看出&#xff0c;date.jsp 文件中用于输出当前日期的语句已显示出来&#xff0c;这说明include指令成功的将date.jsp 文件中的代码合并到了include.jsp 文件中。

关于include指令的具体应用&#xff0c;有很多问题需要注意&#xff0c;接下来&#xff0c;将这些问题进行列举&#xff0c;具体如下&#xff1a;

  • 被引入的文件必须遵循JSP语法&#xff0c;其中的内容可以包含静态HTML、JSP脚本元素和JSP指令等普通JSP页面具有的一切内容。
  • 除了指令元素之外&#xff0c;被引入的文件中的其它元素都被转换成相应的Java源代码&#xff0c;然后插入进当前JSP页面所翻译成的Srvlet源文件中&#xff0c;插入位置与include指令在当前JSP页面中的位置保持一致。

taglib指令

JSP API允许用户自定义标签&#xff0c;一个自定义标签库就是自定义标签的集合。
Taglib指令引入一个自定义标签集合的定义&#xff0c;包括库路径、自定义标签。

Taglib指令的语法&#xff1a;

<%&#64; taglib uri&#61;"uri" prefix&#61;"prefixOfTag" %>

uri属性确定标签库的位置&#xff0c;prefix属性指定标签库的前缀。

等价的XML语法&#xff1a;

<jsp:directive.taglib uri&#61;"uri" prefix&#61;"prefixOfTag" />


推荐阅读
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了Java的集合及其实现类,包括数据结构、抽象类和具体实现类的关系,详细介绍了List接口及其实现类ArrayList的基本操作和特点。文章通过提供相关参考文档和链接,帮助读者更好地理解和使用Java的集合类。 ... [详细]
author-avatar
刻骨铭心2502914183_610
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有