JSP 简介和本质

什么是 jsp,它有什么用?

jsp 的全换是 java server pages。Java 的服务器页面。
jsp 的主要作用是代替 Servlet 程序回传 html 页面的数据。
因为 Servlet 程序回传 html 页面数据是一件非常繁锁的事情。开发成本和维护成本都极高。

通过servlet回传数据

public class PringHtml extends HttpServlet {
@Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException,
    IOException {
        // 通过响应的回传流回传 html 页面数据
        resp.setContentType("text/html; charset=UTF-8");
        PrintWriter writer = resp.getWriter();
        writer.write("<!DOCTYPE html>
");
        writer.write(" <html lang="en">
");
        writer.write(" <head>
");
        writer.write("<meta charset="UTF-8">
");
        writer.write("<title>Title</title>
");
        writer.write(" </head>
");
        writer.write(" <body>
");
        writer.write("这是 html 页面数据 
");
        writer.write(" </body>
");
        writer.write("</html>
");
        writer.write("
");
    }
}
View Code

JSP回传数据

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
    <head>
        <title>Title</title>
    </head>
    <body>
    这是 html 页面数据
    </body>
</html>        
a.jsp

JSP如何访问

像访问 html页面一样访问即可

JSP的本质

jsp页面本质是一个servelet程序。

当我们第一次访问 jsp 页面的时候。Tomcat 服务器会帮我们把 jsp 页面翻译成为一个 java 源文件。并且对它进行编译成
为.class 字节码程序。我们打开 java 源文件不难发现其里面的内容是:

           

我们跟踪原代码发现,HttpJspBase 类。它直接地继承了 HttpServlet 类。也就是说。jsp 翻译出来的 java 类,它间接了继
承了 HttpServlet 类。也就是说,翻译出来的是一个 Servlet 程序

           

总结:通过翻译的 java 源代码我们就可以得到结果:jsp 就是 Servlet 程序。
也可以去观察翻译出来的 Servlet 程序的源代码,不难发现。其底层实现,也是通过输出流。把 html 页面数据回传给客户端。

原文地址:https://www.cnblogs.com/superxuezhazha/p/12617693.html