JSP概述

本文深入解析了Servlet和JSP的生命周期,包括类的加载、实例化、初始化、服务提供及销毁过程。同时,详细介绍了JSP的编译、翻译、加载、执行流程,以及JSP文件的构成要素如HTML、CSS、JavaScript、指令、声明、表达式等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Servlet 生命周期

加载类
1、创建实例 : 构造方法
2、初始化 : init( ServletConfig )
3、提供服务 : service( ServletRequest , ServletResposne )
4、销毁 : destory()
卸载类

JSP 本质就是 Servlet

JSP生命周期

1、将 .jsp 文件 “翻译” 成 .java ( 由 JSP 源码 转换成 相应的 Servlet 源码 ( Tomcat ) )
index.jsp ----> index_jsp.java

2、将 .java 文件编译成 .class 文件 ( 编译 转换好的 Servlet ( Tomcat ) )
index_jsp.java ----> index_jsp.class

3、加载 Servlet 类 ( jsp 对应的 Servlet 类 )
4、创建实例: 容器 调用构造方法
5、初始化: init --> _jspInit()
6、提供服务: service --> _jspService
7、销毁: destory —> _jspDestory()
8、卸载 Servlet 类

JSP内置对象:

  • request : HttpServletRequest 、response : HttpServletResponse

  • pageContext : PageContext

  • session : HttpSession

  • application : ServletContext

  • config : ServletConfig

  • out : JspWriter ( JspWriter 类 直接继承 java.io.Writer 类 )

  • page : Object [ final java.lang.Object page = this ; ]

  • exception : Throwable

Eclipse :
mytomcat —> C:/mytomcat/work/Catalina/localhost/jsp

  org/apache/jsp/index_jsp.java
JSP 文件的构成:

1、HTML
2、CSS
3、JavaScript

4、JSP指令 ( directive ) : 由JSP程序员向JSP容器下达的命令

   <%@   指令名称    属性名称="属性值"      属性名称="属性值"  ..........  %>
   <%@   page  language="java"   contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8"   %>

   一个指令可以多次使用:
   <%@   page  language="java" %>
   <%@   page  pageEncoding="UTF-8"   %>
   <%@   page  contentType="text/html; charset=UTF-8" %>

   JSP中有三个指令: page 、taglib 、include 

5、JSP声明 ( declaration ) : 用于在 JSP 对应的 Servlet 类中声明 字段(属性) 和 方法

    <%!  声明字段 或 方法 ; %>

    声明字段:
    <%!  public String name = "张丽霞" ; %>

    声明方法:
    <%!  public void show(){  
                System.out.println( this.name ) ;  
            } 
     %>

6、JSP表达式 ( expression ) : 用于 统计 某个 表达式 的计算结果 ,并将这个结果 输出 或 赋值

    <%=  表达式  %>

    比如:
    <%= 250 *2+ 100  %>
    <%= request.getContextPath()  %>

7、JSP注释 : 仅仅存在于 JSP 文件中的注释 ( 由 .jsp 翻译后的 .java 中都没有这部分内容 )

    <%-- 注释内容 --%>

8、JSP脚本 ( scriptlet ) : 用来在JSP文件上嵌入Java代码

     <%  Java 代码片段    %>

     这个代码是 _jspService 方法内部的一部分代码

思考题
既然 JSP 本质是个 Servlet , 那么这个 Servlet 什么时候注册给 Tomcat 的 ?

既然 JSP 本质是个 Servlet , 那么这个 Servlet 对应的 url-pattern 是什么 ?

如果新创建一个 JSP 文件 或 修改某个JSP文件,是否需要 重新 “翻译” 、编译、加载 ?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值