JSP概述

本文介绍了JSP技术,它全称Java Server Pages,主要用于代替Servlet程序回传HTML页面数据,可降低开发和维护成本。还讲述了Servlet程序输出HTML页面的不便,以及如何创建和访问JSP动态页面,最后揭示JSP本质是一个Servlet程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、什么是 jsp,为什么要学习jsp?

JSP(全称 Java Server Pages是由 Sun 公司专门为了解决动态生成 HTML 文档的技术。
jsp 的全换是 java server pages。Java 的服务器页面。
jsp 的主要作用是代替 Servlet 程序回传 html 页面的数据。
因为 Servlet 程序回传 html 页面数据是一件非常繁锁的事情。开发成本和维护成本都极高

2、Servlet 程序输出 html 页面。

在学习 jsp 技术之前,如果我们要往客户端输出一个页面。我们可以使用 Servlet 程序来实现。具体的代码如下:
1)Servlet 输入 html 页面的程序代码

public class HtmlServlet 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>");
    }
}

2)在浏览器中输入访问 Servlet 的程序地址得到以下结果
在这里插入图片描述

上面的代码我们不难发现。通过 Servlet 输出简单的 html 页面信息都非常不方便。 那我们要输出一个复杂页面的时候,就更加的困难,而且不利于页面的维护和调试。 所以 sun 公司推出一种叫做 jsp 的动态页面技术帮助我们实现对页面的输出繁锁工作。

jsp 页面的访问千万不能像 HTML 页面一样。托到浏览器中。只能通过浏览器访问 Tomcat 服务器再访问 jsp 页面

3、如何创建一个 jsp 动态页面程序

1、如何创建 jsp 的页面?
在这里插入图片描述

输入文件名敲回车即可!
在这里插入图片描述

2、jsp 如何访问:
jsp 页面和 html 页面一样,都是存放在 web 目录下。访问也跟访问 html 页面一样。
比如: 在 web 目录下有如下的文件:

web 目录 a.html 页面 访问地址是 =======>>>>>> http://ip:port/工程路径/a.html
b.jsp 页面 访问地址是 =======>>>>>> http://ip:port/工程路径/b.jsp

4、JSP的本质

jsp 的本质 ,其实是一个 Servlet 程序。
首先我们去找到我们 Tomcat 的目录下的C:\Users\It.me.IntelliJIdea2019.3\system\tomcat\Tomcat_8_0_50_JavaWeb_4\work\Catalina\localhost 目录。当我们发布09-JSP 工程。并启动 Tomcat 服务器后。我们发现 在 work\Catalina\localhost 目录下多出来一个 09-JSP 目录
在这里插入图片描述
一开始 09-JSP 目录还是空目录。
在这里插入图片描述
然后,我们在浏览器输入一个 jsp 文件的访问路径访问。 比如 http://localhost:8080/09_JSP/a.jsp 访问 a.jsp 文件
09-JSP 目录马上会生成 org\apache\jsp 目录。 并且在会中有两个文件。
在这里插入图片描述
a_jsp.class 文件很明显是 a_jsp.java 源文件编译后的字节码文件。 那么 a_jsp.java 是个什么内容呢?
生成的 java 文件名,是以原来的文件名加上_jsp 得到。 xxxx_jsp.java 文件的名字
我们打开 a_jsp.java 文件查看里面的内容: 发现生成的类继承于 HttpJspBase 类。这是一个 jsp 文件生成 Servlet 程序要继承的基类!!
在这里插入图片描述

我们跟踪原代码发现,HttpJspBase 类。它直接地继承了 HttpServlet 类。也就是说。jsp 翻译出来的 java 类,它间接了继 承了 HttpServlet 类。也就是说,翻译出来的是一个 Servlet 程序
在这里插入图片描述
总结:通过翻译的 java 源代码我们就可以得到结果:jsp 就是 Servlet 程序。
大家也可以去观察翻译出来的 Servlet 程序的源代码,不难发现。其底层实现,也是通过输出流。把 html 页面数据回传 给客户端。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值