1.jsp指令
page指令:
<%@ page contentType="页面的内容类型和编码"
import="要导入的java类"
isELIgnored="是否忽略EL表达式的处理"
errorPage="出现错误时,要跳转的页面"
isErrorPage="用在错误页面上,取值为true表示是错误页面,这时候才能在页面中使用exception变量"
%>
exception只能配合jsp表达式和jsp脚本使用
taglib指令:
作用是导入标签库
<%@ taglib prefix="前缀" uri="标签的唯一标识" %>
include指令:
作用,重用页面上的一些标签和代码
<%@ include file="另一个jsp页面" %>
2.jsp的脚本
```
<%
任意java代码
%>
```
jsp的弊端在于当代码越来越多时,使用jsp脚本的方式,会造成项目代码难以维护
现在绝大多数公司都禁止在jsp出现脚本代码
3.jsp表达式
```
<%= 表达式 %>
```
作用是向页面显示值, 表达式不能以`;`结束
4.jsp声明
```
<%!
可以声明变量和方法
%>
```
jsp的原理:
jsp 要工作,也必须编译为java类
public class 类名 extends HttpJspBase{ // HttpJspBase 又是继承了HttpServlet
public int i = 100;
public int sum(int a, int b) {
return a+b;
}
public void _jspService(HttpServletRequest request,
HttpServletResponse response) {
int i = 10;
out.println(i++);
}
}
1) 当首次访问此jsp时,tomcat会把jsp转译为*.java的类(间接继承自HttpServlet)
2) 再把*.java类编译为*.class字节码
3) 把加载到虚拟机执行,生命周期类似于servlet的生命周期
jsp的本质仍是一个servlet
5.jsp的9大隐式对象
无需声明即可使用。
request 代表请求对象(可以获取请求参数,将变量存入request作用域)
response 代表响应对象(返回响应)
out 代表响应的字符输出流
pageContext 页面上下文对象,可以间接获得request等对象,并可以将变量存入page作用域
config jsp的配置信息
page 当前jsp对象(this)
exception 代表的是异常信息(当页面isErrorPage="true"时有效)
session 变量作用范围是一次会话内有效
application 变量作用范围是整个应用程序有效
作用域:
page作用域: 变量作用范围仅限于当前页面
request作用域: 变量的作用范围在一次请求内有效
session作用域: 变量作用范围是一次会话内有效
application作用域: 变量作用范围是整个应用程序有效
5.jsp forward 6.jsp 两个页面使用的是同一个请求
servlet forward x.jsp servlet与jsp使用的是同一个请求