JSP页面就是带有JSP元素的页面,由静态内容和动态内容构成。其中,静态内容指HTML元素,动态内容指JSP元素,包括脚本元素、指令元素、动作元素、注释等内容。
一、脚本元素
使用脚本元素可以将Java代码嵌入到JSP页面里,这些Java代码将出现在由JSP页面生成的Servelt中。脚本元素有三种:表达式、脚本和声明。
(1) 表达式:将动态内容显示在页面上
<%= expression%> 在将JSP页面转换成Servlet后,使用out.print()将expression的值输出。
注意:如果expression是调用一个方法的话,方法必须要有返回值。expression后面不能有分号。
(2) 脚本:定义局部变量、代码块
<% code%> 将脚本加入到Servlet类中的方法中
注意:每一条语句要以分号结束。
(3) 声明:定义Servlet类中的变量、方法
<%! code%> 将声明的变量加入到Servlet类(在任何方法之外)中,声明的方法加入到Servlet类中。
二、指令元素
指令元素主要用于为转换阶段提供JSP页面的相关信息。指令元素有三种:page、include、taglib。语法格式为:<%@ directive attr="value"%>,attr="value"可以有多个,用空格隔开。
(1) page:设置JSP页面的全局属性
语法格式:<%@ page attr="value"%>,attr="value"可以有多个,用空格隔开。与page相关的属性如下:
属性 | 描述 |
---|---|
buffer | 指定out对象使用缓冲区的大小,默认值“8KB” |
autoFlush | 指定out对象的缓冲区满时,是否自动刷新缓存,默认值“true” |
contentType | 指定JSP页面的MIME类型和字符编码 |
errorPage | 指定当JSP页面发生异常时需要转向的错误处理页面 |
isErrorPage | 指定JSP页面是否可以作为另一个JSP页面的错误处理页面,默认值“true” |
extends | 指定Servlet继承哪一个类 |
import | 导入要使用的Java类,import属性可以出现多次,其他属性只能出现一次。 |
info | 定义JSP页面的描述信息 |
isThreadSafe | 指定对JSP页面的访问是否为线程安全,默认值“true” |
language | 指定JSP页面所用的脚本语言,默认值“Java” |
session | 指定JSP页面是否使用session,默认值“true” |
isELIgnored | 指定是否忽略EL表达式,默认值“false” |
isScriptingEnabled | 确定脚本元素能否被使用,默认值“true” |
(2) include:在JSP页面中静态包含一个文件(JSP被转换成Servlet时引入一个文件)
语法格式:<%@ include file="filename(服务器端绝对路径)" %>
(3) taglib:引入核心标签库或EL函数库(JSTL)
语法格式:<%@ taglib prefix="前缀" uri=""与前缀相关的标签描述符地址"%>
三、动作元素
动作元素用于在JSP页面中提供业务逻辑功能,可以完成请求转发、动态包含文件、重用JavaBean组件等。动作元素和指令元素不同,动作元素是在客户端请求时动态执行的,每次客户端请求时,都可能被执行,而指令元素是在编译时被执行,且只会被执行一次。
(1)<jsp:forward>:在JSP页面中完成请求转发
<jsp:forward page="服务器端绝对路径"></jsp:forward>
<jsp:param name="参数名称" value="参数值"> </jsp:param> 放在<jsp:forward page>标签的标签体中。
(2)<jsp:include>:在JSP页面中动态包含一个文件(页面被请求时引入一个文件)
<jsp:include page="服务器端绝对路径"></jsp:include>
(3)<jsp:useBean>:在JSP页面中查找或实例化一个JavaBean组件
<jsp:useBean id = "BeanName" class="JavaBean完整类名(包名+类名)" scope="page/request/session/application"/>
<jsp:setProperty name="BeanName" property="属性名称" value="属性值"/>
(<jsp:setProperty name="BeanName" property="*"/> )
<jsp:getProperty name = "BeanName" property="属性名称"/>
(4)<jsp:plugin>:在浏览器中播放或显示一个对象
<jsp:plugin type="applet" codebase="/ch5" code="类名" height="xxx" width="xxx">
四、注释
<%--JSP注释 --%>