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")
这样的格式,输出到前端

浙公网安备 33010602011771号