• 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 页面数据回传给客户端。

  • 相关阅读:
    表单自动填充autocomplete的兼容性方案
    函数的默认参数值
    利用zookeeper搭建hadoop HA集群
    zookeeper设置开机启动项
    zookeeper集群挂了的恢复流程
    zookeeper集群搭建
    docker 安装ElasticSearch的中文分词器IK
    [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
    把mysql服务设置开机启动项
    docker-compose的使用
  • 原文地址:https://www.cnblogs.com/superxuezhazha/p/12617693.html
Copyright © 2020-2023  润新知