實習中接觸到的JSP知識

JSP主要用于動態WEB開發,打開一個JSP頁面,會發現主要是由HTML和JAVA代碼構成,在學校剛開始接觸到JSP時,就是采用HTML中嵌入JAVA代碼的寫法(<% 若干java語句 %>),但是這樣存在一個問題就是:整個JSP看起來很亂,尤其是JAVA代碼中包含循環和判斷時。因此,便有了后來的EL表達式和JSTL標簽,用來替換掉JSP中的JAVA代碼,使整個JSP看起來整潔。

EL表達式:###

1.輸出內容
使用 ${輸出內容}這種形式來代替<%=JAVA代碼%>進行輸出

  • ${name},name為域中定義的變量,能獲取到值則輸出獲取的值,否則不輸出
  • ${map["name"]},獲取map中的值,也可以使用${map.name}
  • ${object.getName()},object為類對象,調用getName()方法獲取值



    2.執行運算
  • 普通計算。${1+2},會輸出3
  • 類型轉換。${"1"+2},會將2轉化為字符2進行拼接,輸出12
  • 比較運算。${2>1},會輸出true
  • 空值判斷。${empty(name)},會判斷name是否為空,輸出true或者false,也可以判斷對象是否為空、域中是否有屬性
  • 三元表達式。${2>1?"是" : "否"},會輸出是

JSTL標簽:###

!!使用myeclipse開發的話,里面會自帶有jstl標簽庫,所以不需要導入包
!!使用eclipse開發,需要以下步驟:

  1. 導入jstl.jar和standard.jar兩個jar包
  2. 在WEB-INF目錄下導入c.tld文件
  3. 在web.xml中進行配置
    <pre><jsp-config>
    <taglib>
    <taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
    <taglib-location>/WEB-INF/c.tld</taglib-location>
    </taglib>
    </jsp-config>
    </pre>最后在jsp中引用
    <pre><%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%></pre>

列舉幾個常用標簽:
1. c:out 中的特殊字符會原樣輸出
<pre><c:out value="<a href='www.baidu.com'>xxx</a>" escapeXml="false"></c:out></pre>注:escapeXml控制是否轉義,默認為true,即不轉義,是什么就輸出什么(value中的值)。例子中設置escapeXml為false,則會進
行轉義輸出,即輸出xxx





**2. ** c:set 可以更改域中的值
<pre><c:set var="name" value="hahaha"></c:set></pre>注:更改域中名為name的值,若不存在,則添加name





3. c:if做判斷
<pre><c:if test="${2>1}">
2是大于1
</c:if></pre>注:test接收一個bool型的數,如果為true就執行c:if里面的代碼,否則沒變化





4. c:forEach可以遍歷
<pre><c:forEach begin="1" end="10" step="2" var="i">
${i}
</c:forEach></pre>上述代碼相當于
<pre>for(int i = 1; i <= 10; i+=2){
System.out.print(i);
}</pre>可以在forEach中添加if判斷,如下
<pre><c:forEach begin="1" end="10" step="1" var="i" varStatus="stat">
<c:if test="${stat.index % 2 == 0 }">
<font color="red">
${i }
</font>
</c:if>
<c:if test="${stat.index % 2 != 0 }">
${i }
</c:if>
</c:forEach></pre>輸出1~10,如果是偶數,設為紅色,否則,正常輸出
該標簽中有個varStatus,它有幾個屬性
index —— 當前數
count —— 目前的總數
first —— 現在指到的成員是否是第一個成員,返回類型為boolean
last —— 現在指到的成員是都是最后一個成員,返回類型為boolean





5. c:forTokens可以分割字符串
<pre><c:forTokens items="www.baidu.com" delims="." var="i">
${i}
</c:forTokens></pre>注:items表示需要切割的字符串,delims表示以什么為準進行切割,例子中是以點,var用于記錄切割的字符片段





6. c:import可以包含頁面
<pre><c:import url="/index.jsp">
</c:import></pre>上面這種方式是直接把頁面包含進來

<pre><c:import url="/index.jsp" var="p" scope="page">
</c:import>
xxx
${p}
yyy</pre>上面這種方式則是把頁面以page類型存入p中,然后在需要的位置輸出p即可





7. c:url可以保存url
<pre><c:url value="/index.jsp" context="${pageContext.request.contextPath }" var="u" scope="page">
</c:url>
<a href="${u}">www.abc.com</a></pre>把url保存在u中,在需要的位置直接使用





8. c:redirect頁面重定向
<pre><c:redirect url="/index.jsp" context="${pageContext.request.contextPath}">
<c:param name="name" value="huang">
</c:param>
</c:redirect></pre>c:param標簽是用于保存放在url中的數據

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • JSP 標準標簽庫(JSTL) JSP標準標簽庫(JSTL)是一個JSP標簽集合,它封裝了JSP應用的通用核心功能...
    FTOLsXD閱讀 339評論 1 2
  • JSP 基本結構JSP 頁面組成:模板文本(HTML,XML,純文本),JSP 元素;JSP 元素:腳本元素,指令...
    jslancer閱讀 877評論 0 11
  • 這部分主要是與Java Web和Web Service相關的面試題。 96、闡述Servlet和CGI的區別? 答...
    雜貨鋪老板閱讀 1,425評論 0 10
  • 一、JSP基礎 1.1什么是JSP JSP(Java ServerPage)是Java服務器端動態頁面技術。是su...
    晨星資源閱讀 1,175評論 0 6
  • 概念:1)JSP(Java Server Page)是Java服務器端動態頁面技術。是sun公司制訂的一種服務器端...
    南山伐木閱讀 543評論 0 7