JSP原理剖析

什么是JSP

JSP长得和html没有区别,但是服务器会把jsp转换为servlet类

 

JSP(Java Server Page)Java服务器端页面,和Servlet一样,用于动态Web

image.png

 

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

image.png

 

JSP最大的特点,写jsp就像写html

 

JSP与Html的区别

  • HTML只给用户提供静态数据
  • JSP页面中可以嵌入Java代码,为用户提供动态数据

 

JSP原理

jsp运行后再target目录里面有生成的东西,发现jsp页面没有变化,说明

 

image.png

发现页面转换成为java程序

image.png

浏览器向服务器发送请求,不管访问什么资源,其实都是在访问servlet,

 

JSP最终也会转换为Java类

JSP本质是一个servlet

image.png

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

image.png

image.png

${ }可以去到参数,例如

${sessionScope}

<% %>就可以写java对象,例如

<% out.print(3/1); %>

image.png

演示代码

image.png

 

查看tomcat通过JSP生成servlet

使用everything得知我的tomcat在以下位置

image.png

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

image.png

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

image.png

没有我写的用于测试的hello.jsp

当我访问页面http://localhost:8080/hello.jsp,发现多了一个hello.java和hello.class

image.png

页面有以下输出

image.png

JSP生成Servlet代码分析

打开hello.java代码,发现

image.png

image.png

对比我写的测试代码,发现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")

这样的格式,输出到前端

posted @ 2020-11-27 11:07  realize00  阅读(28)  评论(0)    收藏  举报