JSP是Java Servlet Pages,java服务器端的页面,类似于html,用于动态web页面的显示和渲染。它相对于html来说,增加了嵌入java代码的功能,直接为用户提供了动态数据的获取,实现Java web应用程序的用户界面部分。它通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP。
JSP文件格式:***.jsp,jsp页面的访问流程:
- 浏览器发送一个 HTTP 请求给服务器。
- Web 服务器识别出这是一个对 JSP 网页的请求,并且将该请求传递给 JSP 引擎。通过使用 URL或者 .jsp 文件来完成。
- JSP 引擎从磁盘中载入 JSP 文件,然后将它们转化为 Servlet。
- JSP 引擎将 Servlet 编译成可执行的java类,并且将原始请求传递给 Servlet 引擎。
- Web 服务器调用 Servlet 引擎,然后载入并执行 Servlet 类。在执行过程中,Servlet 产生 HTML 格式的输出并将其内嵌于 HTTP response 中上交给 Web 服务器。
- Web 服务器以静态 HTML 网页的形式将 HTTP response 返回到您的浏览器中。
- 最终,Web 浏览器处理 HTTP response 中动态产生的HTML网页,就好像在处理静态网页一样。
JSP 本质是一个 Java 类,所以 jsp页面在转换成java类时,比如使用<%%>写的java代码会正常的转换,但是写的 html 标签等代码,会使用out.print(“”) 来输出。
JSP页面从创建到销毁的几个阶段:
编译阶段:当浏览器请求 JSP 时,如果此JSP未被编译,则编译JSP,生成servlet类
初始化阶段:加载与JSP对应的servlet类,创建其实例,并调用它的初始化方法
容器载入JSP文件后,它会在为请求提供任何服务前调用jspInit()方法。
public void jspInit(){
// 初始化代码
}
执行阶段:调用与JSP对应的servlet实例的服务方法
描述了JSP生命周期中一切与请求相关的交互行为,直到被销毁。
当JSP网页完成初始化后,JSP引擎将会调用_jspService()方法。
void _jspService(HttpServletRequest request,HttpServletResponse response){
// 服务端处理代码
}
销毁阶段:调用与JSP对应的servlet实例的销毁方法,然后销毁servlet实例
描述了当一个JSP网页从容器中被移除时所发生的一切。
public void jspDestroy(){
// 清理代码
}