一、 JSP简介
JSP是由Sun公司倡导、许多公司参与而建立的动态网页技术标准。它在HTML代码中嵌入java代码片段(Scriptlet)和JSP标签,构成了JSP网页。在接收到用户请求时,服务器会处理java代码片段,然后生成处理结果的HTML页面返回给客户端,客户端的浏览器将呈现最终页面效果。
二、JSP三大指令
- page指令
1、language属性
用于设置JSP页面使用的语言,目前只支持java语言,以后可能会支持其他语言,该属性默认值是java
2、extends属性
用于设置 JSP页面继承的 Java类,所有 JSP页面在执行之前都会被服务器解析成 Servlet,而 Servlet是由 Java类定义的,所以 JSP和 Servlet都可以继承指定的父类。该属性并不常用,而且有可能影响服务器的性能优化。
3、import 属性
用于设置 JSP导入的类包。JSP 页面可以嵌入 java代码片段,这些java代码在调用 API时需要导入相应的类包。
4、pageEncoding属性
用于定义 JSP页面的编码格式,也就是指的文件编码。 JSP页面中的所有代码都使用该属性指的的字符集,如果该数据值为ISO-8859-1,那么这个jsp页面就不支持中文字符。通常设置编码格式为 GBK 或 UTF-8
5、contentType属性
用于设置 JSP 页面的 MIME类型和字符编码,浏览去会据此显示网页内容。 - include指令
该指令用于文件包含。该指令可以在 JSP页面中包含另一个文件的内容,但是它仅仅支持静态包含,也就是说被包含文件中的所有内容都被原样包含到该 JSP 页面中;如果被包含文件中有代码,将不被执行。被包含的文件可以是一段java代码、HTML代码或者是另一个 jsp页面。 - taglib指令
该指令用于加载用户自定义标签,使用该指令加载后的标签可以直接在 JSP 页面中使用。
<%@ taglib prefix="view" uri="/WEB-INF/tags/view.tld">
三、jsp生命周期
- 编译阶段:Servelet容器编译Servelet源文件,生成Servelet类
- 初始化阶段:加载与JSP对应的Servelet类,创建其实例,并调用它的初始化方法
- 执行阶段:调用与JSP对应的Servelet实例的服务方法
- 销毁阶段:调用与JSP对应的Servelet实例的销毁方法,然后销毁Servelet实例
四、jsp作用域
- pageContext(页面域):pageContext有效范围仅限于当前页面 , 可以近似理解为this对象 , 在离开当前页面后 , 无论是request或redirect等方式离开的 , 当前页面的相关属性值都会丢失。
- request(请求域):request表示一次请求 , 它的有效范围是当前请求周期 . 所谓请求周期 , 就是从http发送请求 , 到服务器接收并处理请 , 将结果返回到客户端响应 . 在这一过程中 , 可能使用forward跳转了多个jsp页面 , 而在这多个jsp页面中属性值都有效. 但如果是通过redirect方式进行跳转 , 则重新发送请求 , 这样属性值就会丢失。
- session(会话域):session有效范围是当前会话。当前会话表示浏览器打开到浏览器关闭这一过程。但这会出现这种情况,如果浏览器一直处于打开状态,这样session永远不会销毁,而且在浏览器关闭时并不会通知服务器,另外session是存放在服务器的内存上,这样对服务器是一种负担,所以通过这种方法来判断:如果一段时间内客户端没有响应,则认为会话结束。
- application(应用域):application有效范围为整个应用,从应用开启到应用结束。在服务器停止之前,应用没有结束,application对象都有效,可以被所有会话共享。
五、jsp内置对象
对象 | 描述 |
---|---|
request | HttpServletRequest类的实例 |
response | HttpServletResponse类的实例 |
out | PrintWriter类的实例,用于把结果输出至网页上 |
session | HttpSession类的实例 |
application | ServletContext类的实例,与应用上下文有关 |
config | ServletConfig类的实例 |
pageContext | PageContext类的实例,提供对JSP页面所有对象以及命名空间的访问 |
page | 类似于Java类中的this关键字 |
Exception | Exception类的对象,代表发生错误的JSP页面中对应的异常对象 |
总结:
Looking forward to good day,grow more and more prosperous.