在翻譯階段之前,有一個<%! ....%>我的JSP頁面中的代碼行。我知道這隻會在翻譯的servlet中運行一次。這是否意味着servlet引擎將代碼放在servlet的init()方法中?在編譯的servlet中,JSP文件的各個部分都去了哪裏?
我想學的是:哪種代碼會在翻譯後進入哪些方法?
在此先感謝。
在翻譯階段之前,有一個<%! ....%>我的JSP頁面中的代碼行。我知道這隻會在翻譯的servlet中運行一次。這是否意味着servlet引擎將代碼放在servlet的init()方法中?在編譯的servlet中,JSP文件的各個部分都去了哪裏?
我想學的是:哪種代碼會在翻譯後進入哪些方法?
在此先感謝。
下面是一個例子:
該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);
。
在代碼編譯時 包含在<%! .... %>
裏面的代碼這個標籤被認爲是servlet的類成員。內部含有<% .... %>
該標籤
和
代碼進入Servlet的service() method
。
如果您想查看generated java file
,請轉至tomcat/work/.....
目錄。
文件將與名被創建爲JspFileName_jsp.java
和JspFileName_jsp.class
爲了更好地理解參觀this link
不,該代碼進入課程級別。 – 2013-03-17 10:40:34
好的,如果<%........%> ?,我們知道它在每個客戶端訪問servlet期間運行。它看起來像這將安裝在服務方法? – Erdal76t 2013-03-17 16:42:55
你知道你可以看看編譯的servlet源代碼,對吧? – 2013-03-17 17:30:01