# JSP æå
## ç®ä»
### ä»ä¹æ¯ Java Server Pages
`JSP`å
¨ç§°`Java Server Pages`ï¼æ¯ä¸ç§å¨æç½é¡µå¼åææ¯ã
å®ä½¿ç¨ JSP æ ç¾å¨ HTML ç½é¡µä¸æå
¥ Java 代ç ãæ ç¾é常以`<%`å¼å¤´ä»¥`%>`ç»æã
JSP æ¯ä¸ç§ Java servletï¼ä¸»è¦ç¨äºå®ç° Java web åºç¨ç¨åºçç¨æ·çé¢é¨åãç½é¡µå¼åè
们éè¿ç»å HTML 代ç ãXHTML 代ç ãXML å
ç´ ä»¥ååµå
¥ JSP æä½åå½ä»¤æ¥ç¼å JSPã
JSP éè¿ç½é¡µè¡¨åè·åç¨æ·è¾å
¥æ°æ®ãè®¿é®æ°æ®åºåå
¶ä»æ°æ®æºï¼ç¶å卿å°å建ç½é¡µã
JSP æ ç¾æå¤ç§åè½ï¼æ¯å¦è®¿é®æ°æ®åºãè®°å½ç¨æ·éæ©ä¿¡æ¯ãè®¿é® JavaBeans ç»ä»¶çï¼è¿å¯ä»¥å¨ä¸åçç½é¡µä¸ä¼ éæ§å¶ä¿¡æ¯åå
±äº«ä¿¡æ¯ã
### 为ä»ä¹ä½¿ç¨ JSP
JSP 乿¯ä¸ç§ Servletï¼å æ¤ JSP è½å¤å®æ Servlet è½å®æçä»»ä½å·¥ä½ã
JSP ç¨åºä¸ CGI ç¨åºæçç¸ä¼¼çåè½ï¼ä½å CGI ç¨åºç¸æ¯ï¼JSP ç¨åºæå¦ä¸ä¼å¿ï¼
- æ§è½æ´å ä¼è¶ï¼å 为 JSP å¯ä»¥ç´æ¥å¨ HTML ç½é¡µä¸å¨æåµå
¥å
ç´ èä¸éè¦åç¬å¼ç¨ CGI æä»¶ã
- æå¡å¨è°ç¨çæ¯å·²ç»ç¼è¯å¥½ç JSP æä»¶ï¼èä¸å CGI/Perl 飿 ·å¿
é¡»å
è½½å
¥è§£éå¨åç®æ èæ¬ã
- JSP åºäº Java Servlets APIï¼å æ¤ï¼JSP æ¥æåç§å¼ºå¤§çä¼ä¸çº§ Java APIï¼å
æ¬ JDBCï¼JNDIï¼EJBï¼JAXP ççã
- JSP 页é¢å¯ä»¥ä¸å¤çä¸å¡é»è¾ç servlets ä¸èµ·ä½¿ç¨ï¼è¿ç§æ¨¡å¼è¢« Java servlet 模æ¿å¼æææ¯æã
æåï¼JSP æ¯ Java EE ä¸å¯æç¼ºçä¸é¨åï¼æ¯ä¸ä¸ªå®æ´çä¼ä¸çº§åºç¨å¹³å°ãè¿æå³ç JSP å¯ä»¥ç¨æç®åçæ¹å¼æ¥å®ç°æå¤æçåºç¨ã
### JSP çä¼å¿
以ä¸ååºäºä½¿ç¨ JSP 带æ¥çå
¶ä»å¥½å¤ï¼
- ä¸ ASP ç¸æ¯ï¼JSP æä¸¤å¤§ä¼å¿ãé¦å
ï¼å¨æé¨åç¨ Java ç¼åï¼è䏿¯ VB æå
¶ä» MS ä¸ç¨è¯è¨ï¼æä»¥æ´å å¼ºå¤§ä¸æç¨ã第äºç¹å°±æ¯ JSP æäºç§»æ¤å°é MS å¹³å°ä¸ã
- ä¸çº¯ Servlets ç¸æ¯ï¼JSP å¯ä»¥å¾æ¹ä¾¿çç¼åæè
ä¿®æ¹ HTML ç½é¡µèä¸ç¨å»é¢å¯¹å¤§éç println è¯å¥ã
- ä¸ SSI ç¸æ¯ï¼SSI æ æ³ä½¿ç¨è¡¨åæ°æ®ãæ æ³è¿è¡æ°æ®åºé¾æ¥ã
- ä¸ JavaScript ç¸æ¯ï¼è½ç¶ JavaScript å¯ä»¥å¨å®¢æ·ç«¯å¨æçæ HTMLï¼ä½æ¯å¾é¾ä¸æå¡å¨äº¤äºï¼å æ¤ä¸è½æä¾å¤æçæå¡ï¼æ¯å¦è®¿é®æ°æ®åºåå¾åå¤çççã
- ä¸éæ HTML ç¸æ¯ï¼éæ HTML ä¸å
å«å¨æä¿¡æ¯ã
## JSP å·¥ä½åç
**JSP æ¯ä¸ç§ Servlet**ï¼ä½å·¥ä½æ¹å¼å Servlet ææå·®å«ã
Servlet æ¯å
å°æºä»£ç ç¼è¯ä¸º class æä»¶åé¨ç½²å°æå¡å¨ä¸çï¼**å
ç¼è¯åé¨ç½²**ã
Jsp æ¯å
å°æºä»£ç é¨ç½²å°æå¡å¨åç¼è¯ï¼**å
é¨ç½²åç¼è¯**ã
Jsp ä¼å¨å®¢æ·ç«¯ç¬¬ä¸æ¬¡è¯·æ± Jsp æä»¶æ¶è¢«ç¼è¯ä¸º HttpJspPage ç±»ï¼Servlet çä¸ä¸ªåç±»ï¼ã该类ä¼è¢«æå¡å¨ä¸´æ¶åæ¾å¨æå¡å¨å·¥ä½ç®å½éãæä»¥ï¼ç¬¬ä¸æ¬¡è¯·æ± Jsp åï¼è®¿é®é度ä¼åå¿«å°±æ¯è¿ä¸ªéçã
### JSP 工使µç¨
ç½ç»æå¡å¨éè¦ä¸ä¸ª JSP 弿ï¼ä¹å°±æ¯ä¸ä¸ªå®¹å¨æ¥å¤ç JSP 页é¢ã容å¨è´è´£æªè·å¯¹ JSP 页é¢ç请æ±ãæ¬æç¨ä½¿ç¨å
åµ JSP 容å¨ç Apache æ¥æ¯æ JSP å¼åã
JSP 容å¨ä¸ Web æå¡å¨åååä½ï¼ä¸º JSP çæ£å¸¸è¿è¡æä¾å¿
è¦çè¿è¡ç¯å¢åå
¶ä»æå¡ï¼å¹¶ä¸è½å¤æ£ç¡®è¯å«ä¸å±äº JSP ç½é¡µçç¹æ®å
ç´ ã
ä¸å¾æ¾ç¤ºäº JSP 容å¨å JSP æä»¶å¨ Web åºç¨ä¸æå¤çä½ç½®ã

#### 工使¥éª¤
以䏿¥éª¤è¡¨æäº Web æå¡å¨æ¯å¦ä½ä½¿ç¨ JSP æ¥å建ç½é¡µçï¼
- å°±åå
¶ä»æ®éçç½é¡µä¸æ ·ï¼æ¨çæµè§å¨åéä¸ä¸ª HTTP 请æ±ç»æå¡å¨ã
- Web æå¡å¨è¯å«åºè¿æ¯ä¸ä¸ªå¯¹ JSP ç½é¡µç请æ±ï¼å¹¶ä¸å°è¯¥è¯·æ±ä¼ éç» JSP 弿ãéè¿ä½¿ç¨ URL æè
.jsp æä»¶æ¥å®æã
- JSP 弿ä»ç£çä¸è½½å
¥ JSP æä»¶ï¼ç¶åå°å®ä»¬è½¬å为 servletãè¿ç§è½¬ååªæ¯ç®åå°å°æææ¨¡æ¿ææ¬æ¹ç¨ println()è¯å¥ï¼å¹¶ä¸å°ææç JSP å
ç´ è½¬åæ Java 代ç ã
- JSP å¼æå° servlet ç¼è¯æå¯æ§è¡ç±»ï¼å¹¶ä¸å°åå§è¯·æ±ä¼ éç» servlet 弿ã
- Web æå¡å¨çæç»ä»¶å°ä¼è°ç¨ servlet 弿ï¼ç¶åè½½å
¥å¹¶æ§è¡ servlet ç±»ã卿§è¡è¿ç¨ä¸ï¼servlet 产ç HTML æ ¼å¼çè¾åºå¹¶å°å
¶å
åµäº HTTP response ä¸ä¸äº¤ç» Web æå¡å¨ã
- Web æå¡å¨ä»¥éæ HTML ç½é¡µçå½¢å¼å° HTTP response è¿åå°æ¨çæµè§å¨ä¸ã
- æç»ï¼Web æµè§å¨å¤ç HTTP response ä¸å¨æäº§çç HTML ç½é¡µï¼å°±å¥½åå¨å¤çéæç½é¡µä¸æ ·ã
以䏿åå°çæ¥éª¤å¯ä»¥ç¨ä¸å¾æ¥è¡¨ç¤ºï¼
ä¸è¬æ
åµä¸ï¼JSP 弿伿£æ¥ JSP æä»¶å¯¹åºç servlet æ¯å¦å·²ç»åå¨ï¼å¹¶ä¸æ£æ¥ JSP æä»¶çä¿®æ¹æ¥ææ¯å¦æ©äº servletã妿 JSP æä»¶çä¿®æ¹æ¥ææ©äºå¯¹åºç servletï¼é£ä¹å®¹å¨å°±å¯ä»¥ç¡®å® JSP æä»¶æ²¡æè¢«ä¿®æ¹è¿å¹¶ä¸ servlet ææãè¿ä½¿å¾æ´ä¸ªæµç¨ä¸å
¶ä»èæ¬è¯è¨ï¼æ¯å¦ PHPï¼ç¸æ¯è¦é«æå¿«æ·ä¸äºã
### JSP çå½å¨æ
çè§£ JSP åºå±åè½çå
³é®å°±æ¯å»çè§£å®ä»¬æéµå®ççå½å¨æã
JSP çå½å¨æå°±æ¯ä»å建å°éæ¯çæ´ä¸ªè¿ç¨ï¼ç±»ä¼¼äº servlet çå½å¨æï¼åºå«å¨äº JSP çå½å¨æè¿å
æ¬å° JSP æä»¶ç¼è¯æ servletã
以䏿¯ JSP çå½å¨æä¸æèµ°è¿çå ä¸ªé¶æ®µï¼
- **ç¼è¯é¶æ®µï¼**servlet 容å¨ç¼è¯ servlet æºæä»¶ï¼çæ servlet ç±»
- **åå§åé¶æ®µï¼**å è½½ä¸ JSP 对åºç servlet ç±»ï¼å建å
¶å®ä¾ï¼å¹¶è°ç¨å®çåå§åæ¹æ³
- **æ§è¡é¶æ®µï¼**è°ç¨ä¸ JSP 对åºç servlet å®ä¾çæå¡æ¹æ³
- **鿝鶿®µï¼**è°ç¨ä¸ JSP 对åºç servlet å®ä¾çéæ¯æ¹æ³ï¼ç¶å鿝 servlet å®ä¾
徿æ¾ï¼JSP çå½å¨æçå个主è¦é¶æ®µå servlet çå½å¨æé常ç¸ä¼¼ï¼ä¸é¢ç»åºå¾ç¤ºï¼

#### JSP ç¼è¯
彿µè§å¨è¯·æ± JSP 页颿¶ï¼JSP 弿ä¼é¦å
廿£æ¥æ¯å¦éè¦ç¼è¯è¿ä¸ªæä»¶ã妿è¿ä¸ªæä»¶æ²¡æè¢«ç¼è¯è¿ï¼æè
å¨ä¸æ¬¡ç¼è¯åè¢«æ´æ¹è¿ï¼åç¼è¯è¿ä¸ª JSP æä»¶ã
ç¼è¯çè¿ç¨å
æ¬ä¸ä¸ªæ¥éª¤ï¼
- è§£æ JSP æä»¶ã
- å° JSP æä»¶è½¬ä¸º servletã
- ç¼è¯ servletã
#### JSP åå§å
容å¨è½½å
¥ JSP æä»¶åï¼å®ä¼å¨ä¸ºè¯·æ±æä¾ä»»ä½æå¡åè°ç¨ jspInit()æ¹æ³ã妿æ¨éè¦æ§è¡èªå®ä¹ç JSP åå§åä»»å¡ï¼å¤å jspInit()æ¹æ³å°±è¡äºï¼å°±åä¸é¢è¿æ ·ï¼
```java
public void jspInit(){
// åå§å代ç
}
```
ä¸è¬æ¥è®²ç¨åºåªåå§å䏿¬¡ï¼servlet 乿¯å¦æ¤ãé常æ
åµä¸æ¨å¯ä»¥å¨ jspInit()æ¹æ³ä¸åå§åæ°æ®åºè¿æ¥ãæå¼æä»¶åå建æ¥è¯¢è¡¨ã
#### JSP æ§è¡
è¿ä¸é¶æ®µæè¿°äº JSP çå½å¨æä¸ä¸åä¸è¯·æ±ç¸å
³ç交äºè¡ä¸ºï¼ç´å°è¢«éæ¯ã
å½ JSP ç½é¡µå®æåå§ååï¼JSP 弿å°ä¼è°ç¨ `_jspService()` æ¹æ³ã
`_jspService()` æ¹æ³éè¦ä¸ä¸ª HttpServletRequest 对象åä¸ä¸ª HttpServletResponse 对象ä½ä¸ºå®çåæ°ï¼å°±åä¸é¢è¿æ ·ï¼
```java
void _jspService(HttpServletRequest request,
HttpServletResponse response) {
// æå¡ç«¯å¤ç代ç
}
```
`_jspService()` æ¹æ³å¨æ¯ä¸ª request ä¸è¢«è°ç¨ä¸æ¬¡å¹¶ä¸è´è´£äº§çä¸ä¹ç¸å¯¹åºç responseï¼å¹¶ä¸å®è¿è´è´£äº§çææ 7 个 HTTP æ¹æ³çååºï¼æ¯å¦ GETãPOSTãDELETE ççã
#### JSP æ¸
ç
JSP çå½å¨æç鿝鶿®µæè¿°äºå½ä¸ä¸ª JSP ç½é¡µä»å®¹å¨ä¸è¢«ç§»é¤æ¶æåççä¸åã
jspDestroy()æ¹æ³å¨ JSP ä¸çä»·äº servlet ä¸çéæ¯æ¹æ³ã彿¨éè¦æ§è¡ä»»ä½æ¸
ç工使¶å¤å jspDestroy()æ¹æ³ï¼æ¯å¦éæ¾æ°æ®åºè¿æ¥æè
å
³éæä»¶å¤¹ççã
jspDestroy()æ¹æ³çæ ¼å¼å¦ä¸ï¼
```java
public void jspDestroy() {
// æ¸
ç代ç
}
```
## è¯æ³
### èæ¬
èæ¬ç¨åºå¯ä»¥å
å«ä»»æéç Java è¯å¥ãåéãæ¹æ³æè¡¨è¾¾å¼ï¼åªè¦å®ä»¬å¨èæ¬è¯è¨ä¸æ¯ææçã
èæ¬ç¨åºçè¯æ³æ ¼å¼ï¼
```
<% 代ç çæ®µ %>
```
æè
ï¼æ¨ä¹å¯ä»¥ç¼åä¸å
¶çä»·ç XML è¯å¥ï¼å°±åä¸é¢è¿æ ·ï¼
```
代ç çæ®µ
```
任使æ¬ãHTML æ ç¾ãJSP å
ç´ å¿
é¡»åå¨èæ¬ç¨åºçå¤é¢ã
ä¸é¢ç»åºä¸ä¸ªç¤ºä¾ï¼åæ¶ä¹æ¯æ¬æç¨ç第ä¸ä¸ª JSP 示ä¾ï¼
```
Hello World
Hello World!
<% out.println("Your IP address is " + request.getRemoteAddr()); %>
```
**注æï¼**è¯·ç¡®ä¿ Apache Tomcat å·²ç»å®è£
å¨ C:\apache-tomcat-7.0.2 ç®å½ä¸å¹¶ä¸è¿è¡ç¯å¢å·²ç»æ£ç¡®è®¾ç½®ã
å°ä»¥ä¸ä»£ç ä¿åå¨ hello.jsp ä¸ï¼ç¶åå°å®æ¾ç½®å¨ C:\apache-tomcat-7.0.2\webapps\ROOT ç®å½ä¸ï¼æå¼æµè§å¨å¹¶å¨å°åæ ä¸è¾å
¥ `http://localhost:8080/hello.jsp` ãè¿è¡åå¾å°ä»¥ä¸ç»æï¼

#### 䏿ç¼ç é®é¢
妿æä»¬è¦å¨é¡µé¢æ£å¸¸æ¾ç¤ºä¸æï¼æä»¬éè¦å¨ JSP æä»¶å¤´é¨æ·»å 以ä¸ä»£ç ï¼`<>`
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
```
æ¥ä¸æ¥æä»¬å°ä»¥ä¸ç¨åºä¿®æ¹ä¸ºï¼
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
è鏿ç¨(runoob.com)
Hello World!
<% out.println("ä½ ç IP å°å " + request.getRemoteAddr()); %>
```
è¿æ ·ä¸æå°±å¯ä»¥æ£å¸¸æ¾ç¤ºäºã
### JSP 声æ
ä¸ä¸ªå£°æè¯å¥å¯ä»¥å£°æä¸ä¸ªæå¤ä¸ªåéãæ¹æ³ï¼ä¾åé¢ç Java 代ç 使ç¨ãå¨ JSP æä»¶ä¸ï¼æ¨å¿
é¡»å
声æè¿äºåéåæ¹æ³ç¶åæè½ä½¿ç¨å®ä»¬ã
JSP 声æçè¯æ³æ ¼å¼ï¼
```
<%! declaration; [ declaration; ]+ ... %>
```
æè
ï¼æ¨ä¹å¯ä»¥ç¼åä¸å
¶çä»·ç XML è¯å¥ï¼å°±åä¸é¢è¿æ ·ï¼
```
代ç çæ®µ
```
ç¨åºç¤ºä¾ï¼
```
<%! int i = 0; %> <%! int a, b, c; %> <%! Circle a = new Circle(2.0); %>
```
### JSP 表达å¼
ä¸ä¸ª JSP 表达å¼ä¸å
å«çèæ¬è¯è¨è¡¨è¾¾å¼ï¼å
è¢«è½¬åæ Stringï¼ç¶åæå
¥å°è¡¨è¾¾å¼åºç°çå°æ¹ã
ç±äºè¡¨è¾¾å¼çå¼ä¼è¢«è½¬åæ Stringï¼æä»¥æ¨å¯ä»¥å¨ä¸ä¸ªææ¬è¡ä¸ä½¿ç¨è¡¨è¾¾å¼èä¸ç¨å»ç®¡å®æ¯å¦æ¯ HTML æ ç¾ã
表达å¼å
ç´ ä¸å¯ä»¥å
å«ä»»ä½ç¬¦å Java è¯è¨è§èç表达å¼ï¼ä½æ¯ä¸è½ä½¿ç¨åå·æ¥ç»æè¡¨è¾¾å¼ã
JSP 表达å¼çè¯æ³æ ¼å¼ï¼
```
<%= è¡¨è¾¾å¼ %>
```
åæ ·ï¼æ¨ä¹å¯ä»¥ç¼åä¸ä¹çä»·ç XML è¯å¥ï¼
```
表达å¼
```
ç¨åºç¤ºä¾ï¼
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
è鏿ç¨(runoob.com)
ä»å¤©çæ¥ææ¯: <%= (new java.util.Date()).toLocaleString()%>
```
è¿è¡åå¾å°ä»¥ä¸ç»æï¼
```
ä»å¤©çæ¥ææ¯: 2016-6-25 13:40:07
```
---
### JSP 注é
JSP 注éä¸»è¦æä¸¤ä¸ªä½ç¨ï¼ä¸ºä»£ç 使³¨é以åå°ææ®µä»£ç æ³¨éæã
JSP 注éçè¯æ³æ ¼å¼ï¼
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
JSP注é示ä¾
<%-- 该é¨å注éå¨ç½é¡µä¸ä¸ä¼è¢«æ¾ç¤º--%>
ä»å¤©çæ¥ææ¯: <%= (new java.util.Date()).toLocaleString()%>
```
è¿è¡åå¾å°ä»¥ä¸ç»æï¼
```
ä»å¤©çæ¥ææ¯: 2016-6-25 13:41:26
```
ä¸åæ
åµä¸ä½¿ç¨æ³¨éçè¯æ³è§åï¼
| **è¯æ³** | æè¿° |
| ---------------- | ----------------------------------------------------- |
| `<%-- 注é --%>` | JSP 注éï¼æ³¨éå
容ä¸ä¼è¢«åéè³æµè§å¨çè³ä¸ä¼è¢«ç¼è¯ |
| `` | HTML 注éï¼éè¿æµè§å¨æ¥çç½é¡µæºä»£ç æ¶å¯ä»¥çè§æ³¨éå
容 |
| `<%` | ä»£è¡¨éæ <%常é |
| `%>` | ä»£è¡¨éæ %> 常é |
| `'` | å¨å±æ§ä¸ä½¿ç¨çåå¼å· |
| `"` | å¨å±æ§ä¸ä½¿ç¨çåå¼å· |
### æ§å¶è¯å¥
JSP æä¾å¯¹ Java è¯è¨çå
¨é¢æ¯æãæ¨å¯ä»¥å¨ JSP ç¨åºä¸ä½¿ç¨ Java API çè³å»ºç« Java 代ç åï¼å
æ¬å¤æè¯å¥å循ç¯è¯å¥ççã
#### ifâ¦else è¯å¥
`Ifâ¦else`åï¼è¯·çä¸é¢è¿ä¸ªä¾åï¼
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%> <%! int day = 1; %>
02.JSPè¯æ³ - if...else示ä¾
IF...ELSE å®ä¾
<% if (day == 1 | day == 7) { %>
ä»å¤©æ¯å¨æ«
<% } else { %>
ä»å¤©ä¸æ¯å¨æ«
<% } %>
```
è¿è¡åå¾å°ä»¥ä¸ç»æï¼
```
IF...ELSE å®ä¾
ä»å¤©ä¸æ¯å¨æ«
```
#### switchâ¦case è¯å¥
ç°å¨æ¥çç switchâ¦case åï¼ä¸ ifâ¦else åæå¾å¤§çä¸åï¼å®ä½¿ç¨ out.println()ï¼å¹¶ä¸æ´ä¸ªé½è£
å¨èæ¬ç¨åºçæ ç¾ä¸ï¼å°±åä¸é¢è¿æ ·ï¼
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%> <%! int day = 3; %>
02.JSPè¯æ³ - switch...case示ä¾
Sswitch...case示ä¾
<% switch(day) { case 0: out.println("ææå¤©"); break; case 1:
out.println("ææä¸"); break; case 2: out.println("ææäº"); break; case 3:
out.println("ææä¸"); break; case 4: out.println("ææå"); break; case 5:
out.println("ææäº"); break; default: out.println("ææå
"); } %>
```
æµè§å¨è®¿é®ï¼è¿è¡åå¾åºä»¥ä¸ç»æï¼
```
SWITCH...CASE å®ä¾
ææä¸
```
#### 循ç¯è¯å¥
å¨ JSP ç¨åºä¸å¯ä»¥ä½¿ç¨ Java çä¸ä¸ªåºæ¬å¾ªç¯ç±»åï¼forï¼whileï¼å doâ¦whileã
让æä»¬æ¥çç for 循ç¯çä¾åï¼ä»¥ä¸è¾åºçä¸ååä½å¤§å°ç"è鏿ç¨"ï¼
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%> <%! int fontSize; %>
è鏿ç¨(runoob.com)
For 循ç¯å®ä¾
<%for ( fontSize = 1; fontSize <= 3; fontSize++){ %>
è鏿ç¨
<%}%>
```
è¿è¡åå¾å°ä»¥ä¸ç»æï¼

å°ä¸ä¾æ¹ç¨ while å¾ªç¯æ¥åï¼
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%> <%! int fontSize; %>
è鏿ç¨(runoob.com)
While 循ç¯å®ä¾
<%while ( fontSize <= 3){ %>
è鏿ç¨
<%fontSize++;%> <%}%>
```
æµè§å¨è®¿é®ï¼è¾åºç»æä¸ºï¼fontSize åå§å为 0ï¼æä»¥å¤è¾åºäºä¸è¡ï¼ï¼

JSP è¿ç®ç¬¦
JSP æ¯æææ Java é»è¾åç®æ¯è¿ç®ç¬¦ã
ä¸è¡¨ç½ååºäº JSP 常è§è¿ç®ç¬¦ï¼ä¼å
级ä»é«å°åºï¼
| **ç±»å«** | **æä½ç¬¦** | **ç»åæ§** |
| --------- | ----------------------------------- | ---------- |
| åç¼ | `() [] .` (ç¹è¿ç®ç¬¦) | å·¦å°å³ |
| ä¸å
| `++ - - ! ~` | å³å°å·¦ |
| å¯ä¹æ§ | `* / %` | å·¦å°å³ |
| å¯å æ§ | `+ -` | å·¦å°å³ |
| ç§»ä½ | `>> >>> <<` | å·¦å°å³ |
| å
³ç³» | `> >= < <=` | å·¦å°å³ |
| ç¸ç/ä¸ç | `== !=` | å·¦å°å³ |
| ä½ä¸ | `&` | å·¦å°å³ |
| ä½å¼æ | `^` | å·¦å°å³ |
| 使 | `|` | å·¦å°å³ |
| é»è¾ä¸ | `&&` | å·¦å°å³ |
| é»è¾æ | `||` | å·¦å°å³ |
| æ¡ä»¶å¤æ | `?:` | å³å°å·¦ |
| èµå¼ | `= += -= *= /= %= >>= <<= &= ^= |=` | å³å°å·¦ |
| éå· | `,` | å·¦å°å³ |
### JSP åé¢é
JSP è¯è¨å®ä¹äºä»¥ä¸å 个åé¢éï¼
- å¸å°å¼(boolean)ï¼true å false;
- æ´å(int)ï¼ä¸ Java ä¸ç䏿 ·;
- æµ®ç¹å(float)ï¼ä¸ Java ä¸ç䏿 ·;
- å符串(string)ï¼ä»¥åå¼å·æåå¼å·å¼å§åç»æ;
- Nullï¼nullã
## æä»¤
JSP æä»¤ç¨æ¥è®¾ç½®æ´ä¸ª JSP 页é¢ç¸å
³ç屿§ï¼å¦ç½é¡µçç¼ç æ¹å¼åèæ¬è¯è¨ã
JSP æä»¤ä»¥å¼`<%@`å¼å§ï¼ä»¥`%>`ç»æã
JSP æä»¤è¯æ³æ ¼å¼å¦ä¸ï¼
```
<%@ directive attribute="value" %>
```
æä»¤å¯ä»¥æå¾å¤ä¸ªå±æ§ï¼å®ä»¬ä»¥é®å¼å¯¹çå½¢å¼åå¨ï¼å¹¶ç¨éå·éå¼ã
JSP ä¸çä¸ç§æä»¤æ ç¾ï¼
| **æä»¤** | **æè¿°** |
| -------------------- | -------------------------------------------------------- |
| `<%@ page ... %>` | å®ä¹ç½é¡µä¾èµå±æ§ï¼æ¯å¦èæ¬è¯è¨ãerror 页é¢ãç¼åéæ±çç |
| `<%@ include ... %>` | å
å«å
¶ä»æä»¶ |
| `<%@ taglib ... %>` | å¼å
¥æ ç¾åºçå®ä¹ï¼å¯ä»¥æ¯èªå®ä¹æ ç¾ |
### Page æä»¤
Page æä»¤ä¸ºå®¹å¨æä¾å½å页é¢ç使ç¨è¯´æãä¸ä¸ª JSP 页é¢å¯ä»¥å
å«å¤ä¸ª`page`æä»¤ã
Page æä»¤çè¯æ³æ ¼å¼ï¼
```
<%@ page attribute="value" %>
```
çä»·ç XML æ ¼å¼ï¼
```
```
ä¾ï¼
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
```
#### 屿§
ä¸è¡¨ååºä¸ Page æä»¤ç¸å
³ç屿§ï¼
| **屿§** | **æè¿°** |
| ------------------ | ----------------------------------------------------- |
| buffer | æå® out 对象使ç¨ç¼å²åºçå¤§å° |
| autoFlush | æ§å¶ out 对象ç ç¼ååº |
| contentType | æå®å½å JSP 页é¢ç MIME ç±»ååå符ç¼ç |
| errorPage | æå®å½ JSP 页é¢åçå¼å¸¸æ¶éè¦è½¬åçé误å¤çé¡µé¢ |
| isErrorPage | æå®å½å页颿¯å¦å¯ä»¥ä½ä¸ºå¦ä¸ä¸ª JSP 页é¢çé误å¤çé¡µé¢ |
| extends | æå® servlet ä»åªä¸ä¸ªç±»ç»§æ¿ |
| import | 导å
¥è¦ä½¿ç¨ç Java ç±» |
| info | å®ä¹ JSP 页é¢çæè¿°ä¿¡æ¯ |
| isThreadSafe | æå®å¯¹ JSP 页é¢çè®¿é®æ¯å¦ä¸ºçº¿ç¨å®å
¨ |
| language | å®ä¹ JSP 页颿ç¨çèæ¬è¯è¨ï¼é»è®¤æ¯ Java |
| session | æå® JSP 页颿¯å¦ä½¿ç¨ session |
| isELIgnored | æå®æ¯å¦æ§è¡ EL è¡¨è¾¾å¼ |
| isScriptingEnabled | ç¡®å®èæ¬å
ç´ è½å¦è¢«ä½¿ç¨ |
### Include æä»¤
JSP å¯ä»¥éè¿`include`æä»¤æ¥å
å«å
¶ä»æä»¶ã
被å
å«çæä»¶å¯ä»¥æ¯ JSP æä»¶ãHTML æä»¶æææ¬æä»¶ãå
å«çæä»¶å°±å¥½åæ¯è¯¥ JSP æä»¶çä¸é¨åï¼ä¼è¢«åæ¶ç¼è¯æ§è¡ã
Include æä»¤çè¯æ³æ ¼å¼å¦ä¸ï¼
```
<%@ include file="æä»¶ç¸å¯¹ url å°å" %>
```
**include** æä»¤ä¸çæä»¶åå®é
䏿¯ä¸ä¸ªç¸å¯¹ç URL å°åã
å¦ææ¨æ²¡æç»æä»¶å
³èä¸ä¸ªè·¯å¾ï¼JSP ç¼è¯å¨é»è®¤å¨å½åè·¯å¾ä¸å¯»æ¾ã
çä»·ç XML è¯æ³ï¼
```
```
### Taglib æä»¤
JSP å
è®¸ç¨æ·èªå®ä¹æ ç¾ï¼ä¸ä¸ªèªå®ä¹æ ç¾åºå°±æ¯èªå®ä¹æ ç¾çéåã
`taglib`æä»¤å¼å
¥ä¸ä¸ªèªå®ä¹æ ç¾éåçå®ä¹ï¼å
æ¬åºè·¯å¾ãèªå®ä¹æ ç¾ã
`taglib`æä»¤çè¯æ³ï¼
```
<%@ taglib uri="uri" prefix="prefixOfTag" %>
```
uri 屿§ç¡®å®æ ç¾åºçä½ç½®ï¼prefix 屿§æå®æ ç¾åºçåç¼ã
çä»·ç XML è¯æ³ï¼
```
```
## JSP å¨ä½å
ç´
JSP å¨ä½å
ç´ æ¯ä¸ç» JSP å
ç½®çæ ç¾ï¼åªéè¦ä¹¦åå¾å°çæ 记代ç å°±è½ä½¿ç¨ JSP æä¾ç丰å¯åè½ãJSP å¨ä½å
ç´ æ¯å¯¹å¸¸ç¨ç JSP åè½çæ½è±¡ä¸å°è£
ï¼å
æ¬ä¸¤ç§ï¼èªå®ä¹ JSP å¨ä½å
ç´ ä¸æ å JSP å¨ä½å
ç´ ã
ä¸ JSP æä»¤å
ç´ ä¸åçæ¯ï¼JSP å¨ä½å
ç´ å¨è¯·æ±å¤çé¶æ®µèµ·ä½ç¨ãJSP å¨ä½å
ç´ æ¯ç¨ XML è¯æ³åæçã
å©ç¨ JSP å¨ä½å¯ä»¥å¨æå°æå
¥æä»¶ãéç¨ JavaBean ç»ä»¶ãæç¨æ·éå®åå°å¦å¤ç页é¢ã为 Java æä»¶çæ HTML 代ç ã
å¨ä½å
ç´ åªæä¸ç§è¯æ³ï¼å®ç¬¦å XML æ åï¼
```
```
å¨ä½å
ç´ åºæ¬ä¸é½æ¯é¢å®ä¹ç彿°ï¼JSP è§èå®ä¹äºä¸ç³»åçæ åå¨ä½ï¼å®ç¨ JSP ä½ä¸ºåç¼ï¼å¯ç¨çæ åå¨ä½å
ç´ å¦ä¸ï¼
| è¯æ³ | æè¿° |
| --------------- | ----------------------------------------------------- |
| jsp:include | å¨é¡µé¢è¢«è¯·æ±çæ¶åå¼å
¥ä¸ä¸ªæä»¶ã |
| jsp:useBean | å¯»æ¾æè
å®ä¾åä¸ä¸ª JavaBeanã |
| jsp:setProperty | 设置 JavaBean ç屿§ã |
| jsp:getProperty | è¾åºæä¸ª JavaBean ç屿§ã |
| jsp:forward | æè¯·æ±è½¬å°ä¸ä¸ªæ°ç页é¢ã |
| jsp:plugin | æ ¹æ®æµè§å¨ç±»å为 Java æä»¶çæ OBJECT æ EMBED æ è®°ã |
| jsp:element | å®ä¹å¨æ XML å
ç´ |
| jsp:attribute | è®¾ç½®å¨æå®ä¹ç XML å
ç´ å±æ§ã |
| jsp:body | è®¾ç½®å¨æå®ä¹ç XML å
ç´ å
容ã |
| jsp:text | å¨ JSP 页é¢åææ¡£ä¸ä½¿ç¨åå
¥ææ¬çæ¨¡æ¿ |
### 常è§ç屿§
ææçå¨ä½è¦ç´ é½æä¸¤ä¸ªå±æ§ï¼id 屿§å scope 屿§ã
- **id 屿§ï¼**id 屿§æ¯å¨ä½å
ç´ çå¯ä¸æ è¯ï¼å¯ä»¥å¨ JSP 页é¢ä¸å¼ç¨ãå¨ä½å
ç´ å建ç id å¼å¯ä»¥éè¿ PageContext æ¥è°ç¨ã
- **scope 屿§ï¼**è¯¥å±æ§ç¨äºè¯å«å¨ä½å
ç´ ççå½å¨æã id 屿§å scope 屿§æç´æ¥å
³ç³»ï¼scope 屿§å®ä¹äºç¸å
³è id 对象ç寿å½ã scope 屿§æå个å¯è½çå¼ï¼ (a) page, (b)request, (c)session, å (d) applicationã
### ``
`` ç¨æ¥å
å«éæå卿çæä»¶ã该å¨ä½ææå®æä»¶æå
¥æ£å¨çæç页é¢ã
å¦æè¢«å
å«çæä»¶ä¸º JSP ç¨åºï¼åä¼å
æ§è¡ JSP ç¨åºï¼åå°æ§è¡ç»æå
å«è¿æ¥ã
è¯æ³æ ¼å¼å¦ä¸ï¼
```
```
åé¢å·²ç»ä»ç»è¿ include æä»¤ï¼å®æ¯å¨ JSP æä»¶è¢«è½¬æ¢æ Servlet çæ¶åå¼å
¥æä»¶ï¼èè¿éç jsp:include å¨ä½ä¸åï¼æå
¥æä»¶çæ¶é´æ¯å¨é¡µé¢è¢«è¯·æ±çæ¶åã
以䏿¯ include å¨ä½ç¸å
³ç屿§å表ã
| 屿§ | æè¿° |
| ----- | ------------------------------------------ |
| page | å
å«å¨é¡µé¢ä¸çç¸å¯¹ URL å°åã |
| flush | å¸å°å±æ§ï¼å®ä¹å¨å
å«èµæºåæ¯å¦å·æ°ç¼ååºã |
示ä¾ï¼
以䏿们å®ä¹äºä¸¤ä¸ªæä»¶ **date.jsp** å **main.jsp**ï¼ä»£ç å¦ä¸æç¤ºï¼
date.jsp æä»¶ä»£ç ï¼
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
ä»å¤©çæ¥ææ¯: <%= (new java.util.Date())%>
```
main.jsp æä»¶ä»£ç ï¼
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
è鏿ç¨(runoob.com)
include å¨ä½å®ä¾
```
ç°å¨å°ä»¥ä¸ä¸¤ä¸ªæä»¶æ¾å¨æå¡å¨çæ ¹ç®å½ä¸ï¼è®¿é® main.jsp æä»¶ãæ¾ç¤ºç»æå¦ä¸ï¼
```
include å¨ä½å®ä¾
ä»å¤©çæ¥ææ¯: 2016-6-25 14:08:17
```
### ``
**jsp:useBean** å¨ä½ç¨æ¥å è½½ä¸ä¸ªå°å¨ JSP 页é¢ä¸ä½¿ç¨ç JavaBeanã
è¿ä¸ªåè½é常æç¨ï¼å 为å®ä½¿å¾æä»¬å¯ä»¥åæ¥ Java ç»ä»¶å¤ç¨çä¼å¿ã
jsp:useBean å¨ä½æç®åçè¯æ³ä¸ºï¼
```
```
å¨ç±»è½½å
¥åï¼æä»¬æ¢å¯ä»¥éè¿ jsp:setProperty å jsp:getProperty å¨ä½æ¥ä¿®æ¹åæ£ç´¢ bean ç屿§ã
以䏿¯ useBean å¨ä½ç¸å
³ç屿§å表ã
| 屿§ | æè¿° |
| -------- | ------------------------------------------------------------- |
| class | æå® Bean ç宿´å
åã |
| type | æå®å°å¼ç¨è¯¥å¯¹è±¡åéçç±»åã |
| beanName | éè¿ java.beans.Beans ç instantiate() æ¹æ³æå® Bean çååã |
å¨ç»åºå
·ä½å®ä¾åï¼è®©æä»¬å
æ¥çä¸ jsp:setProperty å jsp:getProperty å¨ä½å
ç´ ï¼
### ``
jsp:setProperty ç¨æ¥è®¾ç½®å·²ç»å®ä¾åç Bean 对象ç屿§ï¼æä¸¤ç§ç¨æ³ãé¦å
ï¼ä½ å¯ä»¥å¨ jsp:useBean å
ç´ çå¤é¢ï¼åé¢ï¼ä½¿ç¨ jsp:setPropertyï¼å¦ä¸æç¤ºï¼
```
...
```
æ¤æ¶ï¼ä¸ç®¡ jsp:useBean æ¯æ¾å°äºä¸ä¸ªç°æç Beanï¼è¿æ¯æ°å建äºä¸ä¸ª Bean å®ä¾ï¼jsp:setProperty é½ä¼æ§è¡ã第äºç§ç¨æ³æ¯æ jsp:setProperty æ¾å
¥ jsp:useBean å
ç´ çå
é¨ï¼å¦ä¸æç¤ºï¼
```
...
```
æ¤æ¶ï¼jsp:setProperty åªæå¨æ°å»º Bean å®ä¾æ¶æä¼æ§è¡ï¼å¦ææ¯ä½¿ç¨ç°æå®ä¾å䏿§è¡ jsp:setPropertyã
jsp:setProperty å¨ä½æä¸é¢åä¸ªå±æ§,å¦ä¸è¡¨ï¼
| 屿§ | æè¿° |
| -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| name | name 屿§æ¯å¿
éçãå®è¡¨ç¤ºè¦è®¾ç½®å±æ§çæ¯åªä¸ª Beanã |
| property | property 屿§æ¯å¿
éçãå®è¡¨ç¤ºè¦è®¾ç½®åªä¸ªå±æ§ãæä¸ä¸ªç¹æ®ç¨æ³ï¼å¦æ property ç弿¯"\*"ï¼è¡¨ç¤ºææååå Bean 屿§ååå¹é
ç请æ±åæ°é½å°è¢«ä¼ éç»ç¸åºç屿§ set æ¹æ³ã |
| value | value 屿§æ¯å¯éçãè¯¥å±æ§ç¨æ¥æå® Bean 屿§çå¼ãåç¬¦ä¸²æ°æ®ä¼å¨ç®æ ç±»ä¸éè¿æ åç valueOf æ¹æ³èªå¨è½¬æ¢ææ°åãbooleanãBooleanã byteãByteãcharãCharacterãä¾å¦ï¼boolean å Boolean ç±»åç屿§å¼ï¼æ¯å¦"true"ï¼éè¿ Boolean.valueOf 转æ¢ï¼int å Integer ç±»åç屿§å¼ï¼æ¯å¦"42"ï¼éè¿ Integer.valueOf 转æ¢ã ãã value å param ä¸è½åæ¶ä½¿ç¨ï¼ä½å¯ä»¥ä½¿ç¨å
¶ä¸ä»»æä¸ä¸ªã |
| param | param æ¯å¯éçã宿å®ç¨åªä¸ªè¯·æ±åæ°ä½ä¸º Bean 屿§çå¼ã妿å½åè¯·æ±æ²¡æåæ°ï¼åä»ä¹äºæ
ä¹ä¸åï¼ç³»ç»ä¸ä¼æ null ä¼ éç» Bean 屿§ç set æ¹æ³ãå æ¤ï¼ä½ å¯ä»¥è®© Bean èªå·±æä¾é»è®¤å±æ§å¼ï¼åªæå½è¯·æ±åæ°æç¡®æå®äºæ°å¼æ¶æä¿®æ¹é»è®¤å±æ§å¼ã |
### ``
jsp:getProperty å¨ä½æåæå® Bean 屿§çå¼ï¼è½¬æ¢æå符串ï¼ç¶åè¾åºãè¯æ³æ ¼å¼å¦ä¸ï¼
```
...
```
ä¸è¡¨æ¯ä¸ getProperty ç¸å
³èç屿§ï¼
| 屿§ | æè¿° |
| -------- | ----------------------------------------- |
| name | è¦æ£ç´¢ç Bean 屿§åç§°ãBean å¿
须已å®ä¹ã |
| property | è¡¨ç¤ºè¦æå Bean 屿§çå¼ |
å®ä¾
以ä¸å®ä¾æä»¬ä½¿ç¨äº Bean:
```java
package com.runoob.main;
public class TestBean {
private String message = "è鏿ç¨";
public String getMessage() {
return(message);
}
public void setMessage(String message) {
this.message = message;
}
}
```
ç¼è¯ä»¥ä¸å®ä¾æä»¶ TestBean.java ï¼
```
$ javac TestBean.java
```
ç¼è¯å®æåä¼å¨å½åç®å½ä¸çæä¸ä¸ª **TestBean.class** æä»¶ï¼ å°è¯¥æä»¶æ·è´è³å½å JSP 项ç®ç **WebContent/WEB-INF/classes/com/runoob/main** ä¸( com/runoob/main å
è·¯å¾ï¼æ²¡æéè¦æå¨å建)ã
ä¸é¢æ¯ä¸ä¸ª Eclipse ä¸ç®å½ç»æå¾ï¼

ä¸é¢æ¯ä¸ä¸ªå¾ç®åçä¾åï¼å®çåè½æ¯è£
è½½ä¸ä¸ª Beanï¼ç¶å设置/读åå®ç message 屿§ã
ç°å¨è®©æä»¬å¨ main.jsp æä»¶ä¸è°ç¨è¯¥ Bean:
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
è鏿ç¨(runoob.com)
Jsp ä½¿ç¨ JavaBean å®ä¾
è¾åºä¿¡æ¯....
```
æµè§å¨è®¿é®ï¼æ§è¡ä»¥ä¸æä»¶ï¼è¾åºå¦ä¸æç¤ºï¼

### ``
jsp:forward å¨ä½æè¯·æ±è½¬å°å¦å¤ç页é¢ãjsp:forward æ è®°åªæä¸ä¸ªå±æ§ pageãè¯æ³æ ¼å¼å¦ä¸æç¤ºï¼
```
```
以䏿¯ forward ç¸å
³èç屿§ï¼
| 屿§ | æè¿° |
| ---- | ----------------------------------------------------------------------------------------------------------------------------- |
| page | page 屿§å
å«çæ¯ä¸ä¸ªç¸å¯¹ URLãpage ç弿¢å¯ä»¥ç´æ¥ç»åºï¼ä¹å¯ä»¥å¨è¯·æ±çæ¶åå¨æè®¡ç®ï¼å¯ä»¥æ¯ä¸ä¸ª JSP 页颿è
ä¸ä¸ª Java Servlet. |
å®ä¾
以ä¸å®ä¾æä»¬ä½¿ç¨äºä¸¤ä¸ªæä»¶ï¼å嫿¯ï¼ date.jsp å main.jspã
date.jsp æä»¶ä»£ç å¦ä¸ï¼
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
ä»å¤©çæ¥ææ¯: <%= (new java.util.Date()).toLocaleString()%>
```
main.jsp æä»¶ä»£ç ï¼
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
è鏿ç¨(runoob.com)
forward å¨ä½å®ä¾
```
ç°å¨å°ä»¥ä¸ä¸¤ä¸ªæä»¶æ¾å¨æå¡å¨çæ ¹ç®å½ä¸ï¼è®¿é® main.jsp æä»¶ãæ¾ç¤ºç»æå¦ä¸ï¼
```
ä»å¤©çæ¥ææ¯: 2016-6-25 14:37:25
```
### ``
jsp:plugin å¨ä½ç¨æ¥æ ¹æ®æµè§å¨çç±»åï¼æå
¥éè¿ Java æä»¶ è¿è¡ Java Applet æå¿
éç OBJECT æ EMBED å
ç´ ã
妿éè¦çæä»¶ä¸åå¨ï¼å®ä¼ä¸è½½æä»¶ï¼ç¶åæ§è¡ Java ç»ä»¶ã Java ç»ä»¶å¯ä»¥æ¯ä¸ä¸ª applet æä¸ä¸ª JavaBeanã
plugin å¨ä½æå¤ä¸ªå¯¹åº HTML å
ç´ ç屿§ç¨äºæ ¼å¼å Java ç»ä»¶ãparam å
ç´ å¯ç¨äºå Applet æ Bean ä¼ éåæ°ã
以䏿¯ä½¿ç¨ plugin å¨ä½å
ç´ çå
¸åå®ä¾:
```
Unable to initialize Java Plugin
```
å¦æä½ æå
´è¶£å¯ä»¥å°è¯ä½¿ç¨ applet æ¥æµè¯ `jsp:plugin` å¨ä½å
ç´ ï¼`` å
ç´ æ¯ä¸ä¸ªæ°å
ç´ ï¼å¨ç»ä»¶åºç°æ
éçé误æ¯åéç»ç¨æ·é误信æ¯ã
### `` ã ``ã``
`` ã ``ã`` å¨ä½å
ç´ å¨æå®ä¹ XML å
ç´ ã卿æ¯é常éè¦çï¼è¿å°±æå³ç XML å
ç´ å¨ç¼è¯æ¶æ¯å¨æçæçèééæã
以ä¸å®ä¾å¨æå®ä¹äº XML å
ç´ ï¼
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
è鏿ç¨(runoob.com)
屿§å¼
XML å
ç´ ç主ä½
```
æµè§å¨è®¿é®ä»¥ä¸é¡µé¢ï¼è¾åºç»æå¦ä¸æç¤ºï¼

### ``
å¨ä½å
ç´ å
è®¸å¨ JSP 页é¢åææ¡£ä¸ä½¿ç¨åå
¥ææ¬ç模æ¿ï¼è¯æ³æ ¼å¼å¦ä¸ï¼
```
æ¨¡æ¿æ°æ®
```
ä»¥ä¸ææ¬æ¨¡æ¿ä¸è½å
å«å
¶ä»å
ç´ ï¼åªè½åªè½å
嫿æ¬å EL 表达å¼ï¼æ³¨ï¼EL 表达å¼å°å¨åç»ç« èä¸ä»ç»ï¼ã请注æï¼å¨ XML æä»¶ä¸ï¼æ¨ä¸è½ä½¿ç¨è¡¨è¾¾å¼å¦ ${whatever > 0}ï¼å 为>ç¬¦å·æ¯éæ³çã ä½ å¯ä»¥ä½¿ç¨ ${whatever gt 0}è¡¨è¾¾å¼æè
åµå
¥å¨ä¸ä¸ª CDATA é¨åçå¼ã
```
<![CDATA[
]]>
```
å¦æä½ éè¦å¨ XHTML ä¸å£°æ DOCTYPE,å¿
须使ç¨å° `` å¨ä½å
ç´ ï¼å®ä¾å¦ä¸ï¼
```
<![CDATA[]]>
jsp:text action
Welcome to JSP Programming