亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

JSP總結

2019-11-08 02:35:30
字體:
來源:轉載
供稿:網友
jsp標簽:1.<jsp:include>標簽的作用是用來包含其它JSP頁面的.include指令是在編譯級別完成的包含,即把當前JSP和被包含的JSP合并成一個JSP,然后再編譯成一個Servlet。include動作標簽是在運行級別完成的包含,即當前JSP和被包含的JSP都會各自生成Servlet,然后在執行當前JSP的Servlet時完成包含另一個JSP的Servlet。它與RequestDispatcher的include()方法是相同的!  其實<jsp:include>在“真身”中不過是一句方法調用,即調用另一個Servlet而已。2.<jsp:forward>標簽的作用是請求轉發!forward標簽的作用與RequestDispatcher#forward()方法相同。3.<jsp:param>它是用來傳遞參數的,<jsp:param value=” ” name=” ”>core標簽庫常用標簽4.1 out和set out<c:out value=”aaa”/> 輸出aaa字符串常量<c:out value=”${aaa}”/> 與${aaa}相同<c:out value=”${aaa}” default=”xxx”/> 當${aaa}不存在時,輸出xxx字符串<%request.setAttribute("a","<scrxml="false" /> 當escapeXml為false,不會轉換“<”、“>”。這可能會受到javaScript攻擊。set<c:set var=”a” value=”hello”/> 在pageContext中添加name為a,value為hello的數據。<c:set var=”a” value=”hello” scope=”session”/> 在session中添加name為a,value為hello的數據。4.2 remove <% pageContext.setAttribute("a", "pageContext"); request.setAttribute("a", "session"); session.setAttribute("a", "session"); application.setAttribute("a", "application"); %> <c:remove var="a"/> <c:out value="${a }" default="none"/> 刪除所有域中name為a的數據!<c:remove var="a" scope=”page”/> 刪除pageContext中name為a的數據!4.3 url  url標簽會在需要URL重寫時添加sessionId。<c:url value="/"/> 輸出上下文路徑:/day08_01/<c:url value="/" var="a" scope="request"/> 把本該輸出的結果賦給變量a。范圍為request<c:url value="/AServlet"/> 輸出:/day08_01/AServlet<c:url value="/AServlet"><c:param name="username" value="abc"/><c:param name="passWord" value="123"/></c:url> 輸出:/day08_01/AServlet?username=abc&password=123如果參數中包含中文,那么會自動使用URL編碼!4.4 if   if標簽的test屬性必須是一個boolean類型的值,如果test的值為true,那么執行if標簽的內容,否則不執行。<c:set var="a" value="hello"/>[在page域中創建名為a的變量]<c:if test="${not empty a[判斷a變量不為null,沒有指定域,表示全域] }"> <c:out value="${a }"/></c:if>4.5 choosechoose標簽對應Java中的if/else if/else結構。when標簽的test為true時,會執行這個when的內容。當所有when標簽的test都為false時,才會執行otherwise標簽的內容。<c:set var="score" value="${param.score }"/><c:choose> <c:when test="${score > 100 || score < 0}">錯誤的分數:${score }</c:when>[if] <c:when test="${score >= 90 }">A級</c:when>[else if] <c:when test="${score >= 80 }">B級</c:when> <c:when test="${score >= 70 }">C級</c:when> <c:when test="${score >= 60 }">D級</c:when> <c:otherwise>E級</c:otherwise>[else]</c:choose>4.6 forEachforEach當前就是循環標簽了,forEach標簽有多種兩種使用方式:?使用循環變量,指定開始和結束值,類似for(int i = 1; i <= 10; i++) {};?循環遍歷集合,類似for(Object o : 集合);循環變量方式:<c:set var="sum" value="0" />[創建page域屬性sum為0]<c:forEach var="i" begin="1" end="10">[設置循環變量i,初始值為1,遍歷到10。] <c:set var="sum" value="${sum + i}" />[設置sum的值為sum + i]</c:forEach><c:out value="sum = ${sum }"/><c:set var="sum" value="0" /><c:forEach var="i" begin="1" end="10" step[步長為2,默認步長為1。相當于i+=2的意思!而默認為i++。]="2"> <c:set var="sum" value="${sum + i}" /></c:forEach><c:out value="sum = ${sum }"/>遍歷集合或數組方式:<%String[] names = {"zhangSan", "liSi", "wangWu", "zhaoLiu"};pageContext.setAttribute("ns", names);%><c:forEach var="item[把ns是中每一項賦給item。]" items="${ns }[ns是被遍歷的數組。]"> <c:out value="name: ${item }[打印每一項]"/><br/></c:forEach>遍歷List<% List<String> names = new ArrayList<String>(); names.add("zhangSan"); names.add("liSi"); names.add("wangWu"); names.add("zhaoLiu"); pageContext.setAttribute("ns", names);%><c:forEach var="item" items="${ns }">[與遍歷數組沒有區別!for(String s : ns) { …}] <c:out value="name: ${item }"/><br/></c:forEach>遍歷Map<% Map<String,String> stu = new LinkedHashMap<String,String>(); stu.put("number", "N_1001"); stu.put("name", "zhangSan"); stu.put("age", "23"); stu.put("sex", "male"); pageContext.setAttribute("stu", stu);%><c:forEach var="item[因為遍歷的是Map,所以每一項是Entry類型]" items="${stu }"> <c:out value="${item.key }: ${item.value }[獲取Entry的key和value]"/><br/></c:forEach>forEach標簽還有一個屬性:varStatus,這個屬性用來指定接收“循環狀態”的變量名,例如:<forEach varStatus=”vs” …/>,這時就可以使用vs這個變量來獲取循環的狀態了。?count:int類型,當前以遍歷元素的個數;?index:int類型,當前元素的下標;?first:boolean類型,是否為第一個元素;?last:boolean類型,是否為最后一個元素;?current:Object類型,表示當前項目。<c:forEach var="item" items="${ns }" varStatus="vs"[把循環狀態賦給vs]> <c:if test="${vs.first }[如果是第一行,那么${vs.first}為true]">第一行:</c:if> <c:if test="${vs.last }[如果是最后一行,那么${vs.last}為true]">最后一行:</c:if> <c:out value="第${vs.count }[返回行數,從1開始]行: "/> <c:out value="[${vs.index }[返回行數,從0開始]]: "/> <c:out value="name: ${vs.current }[當前項,與${item}相同]"/><br/></c:forEach>EL表達式:?操作List和數組:${list[0]}、${arr[0]};?操作bean的屬性:${person.name}、${person[‘name’]},對應person.getName()方法;?操作Map的值:${map.key}、${map[‘key’]},對應map.get(key)。EL一共11個內置對象?pageScope?requestScope?sessionScope?applicationScope?param;?paramValues;?header;?headerValues;?initParam;?cookie;?pageContext;pageScope:${pageScope.name}等同與pageContext.getAttribute(“name”);requestScope:${requestScope.name}等同與request.getAttribute(“name”);sessionScoep: ${sessionScope.name}等同與session.getAttribute(“name”);applicationScope:${applicationScope.name}等同與application.getAttribute(“name”);param和paramValues這兩個內置對象是用來獲取請求參數的。注意,在使用EL獲取參數時,如果參數不存在,返回的是空字符串,而不是null。這一點與使用request.getParameter()方法是不同的。paramValues:paramValues是Map<String, String[]>類型,當一個參數名,對應多個參數值時可以使用它。header和headerValues是與請求頭相關的內置對象.initParamcookie:cookie是Map<String,Cookie>類型,其中key是Cookie的名字,而值是Cookie對象本身。pageContext:pageContext是PageContext類型!可以使用pageContext對象調用getXXX()方法,例如pageContext.getRequest(),可以${pageContext.request}。也就是讀取JavaBean屬性?。?!
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美xxxwww| 欧美日韩视频免费播放| 欧美中文字幕在线播放| 国产91在线播放九色快色| 欧美日韩裸体免费视频| 久久精品电影网| 日韩美女视频中文字幕| 亚洲一区二区三区视频播放| 欧美性猛交xxxx富婆弯腰| 亚洲大胆人体av| 欧美一区二区色| 日韩国产激情在线| 欧美性猛交99久久久久99按摩| 一区二区三区无码高清视频| 亚洲午夜精品视频| 色琪琪综合男人的天堂aⅴ视频| 视频直播国产精品| 亚洲国产日韩精品在线| 国产精品中文字幕在线| 亚洲人成电影网站色xx| 欧美丰满少妇xxxxx| 在线观看精品国产视频| 亚洲第一偷拍网| 欧美成人免费一级人片100| 国产午夜精品视频免费不卡69堂| 亚洲国产日韩欧美在线99| 久久人人97超碰精品888| 亚洲视频在线观看| 精品久久久久久久久久ntr影视| 国产精品1234| xvideos亚洲人网站| 亚洲精品www久久久久久广东| 久久久久久久影视| 国产欧美日韩中文字幕| 懂色av中文一区二区三区天美| 欧美韩日一区二区| 亚洲奶大毛多的老太婆| 国产视频在线观看一区二区| 日韩精品一区二区视频| 最近2019中文字幕第三页视频| 亚洲精品在线不卡| 精品偷拍一区二区三区在线看| 欧美资源在线观看| 日韩激情视频在线| 欧美—级a级欧美特级ar全黄| 欧美日韩在线观看视频| 欧美成人性色生活仑片| 国产精品18久久久久久首页狼| 青青精品视频播放| 日韩在线中文字幕| 在线日韩中文字幕| 精品视频偷偷看在线观看| 亚洲成人激情小说| 中文字幕在线成人| 久久久999国产精品| 国产精品久久久久久久久免费看| 国产精品第一页在线| 欧美视频一区二区三区…| 日本久久久久久久久久久| 欧美肥臀大乳一区二区免费视频| 日韩电影中文字幕一区| 精品久久香蕉国产线看观看亚洲| 国模gogo一区二区大胆私拍| 国产自摸综合网| 久久电影一区二区| 欧美日韩aaaa| 大荫蒂欧美视频另类xxxx| 日本精品久久久久久久| 欧美激情a在线| 国产精品xxx视频| 亚洲片在线观看| 成人精品网站在线观看| 精品少妇一区二区30p| 国产91色在线|| 欧美大秀在线观看| 久久久国产精品免费| 亚洲视频国产视频| 日本成熟性欧美| 亚洲午夜性刺激影院| 日本一区二区不卡| 成人免费看黄网站| 91国内精品久久| 久99九色视频在线观看| 精品福利一区二区| 国内伊人久久久久久网站视频| 精品久久久久久久久久久久久| 国产精品入口夜色视频大尺度| 国产精品精品久久久| 欧美第一黄色网| 久久久www成人免费精品张筱雨| 日韩视频第一页| 国产婷婷色综合av蜜臀av| 性色av一区二区三区免费| 色婷婷综合成人av| 欧美疯狂做受xxxx高潮| 欧美多人爱爱视频网站| 亚洲欧美精品中文字幕在线| 国产+人+亚洲| 美女啪啪无遮挡免费久久网站| 深夜精品寂寞黄网站在线观看| 欧美成人午夜剧场免费观看| 亚洲欧洲在线免费| 日韩福利伦理影院免费| 亚洲欧美日韩天堂一区二区| 欧美亚洲国产另类| 国产精品一区二区三区在线播放| 在线播放精品一区二区三区| 欧美韩国理论所午夜片917电影| 精品国产乱码久久久久久虫虫漫画| 不卡中文字幕av| 国内免费久久久久久久久久久| 日韩欧美国产骚| 欧美专区中文字幕| 97色在线观看| 国产极品精品在线观看| 91日本在线观看| 亚洲xxxx3d| 怡红院精品视频| 国产精品久久久久影院日本| 神马久久桃色视频| 亚洲tv在线观看| 影音先锋欧美在线资源| 性视频1819p久久| 91香蕉国产在线观看| 亚洲精品第一页| 国产69精品久久久| 亚洲精品按摩视频| 亚洲一区二区三区视频| 成人福利网站在线观看| 国产欧美精品一区二区三区介绍| 日韩电影免费在线观看中文字幕| 91av福利视频| 97香蕉超级碰碰久久免费的优势| 成人亚洲欧美一区二区三区| 欧美人与性动交a欧美精品| 亚洲xxxx3d| 久久69精品久久久久久久电影好| 亚洲mm色国产网站| 国产91热爆ts人妖在线| 岛国av一区二区三区| 国产91精品不卡视频| 国产欧美精品va在线观看| 中文字幕久久久av一区| 国产91av在线| 欧美日韩一区二区三区| 91黄色8090| 日韩欧美精品中文字幕| 日韩av手机在线| 91久久精品日日躁夜夜躁国产| 国产在线精品自拍| 日韩精品亚洲视频| 日本aⅴ大伊香蕉精品视频| 亚洲摸下面视频| 欧美又大又硬又粗bbbbb| 亚洲网站视频福利| 亚洲免费电影一区| 国产美女精品免费电影| 91爱视频在线| 精品偷拍各种wc美女嘘嘘| 欧美不卡视频一区发布| 91精品国产高清久久久久久久久| 日韩av免费一区| 亚洲精品456在线播放狼人| 欧美日韩免费看|