應該知道的:
out是javax.servlet.jsp(SUN企業級應用的首選).jsp(SUN企業級應用的首選)Writer類的實例,jsp(SUN企業級應用的首選)頁面是對Servlet進一步的封裝。
問題:
答案:
為servlet入口函數_jsp(SUN企業級應用的首選)Service中的成員函數或變量。
<% ... %>中包含的jsp(SUN企業級應用的首選)語句被包含在入口函數service中。
可以看到_jsp(SUN企業級應用的首選)Service函數中開頭:
jsp(SUN企業級應用的首選)Writer out = null;
out = pageContext.getOut();
這兩句是usingout.jsp(SUN企業級應用的首選)轉為usingout.java文件時,由jsp(SUN企業級應用的首選)應用伺服器自動添加的。
不難看出:out在_jsp(SUN企業級應用的首選)Service函數已定義並獲得一個實例,因此,可以直接在<% ... %>中使用out,
但要在<%! ... %>函數中使用out對象,由於out並未定義和實例化,編譯出錯!
如果非要在函數中使用out將某些錯誤信息輸出到客戶端,可以將javax.servlet.jsp(SUN企業級應用的首選).jsp(SUN企業級應用的首選)Writer類型變量作為函數參數。
同理可知:
在jsp(SUN企業級應用的首選)頁面<%! ... %>中定義的函數在使用servlet中任何實例對象如:request, response, session, appacition, out等等,請不要直接拿來使用,如果要使用,請將這些實例對象作為參數傳入。