JSP中有三种类型的指令标签 -

序号 指令 说明
1 <%@ page ... %> 定义页面相关属性,如脚本语言,错误页面和缓冲要求。
2 <%@ include ... %> 在编译阶段包括文件。
3 <%@ taglib ... %> 声明页面中使用的包含自定义操作的标签库

JSP中的page指令用于向容器提供与当前JSP页面相关的指令。可以在JSP页面的任何位置使用page指令进行编码。 按照惯例,page指令被编码在JSP页面的顶部。

以下是page指令的基本语法 -

<%@ page attribute = "value" %>
HTML

可以使用XML编写上述语法,如下所示:

<jsp:directive.page attribute = "value" />
XML

属性

下表列出了与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" %>
HTML

使用以下命令来指示servlet将输出写入大小不小于64KB字节的缓冲区 -

<%@ page buffer = "64kb" %>
HTML

2. autoFlush属性

autoFlush属性指定缓冲区输出是否在缓冲区填充时自动刷新,或者是否引发异常以指示缓冲区溢出。

true(默认值)值表示自动缓冲区刷新,false值表示引发异常。

当servlet的输出缓冲区已满时,以下指令会导致servlet抛出异常,则使用以下语句 -

<%@ page autoFlush = "false" %>
HTML

此指令使servlet在完全输出时刷新输出缓冲区,

<%@ page autoFlush = "true" %>
HTML

通常,bufferautoFlush属性在page指令中进行编码,如下所示:

<%@ page buffer = "16kb" autoflush = "true" %>
HTML

3. contentType属性

contentType属性设置JSP页面和生成的响应页面的字符编码。 默认内容类型为:text/html,它是HTML页面的标准内容类型。

如果要从JSP输出为XML,请使用以下page指令 -

<%@ page contentType = "text/xml" %>
HTML

以下语句指示向浏览器生成的页面呈现为HTML -

<%@ page contentType = "text/html" %>
HTML

以下指令将内容类型设置为:Microsoft Word文档 -

<%@ page contentType = "application/msword" %>
HTML

还可以指定响应的字符编码。 例如,如果要指定返回浏览器的结果页面使用:UTF-8,则可以使用以下page指令 -

<%@ page contentType = "text/html:charset=UTF-8" %>
HTML

4. errorPage属性

如果希望在当前页面运行时出现错误时,指定一个错误提示页面,那么errorPage属性告诉JSP引擎显示哪个页面。errorPage属性的值是相对URL。

当抛出所有未捕获的异常时,以下指令用于在页面出错时指定显示MyErrorPage.jsp的内容 -

<%@ page errorPage = "MyErrorPage.jsp" %>
HTML

5. isErrorPage属性

isErrorPage属性表示当前的JSP页面可以用作另一个JSP的错误页面。

isErrorPage的值可为truefalse。 isErrorPage属性的默认值为false

例如,handleError.jspisErrorPage选项设置为true,因为它应该处理错误 -

<%@ page isErrorPage = "true" %>
HTML

6. extends属性

extends属性指定生成的servlet必须扩展的超类。

例如,以下指令指示JSP转换器生成servlet,以使servlet扩展somePackage.SomeClass -

<%@ page extends = "somePackage.SomeClass" %>
HTML

7. import属性

import属性与Java import语句具有相同的功能,并且类似于Java import语句。import选项的值是要导入的程序包的名称。

例如,要导入java.sql.*,请使用以下page指令 -

<%@ page import = "java.sql.*" %>
HTML

要导入多个包,可以使用逗号分隔,如下所示:

<%@ page import = "java.sql.*,java.util.*"  %>
HTML

默认情况下,容器会自动导入java.lang.*javax.servlet.*javax.servlet.jsp.*javax.servlet.http.*

8. info属性

info属性允许提供JSP的描述。以下是一个代码示例 -

<%@ page info = "This JSP Page Written By Maxsu"  %>
HTML

9. isThreadSafe属性

isThreadSafe选项将页面标记为线程安全。默认情况下,所有JSP都被认为是线程安全的。 如果将isThreadSafe选项设置为false,则JSP引擎确保一次只有一个线程正在执行JSP。

以下page指令将isThreadSafe选项的值设置为false -

<%@ page isThreadSafe = "false"  %>
HTML

10. language属性

language属性指示在JSP页面脚本编写中使用的编程语言。

例如,由于通常我们使用Java作为脚本语言,因此language选项可设置成如下:

<%@ page language = "java" %>
HTML

11. session属性

session属性指示JSP页面是否使用HTTP会话。如果设置值为true,则表示JSP页面可以访问内置session对象,设置值为false表示JSP页面无法访问内置session对象。

以下指令允许JSP页面使用任何内置session对象方法,如:session.getCreationTime()session.getLastAccessTime() -

<%@ page session = "true" %>
HTML

12. isELIgnored属性

isELIgnored属性能够禁用JSP 2.0中引入的表达式语言(EL)表达式的求值计算。

isELIgnored属性的默认值为true,这意味着表达式${...}按JSP规范进行评估计算。如果属性设置为false,则不会对表达式进行评估求值,而将其视为静态文本内容。

以下指令设定表达式不会被评估计算 -

<%@ page isELIgnored = "false" %>
HTML

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" >
HTML

这里,uri属性值解析为容器理解的位置,并且prefix属性通知容器什么位置的标记是自定义操作。
可以使用XML编写上述语法,如下所示:

<jsp:directive.taglib uri = "uri" prefix = "prefixOfTag" />
XML

当您使用自定义标签时,通常是<prefix:tagname>的形式。 前缀与在taglib指令中指定的前缀相同,标记名是标记库中实现的标记的名称。

 

JAVA记录-JSP指令的更多相关文章

  1. JAVA记录-JSP内容

    JSP(JavaServer Pages )是什么? JavaServer Pages(JSP)是一种支持动态内容开发的网页技术它可以帮助开发人员通过利用特殊的JSP标签,其中大部分以<%开始并 ...

  2. Java EE.JSP.指令

    JSP的指令是从JSP向Web容器发送消息,它用来设置页面的全局属性,如输出内容类型等. JSP的指令的格式为:<%@ 指令名 属性="属性值"%> 1.page指令 ...

  3. JAVA记录-JSP页面获取服务器路径方式

    1.basePath方式 <% String path = request.getContextPath(); String basePath = request.getScheme()+&qu ...

  4. jsp jsp指令

    JSP 由HTML和java语句拼接而成的文本,后缀名为.jsp 1.Jsp翻译成servlet:先翻译,Tomcat将翻译后的文件放置在安装目录下(所有JSP页面本质上就是Servlet程序) 2. ...

  5. 常见指令与功能介绍-java之JSP学习第二天(非原创)

    文章大纲 一.JSP 指令二.JSP 动作元素三.JSP 隐式对象四.JSP 客户端请求五.JSP 服务器响应六.JSP HTTP 状态码七.JSP 表单处理八.JSP 过滤器九.JSP Cookie ...

  6. Java开发之JSP指令

    一.page指令 page指令是最常用的指令,用来说明JSP页面的属性等.JSP指令的多个属性可以写在一个page指令里,也可以写在多个指令里.但需要注意的是,无论在哪个page指令里的属性,任何pa ...

  7. java web 学习十六(JSP指令)

    一.JSP指令简介 JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分. 在JSP 2.0规范中共定义了三个指令: pa ...

  8. JSP(2) - JSP指令 - 小易Java笔记

    JSP指令是给JSP引擎用的,即给服务器用的.作用是告诉服务器,该如何处理JSP中除了指令之外的内容.包括page.include.taglib三种 基本的语法格式:<%@ 指令名称 属性1=& ...

  9. [原创]java WEB学习笔记16:JSP指令(page,include),JSP标签(forwar,include,param)

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

随机推荐

  1. EF Core 新特性——Owned Entity Types

    Owned Entity Types 首先owned entity type是EF Core 2.0的新特性. 至于什么是owned entity types,可以先把他理解为EF Core官方支持的 ...

  2. cbuild-一个创建和管理C++项目的工具

    cbuild-一个创建和管理C++项目的工具 介绍: 这是个人开发的一个管理C++项目的工具,用shell脚本编写. 可能会不定期更新,也欢迎大家一起完善. 当前开发版本0.5.各版本功能如下: ve ...

  3. Katalon Studio学习笔记(二)——请求响应中文乱码解决方法

    Katalon Studio接口测试发现返回的中文消息是乱码,这是因为KS的编码格式是UTF-8,因此导致中文字体出现乱码.如下图所示: 在我们的系统中添加一个名字为JAVA_TOOL_OPTIONS ...

  4. 2018-07-09--记录一次gitlab迁移事件及遇到的问题

    一.事情起因 因机房服务器即将到期,需要将即将到期的服务器迁移至云上,迁移之前没有查看老环境的Gitlab是什么版本,直接装的Gitlab社区版,做数据导入时提示版本错误: [root@vpn-ser ...

  5. 唐雎(jū)不辱使命

    唐雎(jū)不辱使命 ​选自<战国策> 秦王使人谓安陵君曰:“寡人欲以五百里之地易安陵,安陵君其许寡人.”安陵君曰:“大王加惠,以大易小,甚善.虽然,受地于先生,愿终守之,弗敢易.”秦王不 ...

  6. PAT甲题题解-1012. The Best Rank (25)-排序水题

    排序,水题因为最后如果一个学生最好的排名有一样的,输出的课程有个优先级A>C>M>E那么按这个优先级顺序进行排序每次排序前先求当前课程的排名然后再与目前最好的排名比较.更新 至于查询 ...

  7. 《Linux内核分析》第四周:扒开系统调用的三层皮

    杨舒雯 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 " 一. 用户 ...

  8. 第二阶段Sprint7

    昨天:将“录制”及“保存”整合到一起,修复出现的Bug,使之能够正常运行. 今天:把视频录制整合到时间提醒里,实现视频提醒 遇到的问题:额,整进去直接就停止运行了..也没有报错..

  9. windows 64bit 服务器下安装32位oracle database 11g 问题集

    1.中文乱码 问题描述: 利用vs2008调试的时候正常,发布到IIS8.5上的时候,当查询语句中包含中文的时候会乱码,比如"select * from tb where name='小s' ...

  10. bing背单词交互流程 - Chongyang Bai

    昨天和travis,钟秋开会确认了bing背单词的手机界面交互流程.我在这里简单描述一下,设计页面暂时不能贴出来,期待大家的宝贵意见 b( ̄▽ ̄)d. 单词本浏览界面:单词本被分为两类,用户单词本和单 ...