我们之前的写法都是前端负责动态显示,后端负责数据处理,这其实是当今最流行的一种前后端分离写法,而早期的JSP并不是这样的,他会在前端中写入后端代码,已经是一种过时的写法,了解即可。(会导致前后端严重耦合。)
JSP其实更像是一种HTML创作模版,举个最简单的例子就是上面有一堆TextBox之类的,而我们输入完成后会返回给我们真正的HTML页面,有没有一种基于此JSP创作HTML的感觉。
我们的项目默认servlet是会打开index.jsp或者*.jsp页面的,我们先来看一下jsp文件长什么样子:
1 | <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> |
我们发现其中有一段java代码块:
1 | <%= "Hello World!"%> |
这里的=其实就是返回值,会把返回值填充在这里,如果我们把=去掉的话:
1 | <% System.out.print("Hello World") %> |
就是直接在这里运行java代码。这些代码在加载页面的时候会运行。
那么JSP文件的工作原理是什么呢?这其实是Tomcat服务器后端把jsp文件转换为了一个servlet文件,然后把每个标签都输出到了工作台,我们可以看下内部文件和流程图:
1 | public final class index_jsp extends org.apache.jasper.runtime.HttpJspBase //继承自HttpServlet |

这个其实反而不太需要在意,毕竟是过时的技术,了解下就好了,只需要知道Jsp本质还是Servlet就行。
说些什么吧!