# 一、核心標簽forEach和if的使用案例及代碼實踐
## 1.forEach 標簽
這些標簽封裝了Java中的for,while,do-while循環。
相比而言,標簽是更加通用的標簽,因為它迭代一個集合中的對象。
標簽通過指定分隔符將字符串分隔為一個數組然后迭代它們。
* * *
### forEach 語法格式
~~~
<c:forEach
items="<object>"
begin="<int>"
end="<int>"
step="<int>"
var="<string>"
varStatus="<string>">
...
~~~
### forTokens 語法格式
~~~
<c:forTokens
items="<string>"
delims="<string>"
begin="<int>"
end="<int>"
step="<int>"
var="<string>"
varStatus="<string>">
~~~
### 屬性
標簽有如下屬性:
| **屬性** | **描述** | **是否必要** | **默認值** |
| --- | --- | --- | --- |
| items | 要被循環的信息 | 否 | 無 |
| begin | 開始的元素(0=第一個元素,1=第二個元素) | 否 | 0 |
| end | 最后一個元素(0=第一個元素,1=第二個元素) | 否 | Last element |
| step | 每一次迭代的步長 | 否 | 1 |
| var | 代表當前條目的變量名稱 | 否 | 無 |
| varStatus | 代表循環狀態的變量名稱 | 否 | 無 |
標簽與標簽有相似的屬性,不過還有另一個屬性:
| **屬性** | **描述** | **是否必要** | **默認值** |
| --- | --- | --- | --- |
| delims | 分隔符 | 是 | 無 |
* * *
## forEach實例演示
~~~
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>c:forEach 標簽實例</title>
</head>
<body>
<c:forEach var="i" begin="1" end="5">
序號 <c:out value="${i}"/><p>
</c:forEach>
</body>
</html>
~~~
運行結果如下:
~~~
序號 1
序號 2
序號 3
序號 4
序號 5
~~~
* * *
## forTokens演示實例
~~~
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>c:forTokens 標簽實例</title>
</head>
<body>
<c:forTokens items="google,baidu,taobao" delims="," var="name">
<c:out value="${name}"/><p>
</c:forTokens>
</body>
</html>
~~~
運行結果如下:
~~~
google
baidu
taobao
~~~
* * *
## 2. if標簽
標簽判斷表達式的值,如果表達式的值為 true 則執行其主體內容。
### 語法格式
~~~
<c:if test="<boolean>" var="<string>" scope="<string>">
...
</c:if>
~~~
### 屬性
標簽有如下屬性:
| **屬性** | **描述** | **是否必要** | **默認值** |
| --- | --- | --- | --- |
| test | 條件 | 是 | 無 |
| var | 用于存儲條件結果的變量 | 否 | 無 |
| scope | var屬性的作用域 | 否 | page |
## if演示實例
~~~
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>c:if 標簽實例</title>
</head>
<body>
<c:set var="score" scope="session" value="${91}"/>
<c:if test="${score >90}">
<p>你的成績為: <c:out value="${score}"/><p>
</c:if>
</body>
</html>
~~~
運行結果如下:
~~~
你的成績為: 91
~~~
*****
*****
# 二、代碼實踐
**1.使用EL進行算術運算,獲取request里面的數據**

**2.使用EL獲取request里面List的數據**

**3.JSTL包下載和配置**
1.下載地址:http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/

2.解壓然后配置到項目的WEB-INF的lib目錄下

3.找到核心標簽的TLD文件

4.標簽的信息

5.jstl中核心標簽out、set和if的結合使用

6.jstl中核心標簽forEach獲取集合List中的導航菜單數據

*****
*****
# 三、項目實踐
**1.創建數據庫wms200和表t_menu**
```
create database wms200 default character set utf8 collate utf8_general_ci;
use wms200;
DROP TABLE IF EXISTS `t_menu`;
CREATE TABLE `t_menu` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`menuName` varchar(255) DEFAULT NULL,
`menuURL` varchar(255) DEFAULT NULL,
`menuNo` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
INSERT INTO `t_menu` VALUES ('1', '首頁', 'index.jsp', '1');
INSERT INTO `t_menu` VALUES ('2', '關于我們', 'about.jsp', '2');
INSERT INTO `t_menu` VALUES ('3', '新聞中心', 'news.jsp', '3');
INSERT INTO `t_menu` VALUES ('4', '項目管理及實施', 'portfolio.jsp', '4');
INSERT INTO `t_menu` VALUES ('5', '產品中心', 'product.jsp', '5');
INSERT INTO `t_menu` VALUES ('6', '服務支持', 'server.jsp', '6');
INSERT INTO `t_menu` VALUES ('7', '聯系我們', 'contact.jsp', '7');
INSERT INTO `t_menu` VALUES ('8', '人才招聘', 'talent.jsp', '8');
```
**2.項目中導入mysql的jar包**
包下載地址:
mysql-connector-java-3.1.13-bin.jar
mysql8以上版本用
mysql-connector-java-8.0.25-bin.jar
**3.手工創建數據庫連接工具類DBconnection300.java**
```
package com.baishenghua300.utils;
import java.sql.*;
public class DBConnection300 {
public static Connection getConn300() {
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost/wms200?user=root&password=123456");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
public static void main(String[] args) {
getConn300();
}
public static void close(Connection con,Statement stmt, PreparedStatement pstmt,ResultSet rs){
try {
if(con != null){
con.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if(stmt != null){
stmt.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if(pstmt != null){
pstmt.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if(rs != null){
rs.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
```
**4.導航菜單DAO實現類實現查詢所有導航菜單信息的方法**

**5.服務層調用DAO層的方法**

**6.控制器調用服務層,然后轉發到jsp界面**

**7.發布項目,可以查詢出數據庫所有導航菜單信息**

- Java Web項目開發學習手冊
- 一、B/S開發環境搭建
- 1.1 tomcat服務器目錄結構及作用
- 1.2 在IDE開發工具上配置tomcat服務器
- 1.3 簡單web項目在tomcat服務器上運行的方法
- 1.4 開發工具設置
- 1.5 總結
- 二、Servlet技術應用
- 2.1 HttpServlet中的主要方法及應用
- 2.1.1 基于Eclipse完成一個JavaWeb項目
- 2.2 HttpRequest,HttpResponse的應用
- 2.2.1客戶端請求
- 2.2.2服務器響應
- 2.2.3Servlet HTTP 狀態碼
- 2.2.4圖片驗證碼類
- 2.2.5注冊模擬實現(帶驗證碼)
- 2.3 ServletConfig對象和ServletContext對象的概念
- 2.4 總結
- 三、JSP技術應用
- 3.1 JSP基本語法
- 3.2 JSP標簽和指令
- 3.3 JSP中的隱式對象
- 3.4 常用應用操作
- 3.4.1 JSP客戶端請求
- 3.4.2 JSP服務器響應
- 3.4.3 HTTP狀態碼
- 3.4.4 表單處理
- 3.4.5 過濾器
- 3.4.6 Cookie處理
- 3.4.7 Session處理
- 3.4.8 文件上傳
- 3.4.9 日期處理
- 3.4.10 頁面重定向
- 3.4.11 點擊量統計
- 3.4.12 自動刷新
- 3.4.13 發送郵件
- 3.5 JSP高級應用
- 3.5.1 JSP標準標簽庫(JSTL)
- 3.5.2 JSP連接數據庫
- 3.5.3 JSP XML數據處理
- 3.5.4 JSP JavaBean
- 3.5.5 自定義標簽
- 3.5.6 表達式語言
- 3.5.7 異常處理
- 3.5.8 調試
- 3.5.9 JSP國際化
- 3.6 實踐代碼
- 3.6.1 實踐代碼
- 3.6.2 項目實戰
- 3.7 總結
- 四、MVC思想的理解和搭建MVC
- 4.1 MVC設計模式的思想
- 4.2 MVC設計模式的實現步驟
- 4.3 項目實踐
- 4.4 總結
- 五、EL表達式和JSTL技術
- 5.1 EL表達式及其應用
- 5.2 常用的JSTL標簽的應用
- 5.3 項目實踐
- 5.4 總結
- 六、Cookie和Session
- 6.1 cookie對象的概念和應用
- 6.2 session對象的概念和應用
- 6.3 項目實踐
- 6.4 總結
- 七、過濾器技術應用
- 7.1 Filter的概念及應用
- 7.2 Filter、FilterChain、FilterConfig 介紹
- 7.3 用戶登錄過濾案例
- 7.4 項目實戰
- 7.5總結
- 八、異步請求技術
- 8.1 JSON數據格式
- 8.2 使用AJAX實現異步請求
- 8.3 用戶名校驗案例
- 8.4小結
- 綜合項目技術實訓
- 1.BS項目開發項目實戰
- 2.項目需求分析和系統設計
- 2.1需求分析
- 2.2類型模型設計
- 2.3原型設計
- 3.項目數據庫分析和系統設計
- 4.BS項目編程實現
- 4.1搭建框架和命名規約
- 4.2實現步驟
- 4.2.1創建實體類
- 4.2.2創建過濾器類
- 4.2.3創建工具類
- 4.2.4創建DAO接口及其實現類
- 4.2.5創建Service接口及其實現類
- 4.2.6創建測試類
- 4.2.7創建控制器類
- 5.企業開發流程規范
- 6.總結
- 九、練習題及答案
- 企業開發常用技術
- 1.Maven技術
- Java命名規范解讀
- 參考資料
- 開發中常用的應用服務器和Web服務器