2013-06-04 62 views
2

我知道jsp_service()方法不能被覆蓋,但我的一個朋友說我們可以在JSP中使用scriptlet來覆蓋該方法,並可以在該方法中執行任何我們需要的操作。可以覆蓋jsp_service()方法嗎?

任何人都可以解釋它是真的嗎?

+0

這就是執行scriptlet內的代碼的地方。這與重寫方法不同。 –

回答

7

不是這樣。

採取抽樣JSP:

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>JSP Page</title> 
    </head> 
    <body> 
     <h1>Hello World!</h1> 
    </body> 
</html> 

如果您檢查生成的servlet這個JSP。您會發現包含HTML代碼的_jspService方法爲out.write

爲什麼?

既然什麼都我們在JSP編寫代碼將被放置在(從JSP)生成的servlet類的_jspService() .means _jspService()已經被us.So imlimented如果我們試圖重寫_jspService()它會給有關編譯錯誤方法_jspService()已被定義。

更多內容why jspService() cannot be overridden?

0

無論我們在scriplet中寫什麼,都會將其轉換成jsp_service()方法到生成的Servlet中。因此,要覆蓋此方法,您可以簡單地在scriplet中編寫代碼。但是,您無法手動覆蓋此方法。這會導致編譯失敗。