小编典典

JSP文件的各个部分在编译后的servlet中位于何处?

jsp

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

我要学习的是:翻译后,哪些代码可以转到哪些方法?

提前致谢。


阅读 271

收藏
2020-06-08

共1个答案

小编典典

这是一个例子:

此JSP代码:

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

将被翻译成:

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);
    }
}

请注意,翻译的一小部分取决于容器。例如,out.println()语句也可能被翻译成out.println("Current date: " + date);

2020-06-08