servlet在源码里面是一个一个的wapper对象
jsp本质就是一个servlet
jsp文件 继承HTTPJspBase ----->继承HTTPSerlvlet
底层做了一个拼接拼凑jsp文件,发送到客户端
tomcat具有解析java文件的能力
发起请求 使用servlet来进行拦截 区分拦截的是jsp还是html 服务器来解析编译
jsp什么时候生成servlet文件
jasper.jar 这个包来进行解析成java和class文件
ecj-.jar z这个包来编译运行jclass文件
tomcat中的jar包
jsp的内置对象 背下来
page就是jsp文件 对应的对象 就是一个对象
异常对象 exception (没啥用!)
applocation ServletContext 服务器上下文 当前环境
三种指令
、
page:
include:
包含
分为两种包含
第一个 静态包含: 合在一堆再生成java文件编译成class
第二个 动态包含: 分别生成java文件编译成class
taglib:
标签指令
跳转
转发和重定向 和sevlet一样
jsp不直接跳转到jsp 除非没有数据传递 基本不会跳转 毛用没有
还有一种 就跟转发一样的功能
属性作用域
pageContext
当前环境的上下文
只能在当前页面设置当前页面获取
request(较多)
在当前页面 或者 使用一次请求转发,在其他页面能拿到数据,非一次请求拿不到
session
当前页面能获取拿到数据 ,一次请求拿的到数据,非一次请求也拿的到
(浏览器不关就行)
application
服务器不关在哪都能拿到数据
(applicaton消耗内存原则能用最小的就用最最小的)
EL表达式
表达式语言 expression language
用于做输出的 简洁 避免空指针
${ } 这样来表示的
能输出什么?
只能输出以下四种:
用法:
输出指定范围的值:
如果有相同属性从小到大来找。
但是可以指定:
JSTL标签
(Jsp Standard Tag Libraty)
用处:为了尽量页面不写java代码 ,逻辑太复杂,不利于维护
标签库的使用
1.导包
jstl.jar 是一个规范
srtandard.jar 是一个实现
2.导入标签:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
调用逻辑:
标签其实本质还是会转化为java代码
要求掌握的标签:
if(){} else{}
<c:forEach > 循环
<fmt:formate> fomate标签 日期
<fmt:formateDate> fomateDate标签 日期格式化
自定义标签
分页查询:
准备一个pageBean