JAVA记录-JSP指令
JSP中有三种类型的指令标签 -
序号 | 指令 | 说明 |
---|---|---|
1 | <%@ page ... %> |
定义页面相关属性,如脚本语言,错误页面和缓冲要求。 |
2 | <%@ include ... %> |
在编译阶段包括文件。 |
3 | <%@ taglib ... %> |
声明页面中使用的包含自定义操作的标签库 |
JSP中的page
指令用于向容器提供与当前JSP页面相关的指令。可以在JSP页面的任何位置使用page
指令进行编码。 按照惯例,page
指令被编码在JSP页面的顶部。
以下是page
指令的基本语法 -
<%@ page attribute = "value" %>
可以使用XML编写上述语法,如下所示:
<jsp:directive.page attribute = "value" />
属性
下表列出了与page
指令相关联的属性 -
序号 | 属性 | 说明 |
---|---|---|
1 | buffer |
指定输出流的缓冲模型。 |
2 | autoFlush |
控制servlet输出缓冲区的行为。 |
3 | contentType |
定义字符编码方案。 |
4 | errorPage |
定义另一个报告Java未检查运行时异常的JSP的URL。 |
5 | isErrorPage |
指示此JSP页面是否是由另一个JSP页面的errorPage 属性指定的URL。 |
6 | extends |
指定生成的servlet必须扩展的超类。 |
7 | import |
指定JSP中使用的包或类的列表,就像Java的import 语句一样。 |
8 | info |
定义可以使用servlet的getServletInfo() 方法访问的字符串。 |
9 | isThreadSafe |
定义生成的servlet的线程模型。 |
10 | language |
定义JSP页面中使用的编程语言。 |
11 | session |
指定JSP页面是否参与HTTP会话 |
12 | isELIgnored |
指定JSP页面中的EL表达式是否被忽略。 |
13 | isScriptingEnabled |
确定脚本元素是否被允许使用。 |
1. buffer属性
buffer
属性指定服务器输出响应对象的缓冲特性。
可以编写指一个none
值来指定不使用缓冲,以便servlet输出立即被定向到响应对象,或者可以编写一个以KB
为单位的最大缓冲区大小,这将指示servlet在写入响应之前写入缓冲区。
如要指示servlet将输出直接写入响应输出对象,请使用以下命令 -
<%@ page buffer = "none" %>
使用以下命令来指示servlet将输出写入大小不小于64KB
字节的缓冲区 -
<%@ page buffer = "64kb" %>
2. autoFlush属性
autoFlush
属性指定缓冲区输出是否在缓冲区填充时自动刷新,或者是否引发异常以指示缓冲区溢出。
true
(默认值)值表示自动缓冲区刷新,false
值表示引发异常。
当servlet的输出缓冲区已满时,以下指令会导致servlet抛出异常,则使用以下语句 -
<%@ page autoFlush = "false" %>
此指令使servlet在完全输出时刷新输出缓冲区,
<%@ page autoFlush = "true" %>
通常,buffer
和autoFlush
属性在page
指令中进行编码,如下所示:
<%@ page buffer = "16kb" autoflush = "true" %>
3. contentType属性
contentType
属性设置JSP页面和生成的响应页面的字符编码。 默认内容类型为:text/html
,它是HTML页面的标准内容类型。
如果要从JSP输出为XML,请使用以下page
指令 -
<%@ page contentType = "text/xml" %>
以下语句指示向浏览器生成的页面呈现为HTML -
<%@ page contentType = "text/html" %>
以下指令将内容类型设置为:Microsoft Word文档 -
<%@ page contentType = "application/msword" %>
还可以指定响应的字符编码。 例如,如果要指定返回浏览器的结果页面使用:UTF-8,则可以使用以下page
指令 -
<%@ page contentType = "text/html:charset=UTF-8" %>
4. errorPage属性
如果希望在当前页面运行时出现错误时,指定一个错误提示页面,那么errorPage
属性告诉JSP引擎显示哪个页面。errorPage
属性的值是相对URL。
当抛出所有未捕获的异常时,以下指令用于在页面出错时指定显示MyErrorPage.jsp
的内容 -
<%@ page errorPage = "MyErrorPage.jsp" %>
5. isErrorPage属性
isErrorPage
属性表示当前的JSP页面可以用作另一个JSP的错误页面。
isErrorPage
的值可为true
或false
。 isErrorPage
属性的默认值为false
。
例如,handleError.jsp
将isErrorPage
选项设置为true
,因为它应该处理错误 -
<%@ page isErrorPage = "true" %>
6. extends属性
extends
属性指定生成的servlet必须扩展的超类。
例如,以下指令指示JSP转换器生成servlet,以使servlet扩展somePackage.SomeClass
-
<%@ page extends = "somePackage.SomeClass" %>
7. import属性
import
属性与Java import语句具有相同的功能,并且类似于Java import语句。import
选项的值是要导入的程序包的名称。
例如,要导入java.sql.*
,请使用以下page
指令 -
<%@ page import = "java.sql.*" %>
要导入多个包,可以使用逗号分隔,如下所示:
<%@ page import = "java.sql.*,java.util.*" %>
默认情况下,容器会自动导入java.lang.*
,javax.servlet.*
,javax.servlet.jsp.*
和javax.servlet.http.*
。
8. info属性
info
属性允许提供JSP的描述。以下是一个代码示例 -
<%@ page info = "This JSP Page Written By Maxsu" %>
9. isThreadSafe属性
isThreadSafe
选项将页面标记为线程安全。默认情况下,所有JSP都被认为是线程安全的。 如果将isThreadSafe
选项设置为false
,则JSP引擎确保一次只有一个线程正在执行JSP。
以下page
指令将isThreadSafe
选项的值设置为false
-
<%@ page isThreadSafe = "false" %>
10. language属性
language
属性指示在JSP页面脚本编写中使用的编程语言。
例如,由于通常我们使用Java作为脚本语言,因此language
选项可设置成如下:
<%@ page language = "java" %>
11. session属性
session
属性指示JSP页面是否使用HTTP会话。如果设置值为true
,则表示JSP页面可以访问内置session
对象,设置值为false
表示JSP页面无法访问内置session
对象。
以下指令允许JSP页面使用任何内置session
对象方法,如:session.getCreationTime()
或session.getLastAccessTime()
-
<%@ page session = "true" %>
12. isELIgnored属性
isELIgnored
属性能够禁用JSP 2.0中引入的表达式语言(EL)表达式的求值计算。
isELIgnored
属性的默认值为true,这意味着表达式${...}
按JSP规范进行评估计算。如果属性设置为false
,则不会对表达式进行评估求值,而将其视为静态文本内容。
以下指令设定表达式不会被评估计算 -
<%@ page isELIgnored = "false" %>
13. isScriptingEnabled属性
isScriptingEnabled
属性确定脚本元素是否被允许使用。
isScriptingEnabled
属性默认值为true
,它表示启用脚本,表达式和声明。 如果属性的值设置为false
,则如果JSP使用任何脚本,表达式(非EL)或声明,则会引发转换时错误。
如果要限制脚本,表达式(非EL)或声明的使用,可将isScriptingEnabled
属性的值可以设置为false
-
<%@ page isScriptingEnabled = "false" %>
include
指令用于在编译阶段包括一个文件。这个指令告诉容器在编译阶段将其他外部文件的内容合并到当前JSP文件中。可在JSP页面的任何位置使用include
指令进行编码。
本指令的一般用法形式如下:
<%@ include file = "relative url" >
include
指令中的文件名实际上是一个相对URL。如果只指定一个没有关联路径的文件名,那么JSP编译器会假定该文件与JSP在同一个目录中。
可以使用XML编写上述代码效果相同,如下所示:
<jsp:directive.include file = "relative url" />
JSP API允许自定义JSP标签,如:HTML或XML标签,标签库是一组实现自定义行为的用户定义标签。
taglib
指令声明JSP页面使用一组自定义标签,标识库的位置,并提供了在JSP页面中标识自定义标签的方法。
taglib
指令遵循下面给出的语法 -
<%@ taglib uri="uri" prefix = "prefixOfTag" >
这里,uri
属性值解析为容器理解的位置,并且prefix
属性通知容器什么位置的标记是自定义操作。
可以使用XML编写上述语法,如下所示:
<jsp:directive.taglib uri = "uri" prefix = "prefixOfTag" />
当您使用自定义标签时,通常是<prefix:tagname>
的形式。 前缀与在taglib
指令中指定的前缀相同,标记名是标记库中实现的标记的名称。
JAVA记录-JSP指令的更多相关文章
- JAVA记录-JSP内容
JSP(JavaServer Pages )是什么? JavaServer Pages(JSP)是一种支持动态内容开发的网页技术它可以帮助开发人员通过利用特殊的JSP标签,其中大部分以<%开始并 ...
- Java EE.JSP.指令
JSP的指令是从JSP向Web容器发送消息,它用来设置页面的全局属性,如输出内容类型等. JSP的指令的格式为:<%@ 指令名 属性="属性值"%> 1.page指令 ...
- JAVA记录-JSP页面获取服务器路径方式
1.basePath方式 <% String path = request.getContextPath(); String basePath = request.getScheme()+&qu ...
- jsp jsp指令
JSP 由HTML和java语句拼接而成的文本,后缀名为.jsp 1.Jsp翻译成servlet:先翻译,Tomcat将翻译后的文件放置在安装目录下(所有JSP页面本质上就是Servlet程序) 2. ...
- 常见指令与功能介绍-java之JSP学习第二天(非原创)
文章大纲 一.JSP 指令二.JSP 动作元素三.JSP 隐式对象四.JSP 客户端请求五.JSP 服务器响应六.JSP HTTP 状态码七.JSP 表单处理八.JSP 过滤器九.JSP Cookie ...
- Java开发之JSP指令
一.page指令 page指令是最常用的指令,用来说明JSP页面的属性等.JSP指令的多个属性可以写在一个page指令里,也可以写在多个指令里.但需要注意的是,无论在哪个page指令里的属性,任何pa ...
- java web 学习十六(JSP指令)
一.JSP指令简介 JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分. 在JSP 2.0规范中共定义了三个指令: pa ...
- JSP(2) - JSP指令 - 小易Java笔记
JSP指令是给JSP引擎用的,即给服务器用的.作用是告诉服务器,该如何处理JSP中除了指令之外的内容.包括page.include.taglib三种 基本的语法格式:<%@ 指令名称 属性1=& ...
- [原创]java WEB学习笔记16:JSP指令(page,include),JSP标签(forwar,include,param)
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
随机推荐
- python中类中属性和方法的具体定义方法和使用
1. Python中类中特性分成属性和方法 属性和方法都分为私有和公有的,私有的只可以在本类中使用外部是无法访问的 2. 定义属性(成员变量)的语法格式(公有属性/私有属性) class 类名: de ...
- 记录:Ubuntu 18.04 安装 tensorflow-gpu 版本
狠下心来重新装了系统,探索一下 gpu 版本的安装.比较令人可喜的是,跟着前辈们的经验,还是让我给安装成功了.由于我是新装的系统,就像婴儿般纯净,所以进入系统的第一步就是安装 cuda,只要这个不出错 ...
- oracle创建用户和角色、管理授权以及表空间操作
show user 显示当前用户connect username/password@datebasename as sysdba 切换用户和数据库 和用户身份 Oracle登录身份有三种: norma ...
- WebShell代码分析溯源(第1题)
<?php $POST['POST']='assert';$array[]=$POST;$array[0]['POST']($_POST['assert']);?> assert,是php ...
- 如何将maven项目打包上传到私服
比如我们想要把项目通过maven生产源码包和文档包并发布到自己的私服上,有两个maven插件可以做到这些工作,一个是maven-source-plugin,另一个是maven-javadoc-plug ...
- Python在函数中使用*和**接收元组和列表
http://blog.csdn.net/delphiwcdj/article/details/5746560
- YQCB冲刺第二周第三天
今天的任务依旧查看消费明细的功能. 遇到的问题为显示消费记录时显示所有用户的消费记录. 站立会议 任务面板
- Daily Scrum - 11/17
今天小组例会内容较少.拜重阳将一个简易的UI设计好push上TFS了,其他人没有太多进展.在原有项目基础上继续开发看似工作量变少,其实开始需要弄清楚原先代码的实现架构和各种借口还是比较困难的.
- SDN网路虚拟化平台概述
SDN网络虚拟化平台是介于物理网络拓扑以及控制器之间的中间层.虚拟化平台主要是完成物理网络拓扑到虚拟网络资源的映射,管理物理网络,并向租户提供相互隔离的虚拟网络. 为了实现网络虚拟化,虚拟化平台首先需 ...
- ElasticSearch 2 (34) - 信息聚合系列之多值排序
ElasticSearch 2 (34) - 信息聚合系列之多值排序 摘要 多值桶(terms.histogram 和 date_histogram)动态生成很多桶,Elasticsearch 是如何 ...