JSP入門及語法

一鹏浅、JSP概述

1辟灰、JSP:Java Server Pages(運行在服務(wù)器端的頁面)。就是Servlet篡石。
學(xué)習(xí)JSP學(xué)好的關(guān)鍵:時刻聯(lián)想到Servlet即可芥喇。
2、JSP的原理
    JSP會被Tomcat翻譯成一個Servlet凰萨。該Servlet在Tomcat\work\catalina\locahot\day09\....
3继控、JSP械馆、Servlet開發(fā)的最佳實踐:
    Servlet:一般作為控制組件,處理業(yè)務(wù)邏輯
    JSP:一般作為顯示組件武通,顯示數(shù)據(jù)

二霹崎、JSP的語法

1、JSP的模板元素:(先寫HTML)
        就是JSP中的那些HTML標(biāo)記
        作用:頁面布局和美化
2冶忱、JSP的Java腳本表達(dá)式:
        作用:輸出數(shù)據(jù)到頁面上
        語法:<%=表達(dá)式%>(實際上就是調(diào)用輸出流打印到頁面上)
3尾菇、JSP中的Java腳本片段:(實際開發(fā)中,應(yīng)做到JSP中不能出現(xiàn)一行Java腳本片段)
        作用:書寫Java代碼邏輯
        語法:<%
                語句1;
                語句2;
              %>
        原理:其中的語句會原封不動的被服務(wù)器翻譯到對應(yīng)的Servlet的service方法中囚枪。
4派诬、JSP的聲明:(了解其原理)
        作用:定義類的成員
        語法:<%!
                你的Java代碼
                %>
5、JSP的注釋:
        作用:注釋Java腳本代碼
        語法:<%--這是注釋--%>

三链沼、JSP的指令:給JSP引擎用的(服務(wù)器用的)

    基本的語法格式:<%@ 指令名稱 屬性1="值1" 屬性2="值2" ....%>
    作用:告訴服務(wù)器默赂,該如何處理JSP中除了指令之外的內(nèi)容的。
    
3.1page
    作用:定義JSP頁面的各種屬性
    屬性:
        language:指示JSP頁面中使用腳本語言括勺。默認(rèn)值java缆八,目前只支持java。
        extends:指示JSP對應(yīng)的Servlet類的父類疾捍。不要修改奈辰。
        *import:導(dǎo)入JSP中的Java腳本使用到的類或包。(如同Java中的import語句)
                    JSP引擎自動導(dǎo)入以下包中的類:
                            javax.servlet.*
                            javax.servlet.http.*
                            javax.servlet.jsp.*
                注意:一個import屬性可以導(dǎo)入多個包乱豆,用逗號分隔奖恰。
        *sessioin:指示JSP頁面是否創(chuàng)建HttpSession對象。默認(rèn)值是true咙鞍,創(chuàng)建
        *buffer:指示JSP用的輸出流的緩存大小.默認(rèn)值是8Kb。
        autoFlush:自動刷新輸出流的緩存趾徽。
        isThreadSafe:指示頁面是否是線程安全的(過時的)续滋。默認(rèn)是true。
                true:不安全的孵奶。
                false:安全的疲酌。指示JSP對應(yīng)的Servlet實現(xiàn)SingleThreadModel接口。
        *errorPage:指示當(dāng)前頁面出錯后轉(zhuǎn)向(轉(zhuǎn)發(fā))的頁面了袁。
                    目標(biāo)頁面如果以"/"(當(dāng)前應(yīng)用)就是絕對路徑朗恳。
                    
                    配置全局錯誤提示頁面:
                        web.xml
                         <error-page>
                            <exception-type>java.lang.Exception</exception-type>
                            <location>/error.jsp</location>
                          </error-page>
                          <error-page>
                            <error-code>404</error-code>
                            <location>/404.jsp</location>
                          </error-page>
        *isErrorPage:指示當(dāng)前頁面是否產(chǎn)生Exception對象。
        *contentType:指定當(dāng)前頁面的MIME類型载绿。作用與Servlet中的response.setContentType()作用完全一致
        *pageEncoding:通知引擎讀取JSP時采用的編碼(因為要翻譯)
                還有contentType屬性的作用粥诫。
        *isELIgnored:是否忽略EL表達(dá)式。${1+1}崭庸。默認(rèn)值是false怀浆。
        
    page指令最簡單的使用方式:<%@ page pageEncoding="UTF-8"%>
3.2include(靜態(tài)包含,開發(fā)中能用靜的不用動的)
    作用:包含其他的組件谊囚。
    語法:<%@include file=""%>file指定要包含的目標(biāo)組件。路徑如果以"/"(當(dāng)前應(yīng)用)就是絕對路徑执赡。
    原理:把目標(biāo)組件的內(nèi)容加到源組件中镰踏,輸出結(jié)果。
    
    動態(tài)包含:
        采用動作元素:<jsp:include page=""/>路徑如果以"/"(當(dāng)前應(yīng)用)就是絕對路徑沙合。
        
    
3.3taglib
    作用:引入外部的標(biāo)簽
    語法:<%@taglib uri="標(biāo)簽名稱空間" prefix="前綴"%>
        <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

四奠伪、JSP的內(nèi)置對象(9個JSP內(nèi)置對象)

JSP的內(nèi)置對象引用名稱            對應(yīng)的類型

request                         HttpServletRequest
response                        HttpServletResponse
session                         HttpSession(有開關(guān)的:page指令的session屬性的取值)
application                     ServletContext
config                          ServletConfig
page                            this(當(dāng)前Servlet對象)
exception                       java.lang.Throwable(有開關(guān)的:page指令的isErrorPage屬性改為true)

out                             JspWriter
pageContext                     javax.servlet.jsp.PageContext非常重要
        有三大作用:
                1、本身是一個域?qū)ο笫仔浮M瑫r還能操作其他三個域?qū)ο螅≒ageContext ServletRequest HttpSession  ServletContext)
                        本身表示的域范圍是本頁面绊率。
                                void setAttribute(String name,Object value)
                                void removeAttribute(String name)
                                Object getAttribute(String name)
                        操作其他的三個域?qū)ο?                                void setAttribute(String name,Object value,int scope)
                                void removeAttribute(String name,int scope)
                                Object getAttribute(String name,int scope)
                                
                                參數(shù)int scope是由PageContext類提供的靜態(tài)變量規(guī)定的。
                                            PageContext.PAGE_SCOPE:頁面范圍(是PageContext本身中的那個Map猜拾,代號page)
                                            PageContext.REQUEST_SCOPE:請求范圍(是ServletRequest中的那個Map即舌,代號request)
                                            PageContext.SESSION_SCOPE:請求范圍(是HttpSession中的那個Map,代號session)
                                            PageContext.APPLICATION_SCOPE:請求范圍(是ServletContext中的那個Map挎袜,代號application)
                                            
                                            
                        (非常有用)Object findAttribute(String name):依次按照page request session application范圍搜索指定名稱的對象顽聂,找到為止。
                        
                2盯仪、獲取其他8個隱式對象
                3紊搪、提供了轉(zhuǎn)發(fā)和包含的方便方法
                    RequestDispatcher rd = request.getRequestDispatcher("/url");
                    rd.forward(request,response);
                    
                    pageContext.forward("url");
                    pageContext.include("url");

五、四大域?qū)ο?兩個資源之間互傳數(shù)據(jù))

JSP中隱式對象的名稱             范圍名稱            具體的類型
pageContext                     page                javax.servlet.jsp.PageContext
request                         request             javax.servlet.ServletRequest  (顯示完數(shù)據(jù)就沒有用了)
session                         session             javax.servlet.http.HttpSession (顯示完數(shù)據(jù)了全景,過一會自己還要用)
application                     application         javax.servlet.ServletContext (顯示完數(shù)據(jù)了耀石,大家都要用。不建議使用爸黄,如果使用滞伟,必須同步處理)

六、JSP常用的動作元素

<jsp:include/>
<jsp:forward/>
<jsp:param/>:在包含和轉(zhuǎn)發(fā)時炕贵,利用該標(biāo)簽傳遞請求參數(shù)

六梆奈、如何調(diào)試JSP出現(xiàn)的錯誤

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市称开,隨后出現(xiàn)的幾起案子亩钟,更是在濱河造成了極大的恐慌,老刑警劉巖鳖轰,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件清酥,死亡現(xiàn)場離奇詭異,居然都是意外死亡蕴侣,警方通過查閱死者的電腦和手機焰轻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來昆雀,“玉大人鹦马,你說我怎么就攤上這事胧谈。” “怎么了荸频?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵菱肖,是天一觀的道長。 經(jīng)常有香客問我旭从,道長稳强,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任和悦,我火速辦了婚禮退疫,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘鸽素。我一直安慰自己褒繁,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布馍忽。 她就那樣靜靜地躺著棒坏,像睡著了一般。 火紅的嫁衣襯著肌膚如雪遭笋。 梳的紋絲不亂的頭發(fā)上坝冕,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機與錄音瓦呼,去河邊找鬼喂窟。 笑死,一個胖子當(dāng)著我的面吹牛央串,可吹牛的內(nèi)容都是我干的磨澡。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼质和,長吁一口氣:“原來是場噩夢啊……” “哼稳摄!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起侦另,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤秩命,失蹤者是張志新(化名)和其女友劉穎尉共,沒想到半個月后褒傅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡袄友,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年殿托,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片剧蚣。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡支竹,死狀恐怖旋廷,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情礼搁,我是刑警寧澤饶碘,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站馒吴,受9級特大地震影響扎运,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜饮戳,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一豪治、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧扯罐,春花似錦负拟、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至启泣,卻和暖如春涣脚,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背寥茫。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工遣蚀, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人纱耻。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓芭梯,卻偏偏與公主長得像,于是被迫代替她去往敵國和親弄喘。 傳聞我的和親對象是個殘疾皇子玖喘,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容

  • 1.什么是JSP (1)jsp全稱是Java Server Pages,它和Servlet技術(shù)一樣都是sun公司定...
    yjaal閱讀 3,648評論 5 99
  • 前面講了servlet入門實踐現(xiàn)在開始介紹jsp入門實踐蘑志,開發(fā)環(huán)境的搭建請參考我前面的tomcat的文章累奈,jsp入...
    伊豚wall閱讀 3,368評論 2 56
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法急但,內(nèi)部類的語法澎媒,繼承相關(guān)的語法,異常的語法波桩,線程的語...
    子非魚_t_閱讀 31,622評論 18 399
  • 文/王剛 1988年5月25日戒努,路遙在陜北甘泉縣招待所為《平凡的世界》畫上了最后一個句號。時至今日镐躲,《平凡的世界》...
    書房記閱讀 1,677評論 0 7
  • 未來會是怎樣储玫,誰也不知道 我羨慕所有有想法有主見有夢想的人 我很想有支配我未來的能力 展望未來 聆聽聲...
    或許南城閱讀 154評論 0 0