当前位置: 首页 > news >正文

jsp本质-servlet

jsp本质-servlet

一、jsp文件

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>JSP Example</title>
</head>
<body><h1>Hello, <%= "World" %></h1>
</body>
</html>

二、编译后

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import java.io.*;public final class index_jsp extends org.apache.jasper.runtime.HttpJspBaseimplements org.apache.jasper.runtime.JspSourceDependent, org.apache.jasper.runtime.JspSourceImports {// ... 省略了一些其他代码 ...public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)throws java.io.IOException, javax.servlet.ServletException {// ... 省略了生成的Servlet的实际执行逻辑 ...out.write("<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <meta charset=\"UTF-8\">\r\n    <title>JSP Example</title>\r\n</head>\r\n<body>\r\n    <h1>Hello, ");out.print( "World" );out.write("</h1>\r\n</body>\r\n</html>\r\n");// ... 省略了一些其他代码 ...}// ... 省略了一些其他方法 ...
}

这个示例中,你可以看到index.jsp页面最终会被编译成一个名为index_jsp的Servlet类。这个Servlet类继承自HttpJspBase,并实现了JspSourceDependentJspSourceImports接口。在_jspService方法中,你可以看到JSP页面中的HTML标记和嵌入的Java代码都被转化为了Java代码。

因此,尽管JSP看起来像是一种嵌套Java代码的HTML模板,实际上它会被编译成Servlet并在服务器端执行,因此JSP的本质就是Servlet。

http://www.lryc.cn/news/131531.html

相关文章:

  • 回归预测 | MATLAB实现GWO-SVM灰狼优化算法优化支持向量机多输入单输出回归预测(多指标,多图)
  • 科技资讯|苹果Vision Pro新专利曝光:可调节液态透镜
  • 神经网络基础-神经网络补充概念-38-归一化输入
  • 【Redis】什么是缓存雪崩,如何预防缓存雪崩?
  • [国产MCU]-W801开发实例-开发环境搭建
  • 区间预测 | MATLAB实现QRGRU门控循环单元分位数回归时间序列区间预测
  • 改善神经网络——优化算法(mini-batch、动量梯度下降法、Adam优化算法)
  • 大数据面试题:Spark的任务执行流程
  • 通过 Amazon SageMaker JumpStart 部署 Llama 2 快速构建专属 LLM 应用
  • ansible远程执行命令
  • Windows快速恢复丢失的颜色校准
  • Vue安装单文件组件
  • 小白的Node.js学习笔记大全---不定期更新
  • 第二周晨考自测(2.0)
  • 计算机视觉之三维重建(三)(单视图测量)
  • docker 批量快速删除容器和镜像
  • 【数据分析入门】Matplotlib
  • mongodb.使用自带命令工具导出导入数据
  • IndexError: tensors used as indices must be long, byte or bool tensors
  • 设计模式 : 单例模式笔记
  • 深度优先搜索算法
  • k8s ----POD控制器详解
  • ReactNative进阶(三十四):ipa Archive 阶段报错error: Multiple commands produce问题修复及思考
  • MySQL索引ES索引
  • webSocket 聊天室 node.js 版
  • iptables防火墙(SNAT与DNAT)
  • 第 359 场 LeetCode 周赛题解
  • 【开源项目】Stream-Query的入门使用和原理分析
  • 微信小程序picker组件的简单使用 单选
  • python、numpy、pytorch中的浅拷贝和深拷贝