Javaweb開發(fā)項目實例教程(idea版)——JSP規(guī)范

什么是JSP?
JSP全稱Java Server Pages,是一種動態(tài)網(wǎng)頁開發(fā)技術(shù)。它使用JSP標(biāo)簽在HTML網(wǎng)頁中插入Java代碼。標(biāo)簽通常以<%開頭以%>結(jié)束。
JSP是一種Java servlet,主要用于實現(xiàn)Java web應(yīng)用程序的用戶界面部分。網(wǎng)頁開發(fā)者們通過結(jié)合HTML代碼、XHTML代碼、XML元素以及嵌入JSP操作和命令來編寫JSP。
JSP通過網(wǎng)頁表單獲取用戶輸入數(shù)據(jù)、訪問數(shù)據(jù)庫及其他數(shù)據(jù)源,然后動態(tài)地創(chuàng)建網(wǎng)頁。
JSP標(biāo)簽有多種功能,比如訪問數(shù)據(jù)庫、記錄用戶選擇信息、訪問JavaBeans組件等,還可以在不同的網(wǎng)頁中傳遞控制信息和共享信息。
JSP特點
● 能以模板化的方式簡單、高效地添加動態(tài)網(wǎng)頁內(nèi)容。
● 可利用JavaBean和標(biāo)簽庫技術(shù)復(fù)用常用的功能代碼(設(shè)計好的組件容易實現(xiàn)重復(fù)利用,減少重復(fù)勞動)。標(biāo)簽庫不僅帶有通用的內(nèi)置標(biāo)簽(JSTL),而且支持可擴(kuò)展功能的自定義標(biāo)簽。
●有良好的工具支持。
● 繼承了Java語言的相對易用性。
● 繼承了Java的跨平臺優(yōu)勢,實現(xiàn)“一次編寫,處處運行”。因為支持Java及其相關(guān)技術(shù)的開發(fā)平臺多,網(wǎng)站開發(fā)人員可以選擇在最適合自己的系統(tǒng)平臺上進(jìn)行JSP開發(fā);不同環(huán)境下開發(fā)的JSP項目,在所有客戶端上都能順利訪問。
● 頁面中的動(控制變動內(nèi)容的部分)/靜(內(nèi)容不需變動的部分)區(qū)域以分散但又有序的形式組合在一起,能使人更直觀地看出頁面代碼的整體結(jié)構(gòu),也使得設(shè)計頁面效果和程序邏輯這2部分工作容易分離(外觀視圖與邏輯分離)。從而方便分配人員并發(fā)揮各自長處,實現(xiàn)高效地分工合作。
● 可與其它企業(yè)級Java技術(shù)相互配合。JSP可以只專門負(fù)責(zé)頁面中的數(shù)據(jù)呈現(xiàn),實現(xiàn)分層開發(fā)。
JSP規(guī)范
一、介紹:
1.JSP是sun公司提供一個規(guī)范
2.JSP規(guī)范用于封裝響應(yīng)對象簡化將Servlet處理結(jié)果寫入到響應(yīng)體開發(fā)難度
二、響應(yīng)對象使用時問題
1.手動設(shè)置響應(yīng)頭content-type
2.手動索要一個輸出流對象
3.手動將結(jié)果寫入到響應(yīng)體
三、JSP優(yōu)勢
開發(fā)人員你只需考慮哪些內(nèi)容需要寫入到響應(yīng)體不需要考慮寫入到響應(yīng)包中過程
jsp文件"運行時"自動將文件內(nèi)部所有與Java命令無關(guān)()的內(nèi)容自動寫入到響應(yīng)體
四、jsp文件中java命令書寫規(guī)范
1.執(zhí)行標(biāo)簽
1) 格式: :
? ? ? ? ? ? ?? <%
? ? ? ? ? ? ? ?java命令行;
? ? ? ? ? ? ? ?%>
2) 作用:用于提示JSP文件在運行時不要將執(zhí)行標(biāo)簽中Java命令寫入到響應(yīng)體通知JSP文件在運行時需要將執(zhí)行標(biāo)簽中內(nèi)容執(zhí)行完畢后再做輸出
3) java命令行:
? ? 聲明變量
? ? 聲明運算表達(dá)式[數(shù)學(xué),關(guān)系運算,邏輯運算]
? ? 聲明控制語句和循環(huán)語句
2.輸出標(biāo)簽
1) 格式::
? ? ? ? ? ? ?<%=變量名%>
? ? ? ? ? ? ?<%=運算表達(dá)式%>
2) 作用:
? ? 在jsp文件運行時,通知JSP將指定變量內(nèi)容或則表達(dá)式結(jié)果寫入到響應(yīng)體?
五、jsp文件中內(nèi)置對象---九
1.ServletContext? ?application
2. HttpSession? ?session
3.HttpServletRequest? request
六、Servlet與jsp文件之間關(guān)系
1.Servlet: 接收請求并處理請求,但是Servlet不負(fù)責(zé)將處理結(jié)果返回
? ? ? ? ? ? ? ? ?-----相當(dāng)于"大廚"
2.JSP:不負(fù)責(zé)處理請求,負(fù)責(zé)將Servlet生成的處理結(jié)果寫入到響應(yīng)體
? ? ? ? ? ? ?-----相當(dāng)于"傳菜員"
3.Servlet與jsp之間調(diào)用關(guān)系
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??請求轉(zhuǎn)發(fā)
? ? 瀏覽器------>Servlet(處理請求)----------->jsp--->處理結(jié)果寫入到響應(yīng)體
4.Servlet與jsp之間如何共享數(shù)據(jù)借助于request
七、JSP運行原理【面試必考題】
1.JSP文件不是靜態(tài)資源文件也不是動態(tài)資源文件
2.JSP文件不能被編譯不能被調(diào)用執(zhí)行
3.運行原理:
1)tomcat接收到調(diào)用jsp文件(one.jsp)請求時,tomcat將被訪問jsp【編輯】為java文件(one_jsp.java)
2)tomcat調(diào)用JVM將java文件【編譯】為class文件(one_jsp.class)
3) 這個class文件是一個Servlet接口實現(xiàn)類
4)tomcat通過反射機(jī)制生成這個class文件的實例對象
5)tomcat通過實例對象調(diào)用_jspService方法,這個方法在運行時負(fù)責(zé)通過輸出流將jsp文件內(nèi)容寫入到響應(yīng)體?
最后奉上視頻教程??,視頻觀看效果更佳??!走過路過別忘素質(zhì)三連哦~~

