程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> JSP頁面<% ... %>中怎樣使用out及其它

JSP頁面<% ... %>中怎樣使用out及其它

編輯:關於JSP

應該知道的:


out是javax.servlet.jsp(SUN企業級應用的首選).jsp(SUN企業級應用的首選)Writer類的實例,jsp(SUN企業級應用的首選)頁面是對Servlet進一步的封裝。

問題:


假設jsp(SUN企業級應用的首選)文件名為usingout.jsp(SUN企業級應用的首選), 其中有一個函數聲明:
<%!
void test(){
out.println("this is a test!"); // 編譯出錯!
}
%>

<%!
void test(){
? out.println("this is a test!"); // 編譯出錯!
}
%>

<%!
void test(){
? out.println("this is a test!"); // 編譯出錯!
}
%>

答案:


usingout.jsp(SUN企業級應用的首選) 轉換為 java文件後,查看java文件:
<%! ... %>中定義的函數,變量,最終作為文件類(class usingout)的成員函數和變量,而不是作

為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等等,請不要直接拿來使用,如果要使用,請將這些實例對象作為參數傳入。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved