什么是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原理剖析的更多相关文章

  1. SpringMVC的url-pattern配置及原理剖析

    SpringMVC的url-pattern配置及原理剖析 xml里面配置标签: <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc./ ...

  2. CDN 工作原理剖析

    CDN 工作原理剖析 CDN / Content Delivery Network / 内容分发网络 https://www.cloudflare.com/zh-cn/learning/cdn/wha ...

  3. java web学习总结(十四) -------------------JSP原理

    一.什么是JSP? JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. JSP这门技术的最大的特点在于,写jsp就像在写h ...

  4. ASP.NET Core 运行原理剖析2:Startup 和 Middleware(中间件)

    ASP.NET Core 运行原理剖析2:Startup 和 Middleware(中间件) Startup Class 1.Startup Constructor(构造函数) 2.Configure ...

  5. ASP.NET Core 运行原理剖析1:初始化WebApp模版并运行

    ASP.NET Core 运行原理剖析1:初始化WebApp模版并运行 核心框架 ASP.NET Core APP 创建与运行 总结 之前两篇文章简析.NET Core 以及与 .NET Framew ...

  6. JavaWeb---总结(十四)JSP原理

    一.什么是JSP? JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. JSP这门技术的最大的特点在于,写jsp就像在写h ...

  7. JSP 原理

    参考文献:http://www.cnblogs.com/xdp-gacl/p/3764991.html 一.什么是JSP? JSP全称是Java Server Pages,它和servle技术一样,都 ...

  8. javaweb学习总结(十四)——JSP原理

    一.什么是JSP? JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. JSP这门技术的最大的特点在于,写jsp就像在写h ...

  9. java web 学习十四(JSP原理)

    一.什么是JSP? JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. JSP这门技术的最大的特点在于,写jsp就像在写h ...

随机推荐

  1. PowerShell随笔4---变量

    全局变量 输入$global:后按ctrl+space,我们就可以看到所有的全局变量. 比如我们可以查看PowerShell的版本: 我们可以在在编写脚本代码的时候使用这些变量,globle可以省略, ...

  2. dict与set -- Python

    dict(字典):用空间换取时间,占据空间大,但查询速度快,键值对(key:value),key唯一 d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} 由于一个k ...

  3. SpringBoot引入openfeign 报错:spring-cloud-starter-openfeign:unknown

    现象: 1.maven报错:Cannot resolve org.springframework.cloud:spring-cloud-starter-openfeign:unknown 解决: 在h ...

  4. 使VS开发的程序在Win7系统运行时自动提升权限

    软件开发时,总是会遇到在Win7系统上运行不起来或者异常的情况,这通常是用户的权限不够引起的. 下面提供一个可以使程序运行时,自动提升用户权限的方法. 1.右键点击启动项目,单击"属性&qu ...

  5. HTML5 drag & drop & H5 DnD

    HTML5 drag & drop H5 DnD https://html5demos.com/ demos https://html5demos.com/dnd-upload https:/ ...

  6. free useful skills videos courses & tutorials

    free useful skills videos courses & tutorials website video courses https://realpython.com/ http ...

  7. illustrating javascript prototype & prototype chain

    illustrating javascript prototype & prototype chain 图解 js 原型和原型链 proto & prototype func; // ...

  8. NGK全球启动大会圆满召开,一起预见区块链的美好未来!

    NGK Global全球启动大会在高新技术产业区硅谷于美国当地时间11月25日圆满召开!这次会议邀请了星盟高管.NGK全球各大市场领导人.NGK生态产业代表等上百位嘉宾出席,此次会议持续了一个多小时, ...

  9. 算法图解:Python笔记代码

    二分查找 选择排序 递归 快速排序 广度优先搜索 狄克斯特拉算法 贪婪算法 二分查找 def binary_search(lst,item): low = 0 high = len(lst)-1 wh ...

  10. 从微信小程序到鸿蒙js开发【15】——JS调用Java

    鸿蒙入门指南,小白速来!0基础学习路线分享,高效学习方法,重点答疑解惑--->[课程入口] 目录:1.新建一个Service Ability2.完善代码逻辑3.JS端远程调用4.<从微信小 ...