JSP

jsp
全称
java server page
jsp页面要被web容器翻译成java 类按照servlet规范,所有jsp翻译生成的类,必须实现HttpJspPage接口。而HttpJspPage是Servlet的子接口。也就意味着jsp翻译生成类也会实现servlet。所以,从这个意义上说,jsp本质是servlet.jsp重在于页面的显示,而servlet重在于逻辑处理
jsp引擎
web容器编译的一个类,负责将jsp页面翻译成java类。在web容器下/conf/web.xml 中进行啊注册
jsp生命周期
由JSP引擎将JSP页面翻译成JAVA代码
JAVA代码翻译成CLASS字节码
加载到容器
有容器实例化对象
初始化阶段相关的方法是jspInti()
请求到达,调用服务阶段的相关的方法_jspService
销毁阶段相关的方法是jspDestroy()
jsp语法和定义
jsp网页主要由元素和模板数据两个部分组成
模板数据时JSP的静态部分,WEB容器不处理
元素则是必须经由WEB容器解释
元素都是以XML作为语法基础,并且大小写要一致
WEB容器支持两种不同的格式JSP语法
普通格式和XML兼容格式
普通JSP语法是设计给开发者用的
XML兼容JSP时设计来给开发者用的
JSP脚本元素
声明
<%! %>定义jsp类的 成员变量,静态方法和方法
脚本
<% %>
丰富_JSPServlet(),在脚本中定义的变量,全部是_jspServlet()的 局部变量
表达式
丰富_jspServlet(),相当于out,print()向叶面输出内容.注意,后面不能加;号
注释
<%-- --%>
容器不翻译,只在源代码中可见,最安全
html注释
<!-- -->
html会通过out.print输出到 客户端,客户端服务器均可见,最不安全
java注释
// /*  */
给java代码书写的注释,只用于服务器端可见
jsp隐式对象
jsp引擎翻译的jsp中,在_jspService()中会定义九个变量,并将这些变量做初始化,由于脚本和表达式时在丰富_jspService()方法所以可以直接使用这些变量,这些变量称为隐式对象
九个隐式对象
四个作用域
pageContex
只在当前作用jsp页面有效
request
作用于请求
session
作用于会话
默认true 表示访问该jsp页面时,产生会话对象
application
作用于全局
两个输出
response
响应对象
out
打印输出流
当前对象
page
contentType:设置MIME类型和编码集
pageEncodiong:设置编码集,MIME类型默认为text/html
import:导入jsp类中所有的包
配置对象
config
异常对象
exception
errorPage 表示当前页面如果抛出了jsp运行异常,则跳转指定出错页面
isErrorPage:表示jsp页面出错处理页面.定义了exception隐式对象,接收异常对象
静态包含
<%@include file="">叫做指令包含,页脚静态编译.在编译时发生,将本身jsp和包含的jsp一起编译,形成一个class文件.所以两个页面不能存在同名变量,指令包含也只能包含文件
动作包含]
<jsp:include page="">在请求时发生.本身jsp包含的是另一个jsp执行结果.形成两个class文件.所以两个页面存在同名变量,<jsp:forward page="url">执行动作,由一个jsp页面转发到另一个jsp页面
el表达式
${键名}
作用域
先从小作用域中查找,如果该键中有对应的值就出,忽略其他作用域.如果小作用域没有该键
,那么再去大作用域中查找
可通过作用域指定绑定对象.${sessionScope.aaa} 表示在session会话范围中查找,如果没有找到,也不回去其他作用域查找
支持运算
通过作用域取出对象时,时调用了get方法完成.所以就算该实体类没有属性,但是提供了get方法,同样可以通过el表达式取出属性值.另外,实体类的属性前两个字母都不能大写
过滤器
一个中间组件,用于拦截数据和目的数据之间的消息
在<filter-mapping>标签中的<url-pattern>标签中,可以加入<url-pattern>标签,表示请求路径进行过滤,也可以加入<servlet-name>标签,表示针对某个指定名称的路径过滤
四种类型
request
表示直接请求,按请求路径.默认方式
forward
表示通过内部转发到达目标资源之前进行过滤
include
表示包含指定资源时,进行过绿滤
error
表示发生异常时进行过滤
过滤器链
当一个请求到达目标资源时,可能会经过多个过滤器.这就形成了过滤器链.过滤器<servlset-name>.如果一个请求经过多个<url-pattern>那么就按注解方式执行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值