jsp的出現
原始的界面由servlet中使用response.write()輸出,但是特別複雜
出現了jsp=html +java+css+js+jsp的語法
html只能展示靜態的數據,結合java和jsp的語法實現了動態的展示數據
jsp的語法
執行流程
jsp文件>>翻譯為.java>>編輯為,class>>裝載起來
翻譯的文件:在work下, \work\Catalina\localhost\ROOT\org\apache\jsp
相關代碼在_jspService()方法中();所以在方法中不能定義再方法
包含的是java代碼 全局的 輸出語句 html的註釋 jsp的註解 在瀏覽器中不會顯示
jsp常見指令
引入依賴比如腳本文件 error頁面 容器提供當前頁面的使用說明。一個JSP頁面可以包含多個page指令 import="java.util.*"; 包含其他文件 引入標籤庫 頭部命令
jsp九大對象
include的區別
hello.jsp文件包含以下代碼 footer.jsp的內容會被插入到 hello.jsp 轉譯 成的hello_jsp.java中,最後只會生成一個hello_jsp.java文件 footer.jsp的內容不會被插入到 hello.jsp 轉譯 成的hello_jsp.java中, 還會有一個footer_jsp.java獨立存在。 hello_jsp.java 會在服務端訪問footer_jsp.java, 然後把返回的結果,嵌入到響應中。
JSTL
導入
常見的jstl語句
//todo //todo fmt 格式化 日期 完整日期:
完整時間:
常見格式: 數字格式化
EL表達式
引入
取值順序 pageContext>request>session>application 使用${key} 取值 支持表達式 大小於 equals等,三元運算符
轉發與轉向的區別
轉發(forward
轉發通過forword帶走request的response,所以能帶走對象,可以共享數據,地址欄不會改變,經歷了一次請求,在服務端完成的處理,
WEB-INF下的頁面不能通過地址欄訪問,需要經過轉發才能訪問
轉向(redirect)
轉向,請求到這裡之後,告訴瀏覽器需要進行二次請求,所以瀏覽器地址改變,數據也不能共享了,兩次請求的效率也比與轉發的一次請求慢低一些.
瀏覽器地址改變了,就可以跳轉到當前web意外的頁面