* 分類: 1. page : 配置JSP頁面的 * contentType:等同于response.setContentType() 1. 設(shè)置響應(yīng)體的mime類型以及字符集 2. 設(shè)置當(dāng)前jsp頁面的編碼(只能是高級(jí)的IDE才能生效,如果使用低級(jí)工具,則需要設(shè)置pageEncoding屬性設(shè)置當(dāng)前頁面的字符集)" /> 99国产精品亚洲,成特av一级综合毛片,精品亚洲永久免费精品导航
首頁技術(shù)文章正文

jsp的使用簡(jiǎn)介

更新時(shí)間:2018-08-03 來源:黑馬程序員 瀏覽量:

JSP:


        1. 指令


                * 作用:用于配置JSP頁面,導(dǎo)入資源文件


                * 格式:


                        <%@ 指令名稱 屬性名1=屬性值1 屬性名2=屬性值2 ... %>


                * 分類:


                        1. page                : 配置JSP頁面的


                                * contentType:等同于response.setContentType()


                                        1. 設(shè)置響應(yīng)體的mime類型以及字符集


                                        2. 設(shè)置當(dāng)前jsp頁面的編碼(只能是高級(jí)的IDE才能生效,如果使用低級(jí)工具,則需要設(shè)置pageEncoding屬性設(shè)置當(dāng)前頁面的字符集)


                                * import:導(dǎo)包


                                * errorPage:當(dāng)前頁面發(fā)生異常后,會(huì)自動(dòng)跳轉(zhuǎn)到指定的錯(cuò)誤頁面


                                * isErrorPage:標(biāo)識(shí)當(dāng)前也是是否是錯(cuò)誤頁面。


                                        * true:是,可以使用內(nèi)置對(duì)象exception


                                        * false:否。默認(rèn)值。不可以使用內(nèi)置對(duì)象exception




                        2. include        : 頁面包含的。導(dǎo)入頁面的資源文件


                                * <%@include file="top.jsp"%>


                        3. taglib        : 導(dǎo)入資源


                                * <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>


                                        * prefix:前綴,自定義的


        2. 注釋:


                1. html注釋:


                        <!-- -->:只能注釋html代碼片段


                2. jsp注釋:推薦使用


                        <%-- --%>:可以注釋所有




        3. 內(nèi)置對(duì)象


                * 在jsp頁面中不需要?jiǎng)?chuàng)建,直接使用的對(duì)象


                * 一共有9個(gè):


                                變量名                                        真實(shí)類型                                                作用


                        * pageContext                                PageContext                                        當(dāng)前頁面共享數(shù)據(jù),還可以獲取其他八個(gè)內(nèi)置對(duì)象


                        * request                                        HttpServletRequest                        一次請(qǐng)求訪問的多個(gè)資源(轉(zhuǎn)發(fā))


                        * session                                        HttpSession                                        一次會(huì)話的多個(gè)請(qǐng)求間


                        * application                                ServletContext                                所有用戶間共享數(shù)據(jù)


                        * response                                        HttpServletResponse                        響應(yīng)對(duì)象


                        * page                                                Object                                                當(dāng)前頁面(Servlet)的對(duì)象  this


                        * out                                                JspWriter                                        輸出對(duì)象,數(shù)據(jù)輸出到頁面上


                        * config                                        ServletConfig                                Servlet的配置對(duì)象


                        * exception                                        Throwable                                        異常對(duì)象






## MVC:開發(fā)模式        


        1. jsp演變歷史


                1. 早期只有servlet,只能使用response輸出標(biāo)簽數(shù)據(jù),非常麻煩


                2. 后來又jsp,簡(jiǎn)化了Servlet的開發(fā),如果過度使用jsp,在jsp中即寫大量的java代碼,有寫html表,造成難于維護(hù),難于分工協(xié)作


                3. 再后來,java的web開發(fā),借鑒mvc開發(fā)模式,使得程序的設(shè)計(jì)更加合理性



        2. MVC:


                1. M:Model,模型。JavaBean


                        * 完成具體的業(yè)務(wù)操作,如:查詢數(shù)據(jù)庫,封裝對(duì)象


                2. V:View,視圖。JSP


                        * 展示數(shù)據(jù)


                3. C:Controller,控制器。Servlet


                        * 獲取用戶的輸入


                        * 調(diào)用模型


                        * 將數(shù)據(jù)交給視圖進(jìn)行展示




                * 優(yōu)缺點(diǎn):


                        1. 優(yōu)點(diǎn):


                                1. 耦合性低,方便維護(hù),可以利于分工協(xié)作


                                2. 重用性高



                        2. 缺點(diǎn):


                                1. 使得項(xiàng)目架構(gòu)變得復(fù)雜,對(duì)開發(fā)人員要求高







## EL表達(dá)式


        1. 概念:Expression Language 表達(dá)式語言


        2. 作用:替換和簡(jiǎn)化jsp頁面中java代碼的編寫


        3. 語法:${表達(dá)式}


        4. 注意:


                * jsp默認(rèn)支持el表達(dá)式的。如果要忽略el表達(dá)式


                        1. 設(shè)置jsp中page指令中:isELIgnored="true" 忽略當(dāng)前jsp頁面中所有的el表達(dá)式


                        2. \${表達(dá)式} :忽略當(dāng)前這個(gè)el表達(dá)式




        5. 使用:


                1. 運(yùn)算:


                        * 運(yùn)算符:


                                1. 算數(shù)運(yùn)算符: + - * /(div) %(mod)


                                2. 比較運(yùn)算符: > < >= <= == !=


                                3. 邏輯運(yùn)算符: &&(and) ||(or) !(not)


                                4. 空運(yùn)算符: empty


                                        * 功能:用于判斷字符串、集合、數(shù)組對(duì)象是否為null或者長(zhǎng)度是否為0


                                        * ${empty list}:判斷字符串、集合、數(shù)組對(duì)象是否為null或者長(zhǎng)度為0


                                        * ${not empty str}:表示判斷字符串、集合、數(shù)組對(duì)象是否不為null 并且 長(zhǎng)度>0


                2. 獲取值


                        1. el表達(dá)式只能從域?qū)ο笾蝎@取值


                        2. 語法:


                                1. ${域名稱.鍵名}:從指定域中獲取指定鍵的值


                                        * 域名稱:


                                                1. pageScope                --> pageContext


                                                2. requestScope         --> request


                                                3. sessionScope         --> session


                                                4. applicationScope --> application(ServletContext)


                                        * 舉例:在request域中存儲(chǔ)了name=張三


                                        * 獲?。?{requestScope.name}



                                2. ${鍵名}:表示依次從最小的域中查找是否有該鍵對(duì)應(yīng)的值,直到找到為止。





                                3. 獲取對(duì)象、List集合、Map集合的值


                                        1. 對(duì)象:${域名稱.鍵名.屬性名}


                                                * 本質(zhì)上會(huì)去調(diào)用對(duì)象的getter方法



                                        2. List集合:${域名稱.鍵名[索引]}



                                        3. Map集合:


                                                * ${域名稱.鍵名.key名稱}


                                                * ${域名稱.鍵名["key名稱"]}




                3. 隱式對(duì)象:


                        * el表達(dá)式中有11個(gè)隱式對(duì)象


                        * pageContext:


                                * 獲取jsp其他八個(gè)內(nèi)置對(duì)象


                                        * ${pageContext.request.contextPath}:動(dòng)態(tài)獲取虛擬目錄




## JSTL


        1. 概念:JavaServer Pages Tag Library  JSP標(biāo)準(zhǔn)標(biāo)簽庫


                * 是由Apache組織提供的開源的免費(fèi)的jsp標(biāo)簽                <標(biāo)簽>



        2. 作用:用于簡(jiǎn)化和替換jsp頁面上的java代碼               



        3. 使用步驟:


                1. 導(dǎo)入jstl相關(guān)jar包


                2. 引入標(biāo)簽庫:taglib指令:  <%@ taglib %>


                3. 使用標(biāo)簽



        4. 常用的JSTL標(biāo)簽


                1. if:相當(dāng)于java代碼的if語句


                        1. 屬性:


                    * test 必須屬性,接受boolean表達(dá)式


                        * 如果表達(dá)式為true,則顯示if標(biāo)簽體內(nèi)容,如果為false,則不顯示標(biāo)簽體內(nèi)容


                        * 一般情況下,test屬性值會(huì)結(jié)合el表達(dá)式一起使用


                        2. 注意:


                                * c:if標(biāo)簽沒有else情況,想要else情況,則可以在定義一個(gè)c:if標(biāo)簽


                2. choose:相當(dāng)于java代碼的switch語句


           1. 使用choose標(biāo)簽聲明                                 相當(dāng)于switch聲明


            2. 使用when標(biāo)簽做判斷                         相當(dāng)于case


            3. 使用otherwise標(biāo)簽做其他情況的聲明    相當(dāng)于default


            3. foreach:相當(dāng)于java代碼的for語句



作者:黑馬程序員javaEE培訓(xùn)學(xué)院
首發(fā):http://java.itheima.com/

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!