1、JSP的四種基本語法
生成輸出內(nèi)容
- JSP注釋:<%-- --%>
- JSP聲明:<%! %>
- JSP輸出表達(dá)式:<%= %>
- JSP小腳本:<% %>
2、JSP三個編譯指令
用于通知JSP引擎
- page:是針對當(dāng)前頁面的指令
- include:用于指定包含另一個頁面
- taglib:用于定義和訪問自定義標(biāo)簽
使用上述編譯指令的格式:<%@ 編譯指令名 屬性名="屬性值" %>
3、JSP七個動作指令
動作指令表示的是JSP運行時的動作
格式:<jsp:具體的動作指令代碼 屬性名="屬性值" />
- jsp:forward
- jsp:param
- jsp:include
- jsp:plugin
- jsp:useBean
- jsp:setProperty
- jsp:getProperty
下面內(nèi)容寫的很辣雞,隨便看看(上面也不怎么樣)
1、JSP原理
生命周期:
- 編譯階段:servlet容器編譯servlet源文件,生成servlet類
- 初始化階段:加載與JSP對應(yīng)的servlet類,創(chuàng)建其實例,并調(diào)用它的初始化方法
- 執(zhí)行階段:調(diào)用與JSP對應(yīng)的servlet實例的服務(wù)方法
- 銷毀階段:調(diào)用與JSP對應(yīng)的servlet實例的銷毀方法,然后銷毀servlet實例
2、簡單實例
jsp代碼塊中也可以嵌套html元素,如:
例1:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%! int day = 3; %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鳥教程(runoob.com)</title>
</head>
<body>
<h3>IF...ELSE 實例</h3>
<% if (day == 1 | day == 7) { %>
<p>今天是周末</p>
<% } else { %>
<p>今天不是周末</p>
<% } %>
</body>
</html>
例2:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%! int fontSize; %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鳥教程(runoob.com)</title>
</head>
<body>
<h3>For 循環(huán)實例</h3>
<%for ( fontSize = 1; fontSize <= 3; fontSize++){ %>
<font color="green" size="<%= fontSize %>">
菜鳥教程
</font><br />
<%}%>
</body>
</html>
3、使用include包含其他的JSP文件
寫兩個文件date.jsp 和main.jsp。
date.jsp文件代碼:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<p>
今天的日期是: <%= (new java.util.Date()).toLocaleString()%>
</p>
main.jsp文件代碼:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鳥教程(runoob.com)</title>
</head>
<body>
<h2>include 動作實例</h2>
<jsp:include page="date.jsp" flush="true" />
</body>
</html>
現(xiàn)在將以上兩個文件放在服務(wù)器的根目錄下,訪問main.jsp文件。顯示結(jié)果如下:

結(jié)果
<jsp:include page="date.jsp" flush="true" />中flush="true"表示在包含資源前刷新了緩存區(qū)。
4、在JSP中使用JavaBean類
一個JavaBean類:
public class TestBean {
private String message = "菜鳥教程";
public String getMessage() {
return(message);
}
public void setMessage(String message) {
this.message = message;
}
}
編譯以上實例文件 TestBean.java :
$ javac TestBean.java
編譯完成后會在當(dāng)前目錄下生成一個TestBean.class文件, 將該文件拷貝至當(dāng)前 JSP 項目的 WebContent/WEB-INF/classes/com/runoob/main 下( com/runoob/main 包路徑,沒有需要手動創(chuàng)建)。
下面是一個 Eclipse 中目錄結(jié)構(gòu)圖:

文件位置
接著讓我們在main.jsp文件中調(diào)用該Bean:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鳥教程(runoob.com)</title>
</head>
<body>
<h2>Jsp 使用 JavaBean 實例</h2>
<jsp:useBean id="test" class="com.runoob.main.TestBean" />
<jsp:setProperty name="test"
property="message"
value="菜鳥教程..." />
<p>輸出信息....</p>
<jsp:getProperty name="test" property="message" />
</body>
</html>
- 注意上面這里
<jsp:useBean id="test" class="com.runoob.main.TestBean" />表示使用使用這個JavaBean類,并且設(shè)了一個id為test(這個id后面有用) - 接著,
<jsp:setProperty name="test"
property="message"
value="菜鳥教程..." />
- 這里的
name屬性的值與之前的id相同,然后指定改變TestBean中的message屬性的值為“菜鳥教程···” - 注意
jsp:setProperty只有在新建Bean實例時才會執(zhí)行,如果是使用現(xiàn)有實例則不執(zhí)行jsp:setProperty。
5、其他JSP元素
<jsp:forward page="相對 URL 地址" />
把請求轉(zhuǎn)到另外的頁面