JSP——指令(Directive)
指令是一种JSP句法元素,它告诉JSP转换器应该如何将某个JSP页面转换成Servlet。
JSP 2.2中定义了几个指令:page、include、taglib、tag、attribute以及variable。其中最重要的是:page和include。
1.The page Directive
1.1.语法
<%@ page attribute1="value1" attribute2="value2" ... %>
@和page之间的空格是可选的,attribute1、attribute2等都是page指令的属性。
page指令可以出现在页面中的任何位置。只是当它包含contentType或者pageEncoding属性时,它必须放置在所有的模板数据之前, 并且是在利用Java代码发送任何内容之前。因为必须在发送任何内容之前设置内容类型和字符编码。
page指令可以多次出现。但是在多个page指令中多次出现的同一个属性,它的值必须一致,只有import属性除外。
1.2.属性
import
指定要导入的一种或多种Java类型,供本页的Java代码所用。
导入List接口:
<%@ page import="java.util.List" %>
利用通配符*可以导入整个包:
<%@ page import="java.util.*" %>
导入多重类型时,两种类型之间要用逗号隔开:
<%@ page import="java.util.ArrayList, java.util.Calendar, java.io.PrintWriter" %>
默认导入的包:
javax.servlet.*;
javax.servlet.http.*;
javax.servlet.jsp.*;
contentType
指定该页面隐式对象response的内容类型,其默认值为text/html。
pageEncoding
指定该页面的字符编码,其默认值为ISO-8859-1。
1.3.不常用属性
session
值为true时,表示这个页面参与Session管理;
值为false时,表示不参与Session管理。
默认值为true,意味着如果之前还没有javax.servlet.http.HttpSession实例,那么调用这个JSP页面时会创建一个。
buffer
指定隐式对象out的缓冲区大小,以千字节为单位。强制以kb为后缀。
缓冲区的默认容量大于或等于8kb,具体取决于JSP容器。
这个属性还可以设置为none,表示不适用缓存,但这样会导致输出的内容直接被写入相应的PrintWriter。
autoFlush
默认值为true,表示当缓冲区满时,被缓存的输出应当自动刷新。
值为false时,表示只有在调用隐式对象response的flush方法时,才进行刷新缓冲区。因此,当缓冲区益处时,就会抛出一个异常。
isThreadSafe
表示页面中实现的线程安全级别。建议JSP的作者不要使用这个属性,因为它会产生一个包含不建议使用的代码的Servlet。
info
指定所生成的Servlet的getServletInfo方法的返回值。
errorPage
表示负责处理该页面可能会出现的错误的页面。
isErrorPage
表名这个页面是否负责处理错误。
isElIgnored
表名是否忽略EL表达式。
language
指定这个JSP页面使用的脚本语言,其默认值为java,这个值是JSP 2.2中唯一有效的值。
extends
指定这个JSP页面的实现类必须扩展的超类。该属性很少使用。
deferredSyntaxAllowedAsLiteral
指明是否允许使用字符序列“#{”作为该页面和编译单元的String字面值。
默认值为false。
与EL表达式有关。
trimDirectiveWhitespaces
表名是否从输出内容中删除只包含空格的模板文本。
默认值为false。
2.The include Directive
利用include指令可以将另一个文件的内容放到当前的JSP页面中。在一个JSP页面中可以使用多个include指令。
如果某部分特殊的内容需要被其他页面所用,或者被处于不同位置的某个页面所用,那么将这部分内容做成一个include文件是很有帮助的。
2.1.语法
<%@ include file="url" %>
此处@和include之间的空格是可选的,并且url是表示一个include文件的相对路径。
如果url以一个正斜线(/)开头,那么其在服务器中就会被解读成是一条绝对路径。
如果不是以正斜线开头,则会被解读为相对于当前JSP页面的路径。
include指令和include动作的区别
使用include指令时,这种包含是发生在页面转换的时候,例如JSP容器将页面转换成一个Servlet的时候。
使用include动作时,这种包含则是发生在请求的时候。因此,可以利用include动作传递参数。
使用include指令时,被包含资源的文件扩展名并不重要。
使用include动作时,文件扩展名必须为jsp,以便它能够将其作为一个JSP页面进行处理。
3.The taglib Directive
可以通过使用这个指令来为JSP页面扩展标签库
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
JSP——指令(Directive)的更多相关文章
- jsp jsp指令
JSP 由HTML和java语句拼接而成的文本,后缀名为.jsp 1.Jsp翻译成servlet:先翻译,Tomcat将翻译后的文件放置在安装目录下(所有JSP页面本质上就是Servlet程序) 2. ...
- JavaWeb---总结(十六)JSP指令
一.JSP指令简介 JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分. 在JSP 2.0规范中共定义了三个指令: pa ...
- JSP指令
一.JSP指令简介 JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分. 在JSP 2.0规范中共定义了三个指令: pa ...
- javaweb学习总结(十六)——JSP指令
一.JSP指令简介 JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分. 在JSP 2.0规范中共定义了三个指令: pa ...
- java web 学习十六(JSP指令)
一.JSP指令简介 JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分. 在JSP 2.0规范中共定义了三个指令: pa ...
- javaee学习-JSP指令简介
JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分. 在JSP 2.0规范中共定义了三个指令: page指令 Inclu ...
- javaWeb学习总结(8)- jsp指令(3)
一.JSP指令简介 一.JSP指令简介 JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分. 在JSP 2.0规范中共定 ...
- JavaWeb学习 (十五)————JSP指令
一.JSP指令简介 JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分. 在JSP 2.0规范中共定义了三个指令: pa ...
- [03] JSP指令
1.概述 JSP指令用于"转换阶段"提供整个JSP页面的相关信息,影响由JSP页面生成的Servlet的整体结构.指令不会产生任何的输出到当前的输出流中. 指令的基本语法为: &l ...
- JSP指令(page include taglib)
JSP指令指示JSP转换器如何翻译JSP页面到Servlet:JSP指令用来设置整个JSP页面相关的属性,如网页编码方式.脚本语言等 JSP指令的格式: <%@ directive attrib ...
随机推荐
- python 定义变量
定义变量 什么是变量? 在程序运行过程中,其值可以改变的量 标识符(命令规范) 只能由数字.字母.下划线组成 不能以数字开头 不能是系统关键字 # 导入包import keyword# 打印所有关键 ...
- 关于catopen函数
关于catopen函数: 参考网址:http://pubs.opengroup.org/onlinepubs/009695399/functions/catopen.html 1)编辑消息文件 [ro ...
- this全面解析<转>
先搞明白一个很重要的概念 —— this的值是在执行的时候才能确认,定义的时候不能确认! 为什么呢 —— 因为this是执行上下文环境的一部分,而执行上下文需要在代码执行之前确定,而不是定义的时候. ...
- Linux操作系统的常用命令(一)
一.写随笔的原因:上次提到centos7.3安装mysql5.7的一些步骤,恰巧最近面试有碰到一些问LInux操作的常用操作的问题,想通过这篇文章MARK一下,不一定能够全,只是用的比较多的吧(lin ...
- wannacry分析--20199319
病毒概况 WannaCry病毒利用前阵子泄漏的方程式工具包中的"永恒之蓝"漏洞工具,进行网络端口扫描攻击,目标机器被成功攻陷后会从攻击机下载WannaCry病毒进行感染,并作为攻击 ...
- host文件介绍
默认位置为%SystemRoot%\system32\drivers\etc\,但也可以改变. 动态目录由注册表键\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSe ...
- ibatis与mybatis的区别
一.最主要的区别就是mybatis简化了编码的过程,不需要去写dao的实现类,直接写一个dao的借口,再写一个xml配置文件,整个mybatis就配置好了,也就是数据库就连接好了,然后再service ...
- Django学习系列15:把POST请求中的数据存入数据库
要修改针对首页中的POST请求的测试.希望视图把新添加的待办事项存入数据库,而不是直接传给响应. 为了测试这个操作,要在现有的测试方法test_can_save_a_post_request中添加3行 ...
- 交互式数据可视化-D3.js(三)比例尺
线性比例尺 线性比例尺是常用比例尺常用方法有: var linear = d3.scaleLinear() - 创建一个定量的线性比例尺. linear.domain([numbers]) - 定义或 ...
- tp5中的return
return 可以输出对象,但是不可以输出数组 class Index { public function index(Student $student) { $data = $student-> ...