jsp处理的两个阶段:
1.jsp页面转换阶段
页面被编译成java类,所有的html标签和jsp标签被处理,来生成一个servlet类,然而脚本和表达式不被执行。
2.请求处理阶段
当客户端请求服务器时,处于请求处理阶段;在该阶段脚本和表达式被执行
jsp脚本元素:
1.声明
格式:<%! code %>
逐字地插入到servlet类的定义体中,不在任何方法之内 // 全局
2.表达式
格式:<%= expression %>
求值并插入到servlet类的输出中
即产生类似out.print(expression)的语句
3.script(代码块)
格式:<% code %>
逐字地插入到servlet的_jspService方法中(由service调用)// 局部
jsp指令元素:
1.page指令
<%@ page ... %>
导入哪些类
定义网页依赖属性,比如脚本语言、error页面、缓存需求等等
import属性:
格式:<%@page import="com.amaker.bean.Person"%>
目的:在servlet定义的顶部生成导入语句
注意:尽管jsp页面可以放在服务器的任何位置,但是jsp使用的类必须放在常规的servlet目录中
contentType属性----内容类型
pageEncoding属性---页面编码
errorPage属性---指定当JSP页面发生异常时需要转向的错误处理页面
<%@ page errorPage="relative url"%>
isErrorPage属性---指定当前页面是否可以作为另一个JSP页面的错误处理页面
2.taglib标签
<%@ taglib ... %>
引入标签库的定义
3.include指令
格式:<%@ include file="文件相对 url 地址" %>
JSP可以通过include指令来包含其他文件。被包含的文件可以是JSP文件、HTML文件或文本文件。包含的文件就好像是该JSP文件的一部分,会被同时编译执行。
jsp内建对象
内建对象在使用前不需要实例化,所有的内建对象只能在代码块和表达式中使用
request:HttpServletRequest类的实例
response:HttpServletResponse类的实例
out:JspWriter类的实例,用于把结果输出至网页上
session:HttpSession类的实例
application:ServletContext类的实例,与应用上下文有关
config:ServletConfig类的实例
pageContext:PageContext类的实例,提供对JSP页面所有对象以及命名空间的访问
page:类似于Java类中的this关键字
Exception:Exception类的对象,代表发生错误的JSP页面中对应的异常对象
jsp标签
标签在jsp页面中被调用;标签对应一个java处理类,来处理标签逻辑;少写代码;
JSTL
JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。
目的:尽量减少在jsp中写java代码;增强代码的可重用性;提高开发速度。
EL
是一种简单的表达式语言;
能够访问变量、javabean的属性、集合、数组;
能够进行关系、逻辑运算;
能够访问内建对象;