JSP的運行原理:JSP的本質就是一個Servlet,JSP在運行之前會先被Tomcat服務器翻譯為.java文件,然后再將.java文本編譯為.class文件,而我們在訪問jsp時,處理請求的就是那個翻譯后的類
1 <%!%>
<%!%>稱作聲明,其中寫的內容將來會直接翻譯在Servlet類中,因為我們可以在類中定義方法和屬性以及全局變量,所以我們也可以在<%!%>中聲明方法、屬性和全局變量
2 <%%>
<%%>叫做腳本片段,其中寫的內容會翻譯在Servlet的Service方法中,我們可以在類中定義局部變量或者調用其他方法,但是不能再Service方法中再定義其他的方法。在JSP頁面中可以有多個腳本片段,但是多個腳本片段之間要保證結構完整
3 <%=%>
<%=%>稱作JSP表達式,用於將已經聲明的變量或者表達式輸出到網頁上面
4 直接寫在JSP頁面<body></body>中的代碼稱作模板元素,將來會在Servlet的Service方法中的out.write()中,作為輸出內容
簡單的來說 <%!%>表示表明一個聲明方法、屬性和全局變量
<%%>表示所執行的jsp語句塊,也就是相應的java代碼
<%=%>相當於<%out.println("字符串");%>在網頁中顯示某一個變量或某一個表達式的值
5 <%@ %>
<%@ 編譯指令 屬性="屬性值" %>
在jsp中有三個編譯指令page、include、taglib
拿page舉例
<%@page import="java.util.ArrayList"%>
page 指令可以定義下面這些大小寫敏感的屬性(大致按照使用的頻率列出):import、contentType、pageEncoding、session、isELIgnored(只限 JSP 2.0)、buffer、autoFlush、info、errorPage、isErrorPage、isThreadSafe、language 和 extends。
import屬性
使用page指令的import屬性指定JSP頁面轉換成的Servlet應該輸入的包
contentType和pageEncoding屬性
contentType 屬性設置 Content-Type 響應報頭,標明即將發送到客戶程序的文檔的 MIME 類型
pageEncoding 屬性設置頁面的字符集
session屬性
session 屬性控制頁面是否參與 HTTP 會話。