jsp:java server page
jsp页面要被WEB容器翻译成Java类,按照servlet规范,所有jsp翻译生成的类,必须实现HTTPJSPPage接口。而HTTPJSPPage是servlet的子接口。也就意味着所有jsp翻译生成的类也会实现servlet。所以,从这个意义上说,jsp本质是servlet。jsp重在于页面显示,而servlet重在于逻辑处理。
jsp引擎:
jsp引擎是web容器编写的类,负责将jsp页面翻译成Java类。
jsp生命周期:
由jsp引擎将jsp页面翻译成Java代码
将Java代码编译成Class字节码文件
加载到容器
由容器实例化成对象
初始化阶段相关的方法是JSPInit
请求到达后,调用服务器阶段的相关方法是 _jspService()
销毁阶段向的方法是jspDestroy()
Jsp的语法和意义:
Jsp网页主要由元素和摸板数据组成
1.模板数据是jsp的静态部分
2.Web容器不处理
3.元素则是必须经由web容器解释
4.元素都是以xml做语法基础,并且大小写一致
Web容器不支持的两种语法:
1.普通格式和XML兼容格式
2.普通jsp语法是设计给开发者使用的
3.XML兼容jsp语法是设计用来容易被开发工具使用的
Jsp注释:
1.jsp注释:<%– 这里是jsp注释 –%>容器不翻译,只在源代码中可见,最为安全;
2.html注释: 不安全,服务器会将注释输出到客户端,客户端和服务器均可见,最不安全;
3.注释://这里是java注释;/* 这里是java注释*/ 给java代码书写的注释,只在服务器端可见
jsp脚本元素:
声明
<%! %>定义jsp类的成员变量、静态变量和方法
脚本
局部变量<% %> 丰富_JSPService方法,在脚本中定义的变量,全部是_JSPService的。
表达式
<%= “aaa” %>丰富_jspservice方法,相当于out.print()向页面输出内容;表达式后面不能加;
jsp隐式对象 :
jsp引擎翻译的jsp类当中,在_JSPService()中会定义九个变量,并将这些变量做初始化。由于脚本和表达式是在丰富_JSPService()方法。所以可以直接使用这些变量。这些变量称为jsp隐式对象。
jsp隐式对象有九个:
page:当前对象
config:配置对象
exeception:异常对象
pageContext:只在当前jsp页面有效
response:响应对象
request:作用于请求
out:打印输出流
session:作用与会话
application:作用于全局
在JSP中,有三种类型的指令
page指令为当前页面提供处理指令
include指令用于把另一个文件包含在JSP中
taglib指令指定如何包含和访问自定义标签库
页面指令的功能是设定整个JSP页面的属性和相关功能
page指令:
contentType:设置MIME类型和编码集
pageEncoding:设置编码集,MIME类型默认为text/html;
import:导入该jsp类所用到的类。如果需要导入多各类,中间以逗号分开。
session:默认为true。表示访问该jsp页面时,产生会话对象。
errorPage:表示当前jsp页面如果抛出了运行异常,则跳转指定出错页面。
isErrorPage:表示该jsp页面为出错处理页面。定义了exception隐式对象,接收异常对象。
静态包含
<%include file=…%>叫做指令包含,也叫静态包含。在编译时发生。将本身jsp和包含的jsp放在一起编译,形成一个class文件。所以两个页面不能存在同名变量,指令包含也只能包含文件。
动作包含
< jsp:include page =”my.jsp”>叫做动作包含,在请求时发生。本身jsp包含的是另一个jsp执行的结果。形成两个class文件。所以两个页面可以存在同名变量。动作包含可以包含文件,也可以包含servlet输出结果。同时可以传递参数。