一、jsp頁面組成
在一個JSP頁面中,可以包括指令標識、HTML代碼、javaScript代碼、嵌入的Java代碼、注釋和JSP動作動作標識等內容。
例如:
<%@ page language="java" contentType="text/html;charset=GB18030" pageEncoding="GB18030"%><%@ page import="java.util.Date" %><%@ page import="java.text.SimpleDateFormat" %><html><head><meta http-equiv="Content-Type" content="text/html;charset=GB18030"><title>我的第一個jsp頁面</title></head><body><% Date date=new Date(); SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String today=df.format(date);%>當前時間:<%=today %> <!-- 輸出系統時間 --></body></html>二、指令標識指令標識主要用于設定整個JSP頁面范圍內都有效的相關信息,它是被服務器解釋并執行的,不會產生任何內容輸出到網頁中,對客戶端瀏覽器是不可見的,JSP指令標識的語法格式:<%@ 指令名 屬性1="屬性值1" 屬性2="屬性2的值" ... %>
說明:
1.指令名:用于指定指令的名稱,JSP包含3條指令:page,include,taglib
2.各屬性間可用逗號或空格分隔
3. <%@?。?gt;是完整的標記,不能添加空格
2.1 page指令JSP頁面中最常用的命令,用于定義整個JSP頁面的相關屬性,這些屬性在JSP被服務器解析成Servlet時會轉換為響應的Java程序代碼。page指令的語法格式如下:
<%@ page atr1="value1" att2="value2" ... %>
page指令包含15個屬性:language,extends,import,...
2.2 include指令
通過該指令可以在一個JSP頁面中包含另一個JSP頁面,不過該指令是靜態包含(被包含文件中的所有內容會被原樣包含到該JSP頁面中,所以在被包含文件和包含文件中不能含有相同名稱的變量),語法格式如下:
<%@ include file="path"%>只有一個file屬性,指定要包含的文件路徑。
例如:
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> <title>使用文件包含include指令</title> </head> <body style="margin:0px;"> <%@ include file="copyright.jsp" %> </body></html>2.3 taglib指令
聲明該頁面中所使用的標簽庫,同時引用標簽庫,并指定標簽的前綴。在頁面中引用標簽庫后,就可以通過前綴來引用標簽庫中的標簽。指令語法格式如下:
<%@ taglib PRefix="tagPrefix" url="tagURL" %>
prefix:指定標簽的前綴
url:指定標簽庫文件的存放位置
三、腳本標識
腳本標識能夠很方便、靈活的生成頁面中的動態內容,包括3部分:JSP表達式,聲明標識和腳本程序。
3.1 JSP表達式
用于向頁面中輸出信息,其語法格式為:
<%= 表達式%>
說明:
1.%和=之間不可以有空格,=與其后邊的表達式之間可以有空格
2.表達式可以是任何java語言的完整表達式。該表達式的最終運算結果將被轉換為字符串。
例如:
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> <title>JSP表達式</title> </head> <body> <%String manager="mr"; %> 管理員:<%=manager %> <%="管理員:"+manager %> <%=5+6 %> <%String url="my.jpg"; %> <img src="imag/<%=url %>"> </body></html>3.2 聲明標識
用于定義全局的變量或方法。語法格式如下:
<%! 聲明變量或方法的代碼 %>
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> <title>JSP聲明標識</title> </head> <body> <%! int number=0; int count(){ number++; return number; } %> 刷新次數:<%=count() %> </body></html>3.3 代碼片段
在JSP頁面中嵌入的Java代碼或是腳本代碼。語法格式:
<% Java代碼或是腳本代碼 %>
說明:
聲明標識聲明周期:從創建開始到服務器關閉結束;
代碼片段聲明周期:創建開始到頁面關閉后;二者有效范圍均為當前JSP頁面
例如:
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> <title>JSP代碼片段</title> </head> <body> <% String str=""; for(int i=1;i<=9;i++){ for(int j=1;j<=i;j++){ str+=j+"*"+i+"="+j*i; str+=" "; } str+="<br>"; } %> <table > <tr> <td height="30" align="center">九九乘法表</td> </tr> <tr> <td style="padding:3pt"> <%=str %> </td> </tr> </table> </body></html>3.4 JSP注釋
1. 單行注釋://
2. 多號注釋:/* */
3.提示文檔注釋:/** */
4. 隱藏注釋:<%-- 注釋內容 --%>
5. 動態注釋:<!-- 動態注釋 -->
3.5 動作標識
1. 包含文件標識:<jsp:include>
被包含的文件可以是動態文件,也可以是靜態文件。語法格式如下:
<jsp:include page="url" flush="false|true" />
或:<jsp:include page="url" flush="false|true" >
子動作標識<jsp:param></jsp:include>2.請求轉發標識:<jsp:forward>
將請求轉發到其他web資源。語法格式如下:
<jsp:forward page="url" />
或:
<jsp:forward page="url" >
子動作標識<jsp:param>
</jsp:forward>例如:
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=GB18030"><title>中轉頁</title></head><body><jsp:forward page="login.jsp" /></body></html>3. 傳遞參數標識<jsp:param>
可作為其它標識的字標識,用于為其他標識傳遞參數。語法格式為:
<jsp:param name="參數名" value="參數值" />
如下列代碼實現在請求轉發到modify.jsp頁面的同時,傳遞了參數userId,其參數值為7:
<jsp:forward page="modify.jsp"> <jsp:param name="userId" value="7" /></jsp:forward>
新聞熱點
疑難解答