Jsp原理


一、Jsp本质

JSP 本质上就是一个 Servlet
JSP 在被访问时,由JSP容器(Tomcat)将其转换为 Java文件(Servlet),在由JSP容器(Tomcat)将其编译,最终对外提供服务的其实就是这个字节码文件(第一次访问时才会进行编译)

<%--
  Created by IntelliJ IDEA.
  User: hebinyang
  Date: 2022/11/14
  Time: 9:21 上午
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>01_hello_Jsp</title>
</head>
<body>
    <h1>html代码</h1>
    <%
        out.println("java代码");
    %>
</body>
</html>

1.当Tomcat启动的时候,会看到一个CATALINA_BASE的目录
在这里插入图片描述
2.进入这个目录找到work目录下面对应的模块名称,可以看到Tomcat把jsp页面转换后的java文件。
在这里插入图片描述

注:需要访问一次Jsp页面之后这个目录才会生成。

3.这里可以看到转换后的java文件继承了HttpJspBase
在这里插入图片描述
4.这时候就可以看Tomcat的源码HttpJspBase文件,这里可以看见HttpJspBase继承了HttpServlet,说明HttpJspBase就是一个Servlet,jsp转换后的java也是一个Servlet。
在这里插入图片描述
在这里插入图片描述
5.查看子类重写的_jspService方法就可以看到Jsp页面的结构,是通过一个输出流向页面输出的。
在这里插入图片描述

二、Jsp脚本

2.1 <%…%>:内容会直接放到_jspService()方法之中

相当于局部变量定义
在这里插入图片描述

2.2 <%=…%>:内容会放到out.print()中,作为out.print()的参数

相当于输出局部变量
在这里插入图片描述

2.3 <%!…%>:内容会放到_jspService()方法之外,被类直接包含

相当于定义成员变量和方法
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值