在编译的servlet中,JSP文件的各个部分去哪里?

Erd*_*76t 3 jsp servlets

在翻译阶段之前,有一个<%!....%>我的JSP页面中的代码行.我知道这只会在翻译的servlet中运行一次.这是否意味着servlet引擎将代码放在servlet的init()方法中?

我想学的是:翻译后哪种方法的代码是哪种?

提前致谢.

Uoo*_*ooo 5

这是一个例子:

这个JSP代码:

<%@ page import="java.util.*" %> <!-- 1 -->
<%! private Date date; %>        <!-- 2 -->
<% date = new Date(); %>         <!-- 3 -->
Current date: <%= date %>        <!-- 4 -->
Run Code Online (Sandbox Code Playgroud)

将被翻译为:

import java.util.*; // 1

public class ServletAbc extends GenericServlet {

    private Date date; // 2

    public void service(ServletRequest request,ServletResponse response)
                throws IOException,ServletException{

        PrintWriter out=response.getWriter();

        date = new Date(); // 3

        out.println("Current date: "); // 4
        out.println(date);
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,翻译的次要部分是依赖于容器的.例如,这些out.println()陈述也可能被翻译out.println("Current date: " + date);.