JSP原理剖析
什么是JSP
JSP长得和html没有区别,但是服务器会把jsp转换为servlet类
JSP(Java Server Page)Java服务器端页面,和Servlet一样,用于动态Web

在jsp之前,servlet用out一条一条的写页面,有参数就拼在页面后面

JSP最大的特点,写jsp就像写html
JSP与Html的区别
- HTML只给用户提供静态数据
- JSP页面中可以嵌入Java代码,为用户提供动态数据
JSP原理
jsp运行后再target目录里面有生成的东西,发现jsp页面没有变化,说明

发现页面转换成为java程序

浏览器向服务器发送请求,不管访问什么资源,其实都是在访问servlet,
JSP最终也会转换为Java类
JSP本质是一个servlet

看生成JSP源码,可以看到内置了一些对象,这些对象可以直接使用


用${ }可以去到参数,例如
${sessionScope}
用 <% %>就可以写java对象,例如
<% out.print(3/1); %>

演示代码

查看tomcat通过JSP生成servlet
使用everything得知我的tomcat在以下位置

打开C:\Users\11507\AppData\Local\JetBrains\IntelliJIdea2020.2\tomcat发现有以下文件

发现我运行tomcat的文件都在这里,打开我jsptest项目,发现有运行以下的jsp

没有我写的用于测试的hello.jsp
当我访问页面http://localhost:8080/hello.jsp,发现多了一个hello.java和hello.class

页面有以下输出

JSP生成Servlet代码分析
打开hello.java代码,发现


对比我写的测试代码,发现jsp就是把html代码拼成java代码,拼好的代码继承serlvet,是一个servlet。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body> <%-- 我们课以在jsp里面定义java代码 --%>
<% String name = "nzhao"; %> hello<%=name%> </body>
</html>
在Jsp页面;
只要是Java代码就会原封不动的输出,
如果是html代码,就会转义为
out.write("<html>\r\n")
这样的格式,输出到前端
JSP原理剖析的更多相关文章
- SpringMVC的url-pattern配置及原理剖析
SpringMVC的url-pattern配置及原理剖析 xml里面配置标签: <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc./ ...
- CDN 工作原理剖析
CDN 工作原理剖析 CDN / Content Delivery Network / 内容分发网络 https://www.cloudflare.com/zh-cn/learning/cdn/wha ...
- java web学习总结(十四) -------------------JSP原理
一.什么是JSP? JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. JSP这门技术的最大的特点在于,写jsp就像在写h ...
- ASP.NET Core 运行原理剖析2:Startup 和 Middleware(中间件)
ASP.NET Core 运行原理剖析2:Startup 和 Middleware(中间件) Startup Class 1.Startup Constructor(构造函数) 2.Configure ...
- ASP.NET Core 运行原理剖析1:初始化WebApp模版并运行
ASP.NET Core 运行原理剖析1:初始化WebApp模版并运行 核心框架 ASP.NET Core APP 创建与运行 总结 之前两篇文章简析.NET Core 以及与 .NET Framew ...
- JavaWeb---总结(十四)JSP原理
一.什么是JSP? JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. JSP这门技术的最大的特点在于,写jsp就像在写h ...
- JSP 原理
参考文献:http://www.cnblogs.com/xdp-gacl/p/3764991.html 一.什么是JSP? JSP全称是Java Server Pages,它和servle技术一样,都 ...
- javaweb学习总结(十四)——JSP原理
一.什么是JSP? JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. JSP这门技术的最大的特点在于,写jsp就像在写h ...
- java web 学习十四(JSP原理)
一.什么是JSP? JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. JSP这门技术的最大的特点在于,写jsp就像在写h ...
随机推荐
- k8s二进制部署 - 总结
镜像仓库: 安装软件:docker.docker-compose.harbor.nginx 1.下载cfssl.cfssljson.cfssl-certinfo,增加执行权限并放在PATH环境变量路径 ...
- 高并发之ReentrantLock、CountDownLatch、CyclicBarrier
本系列研究总结高并发下的几种同步锁的使用以及之间的区别,分别是:ReentrantLock.CountDownLatch.CyclicBarrier.Phaser.ReadWriteLock.Stam ...
- MongoDB Up and Going
# MongoDB Up and Going https://ide.c9.io/xgqfrms/mongodb # MongoDB 教程 https://www.runoob.com/mongodb ...
- css ::selection 选择文本改变样式
.p1::selection{ background: red; color: #fff; }
- 开发Microsoft Teams选项卡应用安全注意事项
我们都知道,为了方便广大的开发人员快速开发Microsoft Teams选项卡应用,微软提供了一个JS SDK,你可以通过这里 https://docs.microsoft.com/en-us/jav ...
- now-go时间百宝箱
golang不像C#,Java这种高级语言,有丰富的语法糖供开发者很方便的调用.所以这便催生出很多的开源组件,通过使用这些第三方组件能够帮助我们在开发过程中少踩很多的坑. 时间处理是所有语言都要面对的 ...
- Jmeter beanshell编程实例
1.引言 BeanShell是一种小型的,免费的,可嵌入的符合Java语法规范的源代码解释器,具有对象脚本语言特性. 在Jmeter实践中,由于BeanShell组件较高的自由度,通常被用来处理较为复 ...
- Information:java: javacTask: 源发行版 8 需要目标发行版 1.8
原文链接:https://blog.csdn.net/idiot_qi/article/details/105149846 创建新maven项目跑main,出现这个编译异常 网上找了找,记录一下以备不 ...
- Oracle check TBS usage
select d.tablespace_name, space||'M' "SUM_SPACE(M")", blocks "SUM_BLOCKS", ...
- Redis操作指南
目录 Redis安装与使用教程 一.Redis介绍 1.redis安装 2.redis与mysql的异同 3.redis与memcache的异同 二.Redis操作 1.启动服务 2.密码管理 3.连 ...