Where in a compiled servlet do various parts of a JSP file go?

前端 未结 2 1094
旧巷少年郎
旧巷少年郎 2020-12-21 09:27

Before the translation phase, there was a <%! .... %> code line in my JSP page. I know that this would be run only once in the translated servlet. Does it mean that the s

相关标签:
2条回答
  • 2020-12-21 10:12

    Here is an example:

    This JSP code:

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

    Will get translated to:

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

    Note that minor parts of the translation are container-depended. E.g. the out.println() statements might be translated to out.println("Current date: " + date); as well.

    0 讨论(0)
  • 2020-12-21 10:14

    At the time of code compilation code containing inside <%! .... %> this tag is consider as class member of servlet.

    and

    code containing inside <% .... %> this tag goes into the service() method of servlet.

    If you want to see the generated java file, go to tomcat/work/..... directory.

    File will be created with name as JspFileName_jsp.java and JspFileName_jsp.class

    For better understandings visit this link

    0 讨论(0)
提交回复
热议问题