今天我正式開始接觸JSP,今晚和大家聊一丟丟學習的內容,主要是關於JSTL標籤的。雖然網上也有教程,但是
大家自己去學習的時候,可能會因爲忽略一些細節導致程序一直報錯,因此我還是談談自己的學習經歷。
首先談我學習的第一個標籤:jsp:forward,英語不錯的童鞋應該能夠猜出來這個標籤是用於頁面跳轉的,爲什麼
我會先談這個標籤呢?這是出於網站安全考慮的,jsp文件存放的目錄一般有兩個:1. 直接存放在WebRoot目錄下
(嚴厲禁止!) 2. 存放在WEB-INF目錄下(強烈推薦!!),要是直接存儲在WebRoot下面,則可以通過瀏覽器直
接就訪問到服務端頁面代碼,這樣顯然是非常危險的;而存放在WEB-INF下面,無法直接通過URL訪問到相應頁面,
必須經index.jsp進行中轉,由index.jsp裏面的jsp:forward page=""標籤進行頁面跳轉,這樣保證頁面的代碼安全。
接着聊聊學到的四個標籤:<c:out/>, <c:set/>,<sql:setDataSource/>,<sql:query/>,分別講講使用場景:<c:out/>輸出標籤,<c:set/>賦值標籤:<c:set var="salary" value="9000"/>,表示變量名是salary,值是9000;另外兩個sql標籤,下面附圖說明:
<sql:setDataSource/>設置數據庫源,表明是MySQL數據庫,本地的soccer數據庫;
<sql:query/>表明要執行的sql語句,並且將查詢結果存儲在result變量裏面;
這裏面可能會出現driver驅動找不到的報錯:原因就是因爲忘記引入mysql-connect.jar文件,下面附圖:
將jar文件拷貝到lib目錄即可識別。
最後講講如何循環讀取數據:
<c:forEach var="row" items="${result.rows}">
<tr>
<td><c:out value="${row.id}"/></td>
<td><c:out value="${row.name}"/></td>
<td><c:out value="${row.grade}"/></td>
</tr>
</c:forEach>
items:循環讀取的數據,var:每次循環的變量名。有可能有些朋友發現<c:out/>無法使用,那肯定是因爲在jsp頁面頂部忘記寫標籤,下面補上標籤:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
大家可以關注我的微信公衆號:icode,我會每天推送一篇原創文章,讓大家都能有所收穫!