java <%!%>標籤和<%%>標籤的使用

不設限發表於2011-12-14

<%!%>裡面定義的屬性是成員屬性,相當於類的屬性,方法相當於是全域性的方法,相當於是類裡面的方法.但是它是不可以進行輸出的,因為它只是進行方法的定義和屬性的定義。


<%%>這個裡面可以進行屬性的定義,可以輸出內容,但是它不可以進行方法的定義,因為這對標籤裡面的內容將來是在此jsp被編譯為servlet的時候放在了_jspService()方法裡面的,這個方法就是伺服器向客戶端輸出內容的地方,它本身就是一個方法,所以如果你在它裡面定義方法的話,那麼就相當於是在類的方法裡面巢狀定義了方法,這在java裡面是不允許的。但是你可以在裡面定義自己的私有變數,因為方法裡面也可以定義變數,也可以呼叫方法,但是唯獨不可以再定義方法了。


所以綜上所述:<%!%>是用來定義成員變數屬性和方法的,<%%>主要是用來輸出內容的,因此如果涉及到了成員變數的操作,那麼我們就應該使用<!%%>,而如果是涉及到了輸出內容的時候,就使用<%%>。


另外<%=xxx%>這個標籤相當於是呼叫了out.print(xxx);而這個out是JspWriter;

<%=xxx%>=<%out.println(book.getAuthor());%>

在呼叫<%=xxx%>方法的時候,不可以再表示式後面加上";",因為這中表示式本身就會在使用的時候帶上";";同時在呼叫<%out.println(book.getAuthor());%>的時候也不要忘了在表示式後面帶上";"因為它是直接的被tomcat原封不動的複製到當前jsp所對應的那個被編譯之後的servlet裡面的,因為在java類裡面,如果一句話執行結束了後面不加分號的話,肯定會出錯的,這地方也是一樣,因為jsp最終還是被編譯為servlet之後執行的


相關文章