指令标示
指令标示在服务器解释并执行,在客户端不可见。使用指令标示可以按照指令的设置执行动作和设置整个JSP页面范围内有效的属性
<%@ 指令名称 属性1="属性值" 属性2="属性值" ... %>
指令名称有
- page
page指令除了import属性,其他只能在指令中出现一次。
- language="java"
- contentType="mimeType;charset=CHARSET"
- import="java.util.Date,java.util.*" 多个包使用 , 隔开
......
- include
在使用指令的位置嵌入其他文件(比如另一个jsp文件)
- file="文件绝对路径或相对路径"
文件的路径不支持任何表达式,只能使用确定的路径。如果以 /
开头说明是绝对路径,否则是相对路径
-
taglib
使用基本标识或自定义标识完成特殊功能<%@ taglib uri="tagURI" prefix="tagPrefix" %>
- uri属性描述了标签描述符,它是对标签描述文件(*.tld)的映射.
- prefix属性指定了一个在页面中使用有uri属性指定的标签库的前缀,不能为jsp、jspx...
脚本标识
包括声明标识、JSP表达式和脚本程序
- JSP表达式
<%=变量或有返回值的方法或Java表达式>
下面这个例子输出name的值
<%String name="dad"; %>
<%=name%>
在转换为servlet过程中会转换为out.print(),值得注意的是表达式中不能有分号
- 声明标识
在JSP页面中声明变量或方法,类似与在类中定义变量和方法
<%! 变量声明或方法的代码 %>
- 脚本程序
在脚本程序中可以定义变量、调用方法和进行各种表达式运算,这里定义的变量是局部变量每行语句后都要有分号
注释
HTML注释中仍然可以插入JSP表达式、声明标识、脚本程序。在HTML源代码可见
- 隐藏注释
<%--注释内容--%>
只在服务器端可见,其内部不能插入表达式等 - 脚本程序中的注释
和Java中的注释相同
动作标识
<动作标识名称 属性1="值1" 属性2="值2" />
或
<动作标识名称 属性1="值1" 属性2="值2" >
<子动作 属性1="值1" 属性2="值2" />
</动作标识名称>
用来实现特殊功能,如请求转发,在当前页面包含其他文件,在页面中创建一个JavaBean实例等。
常见表示动作有
- <jsp:include>
- <jsp:forward>
- <jsp:param>
- <jsp:useBean>
- <jsp:setProperty>
- <jsp:getProperty>
- <jsp:fallback>
- <jsp:plugin>
-
<jsp:include>
对应于当前的页面包含其他的文件
<jsp:include page="被包含文件的路径" flush="true|false" />
还可以向被包含的动态页面传递参数<jsp:include page="被包含文件的路径" flush="true|false"> <jsp:param name="参数名称",value="参数值" /> </jsp:include>
- page指出被包含页面的路径,可以使用表达式
- flush表示缓冲区满时是否刷新缓冲区
<jsp:include>和includez的指令的区别:
使用include,被包含文件被原封不动的插入。JSP再进行翻译,只生成一个文件。使用<jsp:forward>,程序将请求转发到被包含的页面,并将执行结果输出到浏览器,会生成两个文件。
include若改变了被包含文件就要被重新编译,而<jsp:forward>本来就是两个文件。