JSP是个啥呢?JSP全称Java Server Page,直译就是“运行在服务器端的页面”。我们可以直接在JSP文件里写HTML代码,使用上把它当做HTML文件。而且JSP中HTML/CSS/JS等的写法和HTML文件中的写法是一模一样的。但它毕竟不是HTML,而且本质差了十万八千里。因为我们还可以把Java代码内嵌在JSP页面中,很方便地把动态数据渲染成静态页面。这一点,HTML打死都做不到。

当有人请求JSP时,服务器内部会经历一次动态资源(JSP)到静态资源(HTML)的转化,服务器会自动帮我们把JSP中的HTML片段和数据拼接成静态资源响应给浏览器。也就是说JSP是运行在服务器端,但最终发给客户端的都已经是转换好的HTML静态页面(在响应体里)。即:JSP = HTML + Java片段(各种标签本质上还是Java片段)

但所谓的“JSP和HTML相似”只是JSP给我们的表面印象。我们还要继续往下挖一挖。实际上,JSP和HTML差远了。JSP本质是一个Java类(Servlet),是在服务器混的,只不过它输出结果是HTML。在揭开JSP真身之前,我们先来复习一下什么是Servlet。
Servlet是什么?一个Java类,运行在Servlet容器中(Tomcat),负责接收请求,接着调用Service处理数据,最后负责响应数据。