国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > 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屬性!!!
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 普安县| 民丰县| 长治市| 桑植县| 镇平县| 高碑店市| 东阿县| 虞城县| 大洼县| 万年县| 浏阳市| 双城市| 呼图壁县| 石景山区| 北辰区| 离岛区| 内黄县| 阳信县| 隆德县| 青田县| 台中县| 十堰市| 长治市| 溧阳市| 中方县| 呼玛县| 岳池县| 昌都县| 顺平县| 桂平市| 北碚区| 乐业县| 鲁甸县| 福安市| 厦门市| 吐鲁番市| 霍山县| 雷州市| 石屏县| 馆陶县| 宁津县|