Where in a compiled servlet do various parts of a JSP file go?
jsp, servlets
Solution
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.
Problem
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 servlet engine puts the code in the init() method in the servlet? What I want to learn is: which kinds of code go to which methods after translation? Thanks in advance.