jsp本质-servlet

jsp本质-servlet

一、jsp文件

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>



    
    JSP Example


    

Hello, <%= "World" %>

二、编译后

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import java.io.*;

public final class index_jsp extends org.apache.jasper.runtime.HttpJspBase
    implements org.apache.jasper.runtime.JspSourceDependent, org.apache.jasper.runtime.JspSourceImports {

    // ... 省略了一些其他代码 ...

    public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
        throws java.io.IOException, javax.servlet.ServletException {

        // ... 省略了生成的Servlet的实际执行逻辑 ...

        out.write("\r\n\r\n\r\n    \r\n    JSP Example\r\n\r\n\r\n    

Hello, "); out.print( "World" ); out.write("

\r\n\r\n\r\n"); // ... 省略了一些其他代码 ... } // ... 省略了一些其他方法 ... }

这个示例中,你可以看到index.jsp页面最终会被编译成一个名为index_jsp的Servlet类。这个Servlet类继承自HttpJspBase,并实现了JspSourceDependentJspSourceImports接口。在_jspService方法中,你可以看到JSP页面中的HTML标记和嵌入的Java代码都被转化为了Java代码。

因此,尽管JSP看起来像是一种嵌套Java代码的HTML模板,实际上它会被编译成Servlet并在服务器端执行,因此JSP的本质就是Servlet。

你可能感兴趣的:(java)