1.背景介紹
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)頁中傳遞控制信息和共享信息。
2.知識剖析
JSP通過網(wǎng)頁表單獲取用戶輸入數(shù)據(jù)牛柒、訪問數(shù)據(jù)庫及其他數(shù)據(jù)源堪簿,然后動態(tài)地創(chuàng)建網(wǎng)頁。
JSP標(biāo)簽有多種功能焰络,比如訪問數(shù)據(jù)庫戴甩、記錄用戶選擇信息、訪問JavaBeans組件等闪彼,還可以在不同的網(wǎng)頁中傳遞控制信息和共享信息
(C標(biāo)簽)標(biāo)簽共有13個甜孤,功能上分為4類:
1.表達式控制標(biāo)簽:out协饲、set、remove缴川、catch
2.流程控制標(biāo)簽:if茉稠、choose、when把夸、otherwise
3.循環(huán)標(biāo)簽:forEach而线、forTokens
4.URL操作標(biāo)簽:import、url恋日、redirect
c:if與Java語言中的if語句的使用方法一樣,但不能實現(xiàn)else的功能
c:when,c:otherwise無法單獨使用膀篮,只能作為c:choose的子標(biāo)簽來使用。這三個標(biāo)簽組合起來實現(xiàn)Java中的switch語句的功能.
c:forEach用于遍歷一個對象集合,,c:forToken用于遍歷字符串岂膳,而且每次遍歷結(jié)果返回字符串中的一個單詞
c:url用于對URL地址進行編碼誓竿。
c:import向當(dāng)前JSP頁面中引入URL資源(可以是遠(yuǎn)程序站點上的資源)。Include指令和include動作不能向JSP頁引入Web程序以外的資源谈截,引入的資源必須位于當(dāng)前Web程序中
c:redirect用于HTTP重定向.
c:param只能嵌入到c:url筷屡、c:import、c:redirect標(biāo)簽中作為子元素來使用簸喂。此標(biāo)簽主要用于設(shè)置URL中將要傳入的參數(shù)毙死。
c:catch用于處理JSP頁面錯誤
3.常見問題
jsp頁面是如何加載的
jsp頁面的特點
4.解決方案
(1)當(dāng)客戶第一次請求JSP頁面時,JSP引擎會通過預(yù)處理把JSP文件中的靜態(tài)數(shù)據(jù)(HTML文本)和動態(tài)數(shù)據(jù)(Java腳本)全部轉(zhuǎn)換為Java代碼喻鳄。這個轉(zhuǎn)換工作實際上是非常直觀的扼倘,對于HTML文本只是簡單的用out.println()方法包裹起來,對于Java腳本只是保留或做簡單的處理诽表。
(2)JSP引擎把生成的.java文件編譯成Servlet類文件(.class)唉锌。對于Tomcat服務(wù)器而言隅肥,生成的類文件默認(rèn)的情況下存放在web容器work目錄竿奏。
(3)編譯后的class對象被加載到容器中,并根據(jù)用戶的請求生成HTML格式的響應(yīng)頁面
jsp頁面的特點
性能更加優(yōu)越腥放,因為JSP可以直接在HTML網(wǎng)頁中動態(tài)嵌入元素而不需要單獨引用CGI文件泛啸。
服務(wù)器調(diào)用的是已經(jīng)編譯好的JSP文件,而不像CGI/Perl那樣必須先載入解釋器和目標(biāo)腳本秃症。
JSP 基于Java Servlet API候址,因此,JSP擁有各種強大的企業(yè)級Java API种柑,包括JDBC岗仑,JNDI,EJB聚请,JAXP等等荠雕。
JSP頁面可以與處理業(yè)務(wù)邏輯的 Servlet 一起使用稳其,這種模式被Java servlet 模板引擎所支持。
5.編碼實戰(zhàn)
6.擴展思考
為什么不建議在jsp中寫代碼炸卑?
可讀性很差,<%....%>將java代碼和html都寫在一起,還要尖括號的表達式,看起來復(fù)雜難懂.
jsp難于調(diào)試,不能進行單元測試,維護性差
jsp內(nèi)寫java代碼,安全性低,代碼都在jsp中可以被看到
也不符合老大講的mvc將各個層級分開的理念..
7.參考文獻
百度
http://blog.csdn.net/chabale/article/details/9406437
http://www.jb51.net/article/73527.htm
問題:
jsp必須轉(zhuǎn)換成Java類才可以運行嗎,
是的,這個可以在Tomcat的文件目錄里面可以看到,jsp頁面是被轉(zhuǎn)譯成了java? class文件加載的.
今天的分享就到這里啦既鞠,歡迎大家點贊、轉(zhuǎn)發(fā)盖文、留言嘱蛋、拍磚~
技能樹.IT修真院
“我們相信人人都可以成為一個工程師,現(xiàn)在開始五续,找個師兄洒敏,帶你入門,掌控自己學(xué)習(xí)的節(jié)奏疙驾,學(xué)習(xí)的路上不再迷猛┎#”。
這里是技能樹.IT修真院荆萤,成千上萬的師兄在這里找到了自己的學(xué)習(xí)路線镊靴,學(xué)習(xí)透明化,成長可見化链韭,師兄1對1免費指導(dǎo)偏竟。快來與我一起學(xué)習(xí)吧~
www.jnshu.com/login/1/14708688