JSP,全称是Java Server Page,是运行在服务器端的页面,是建立在Servlet规范的动态网页技术,JSP文件在第一次请求时,会被编译成Servlet,所以JSP也可以看成是运行中的Servlet。JSP中HTML元素嵌入Java脚本和JSP标记。本文简单记录了JSP字面量、JSP指令、JSP脚本、JSP隐含对象及其作用范围几个点的内容。
JSP字面量类型
- 布尔值(boolean)
- 整型(int)
- 浮点型(float)
- 字符串(String)
- Null:null
指令
JSP指令元素主要用于JSP转换为Servlet,用来设置与整个JSP页面相关的属性。提供整个JSP页面相关信息,不会产生输出JSP指令元素包括page、include、taglib。语法格式为<%@ directive attribute="value" %>
page定义网页依赖属性,比如脚本语言、error页面、缓存需求。一个JSP页面可以包含多个page指令,语法格式为
<%@ page attribute="value %">
include包含其他文件,被包含的文件可以是JSP文件、HTML文件或文本文件,语法格式为
<%@ include file="文件相对url地址">
taglib引入一个自定义标签集合的定义,包括库路径、自定义标签。语法格式为
<%@ taglib uri="标签库的位置" prefix="标签库的前缀">
脚本程序
脚本程序包括声明,表达式和脚本段
JSP声明:一个声明语句可以声明一个或多个变量、方法,在JSP文件中,必须先声明变量和方法才能使用,语法格式为
<%! 声明语句%>
JSP表达式:
一个JSP表达式的元素可以包含符合Java语言规范的表达式,语法格式为<%= 表达式 >
JSP脚本段:
脚本段可以包含任意的Java语句、变量、方法和表达式,语法格式为<% 代码片段 %>
JSP隐含对象
JSP隐式对象是JSP容器为每个页面提供的Java对象,开发者可以直接使用它们而不用显式声明。JSP隐式对象也被称为预定义变量。以下是JSP所支持的九大隐式对象
对象 | 描述 | 作用 |
---|---|---|
request | HttpServletRequest类的实例 | 封装客户端的请求信息 |
response | HttpServletResponse类的实例 | 包含了响应客户端请求的有关信息 |
session | HttpSession类的实例 | 会话是根据客户的请求自动生成的,即使没有引入会话时也会有一个新的会话可用 |
application | ServletContext类的实例 | 与应用上下文有关实现了所有用户间数据的共享,可存放全局变量 |
config | ServletConfig类的实例 | |
pageContext | PageContext类的实例 | 提供对JSP页面所有对象以及命名空间的访问 |
page | 类似于Java类中的this关键字 | |
out | PrintWriter类的实例 | 用于把结果输出至网页上 |
Exception | Exception类的对象 | 代表发生错误的JSP页面中对应的异常对象 |
对象的作用范围
page范围:作用域仅限于当前页面对象,可以理解为Java的this对象,离开当前JSP页面,所有属性值将会丢失。
request范围:作用域在同一请求之内,如果通过forword方式跳转页面,属性值保留。如果通过redirect方式跳转,相当于重新发出请求,属性值丢失
session范围:作用域在一个会话的生命周期
application范围:作用域为整个web运行期可用,为所有会话共享