• JSP的简介和生命周期


    Java知识点总结:想看的可以从这里进入

    6、JSP


    6.1、简介

    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网页,就好像在处理静态网页一样。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    JSP 本质是一个 Java 类,所以 jsp页面在转换成java类时,比如使用<%%>写的java代码会正常的转换,但是写的 html 标签等代码,会使用out.print(“”) 来输出。

    在这里插入图片描述

    6.2、生命周期

    JSP页面从创建到销毁的几个阶段:

    • 编译阶段:当浏览器请求 JSP 时,如果此JSP未被编译,则编译JSP,生成servlet类

      • 解析JSP文件。
      • 将JSP文件转为servlet。
      • 编译servlet。
    • 初始化阶段:加载与JSP对应的servlet类,创建其实例,并调用它的初始化方法

      • 容器载入JSP文件后,它会在为请求提供任何服务前调用jspInit()方法。

        public void jspInit(){
          // 初始化代码
        }
        
        • 1
        • 2
        • 3
    • 执行阶段:调用与JSP对应的servlet实例的服务方法

      • 描述了JSP生命周期中一切与请求相关的交互行为,直到被销毁。

      • 当JSP网页完成初始化后,JSP引擎将会调用_jspService()方法。

        void _jspService(HttpServletRequest request,HttpServletResponse response){
           // 服务端处理代码
        }
        
        • 1
        • 2
        • 3
    • 销毁阶段:调用与JSP对应的servlet实例的销毁方法,然后销毁servlet实例

      • 描述了当一个JSP网页从容器中被移除时所发生的一切。

        public void jspDestroy(){
           // 清理代码
        }
        
        • 1
        • 2
        • 3
  • 相关阅读:
    基于无人机倾斜摄影模型提取高精度地形DEM数据
    Vijos P1422 教主的难题 求调!
    python使用rabbitmq发送消息和接收消息数据
    上周热点回顾(1.15-1.21)
    为什么都说考完二建就要去准备一建,这几点你一定不知道!
    Excelize 开源基础库 2.8.0 版本正式发布
    牛顿迭代法(求解整数的近似平方根)
    63. 不同路径 II java解决
    消息队列基本原理和选型对比
    mysql、oracle、sqlsever使用不同案例
  • 原文地址:https://blog.csdn.net/yuandfeng/article/details/126751314