JSP頁面的構成


 JSP頁面就是帶有JSP元素的常規Web頁面,它由靜態內容和動態內容構成。其中,靜態內容指HTML元素,動態內容(JSP元素)包括指令元素、腳本元素、動作元素、注釋等內容。

1、指令元素
    指令元素主要用於為轉換階段提供JSP頁面的相關信息,指令不會產生任何輸出到當前的輸出流中,它指定了有關頁面本身的信息,這些信息在請求之間一直保持不變。指令元素語法為<%@ directive{attr="value"}%>。指令元素有三種:page、include、taglib。
     1)page
        該指令用於整個頁面,定義與頁面相關的屬性,它是JSP頁面和容器的通信員,一般放在JSP頁面的第一行。與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 確定腳本元素能否被使用
        a、import="導包列表",可以多次導入,也可以用逗號分隔開。
        b、language=“scriptingLangeuage”,指定在腳本元素使用的腳本語言,默認是Java。
        c、contentType="cinfo",指定HTTP響應的頭部的Content-Type值。客戶端的瀏覽器會根據我們在contentType中指定的MIME類型和字符集代碼來顯示Servlet輸出的內容。
常見的MIME類型有:
MIME類型 文件格式
application/msword Microsoft Word文檔
application/pdf Acrobat PDF文件
application/vnd.ms-excel Microsoft Excel表格
audio/x-wav WAV格式的音頻文件
text/html HTML格式的文本文檔
text/css HTML層疊樣式表
text/plain 普通文本文檔
image/jpeg JPEG格式圖片
video/mpeg MPEG格式視頻文件

        d、pageEncoding="peingo",指定頁面的字符編碼,如果設置了這個屬性,則JSP頁面的字符編碼就是它指定的字符集,如果沒有則默認的是ISO-8859-1。

     2)include
        該指令用於在JSP頁面中包含一個文件,該文件可以是JSP頁面、HTML網頁、文本文件或一段Java代碼。
            <%@ include file="相對於當前文件的" %>
     3)taglib
        該指令允許頁面使用用戶定制的標簽。
            <%@taglib prefix="前綴" uri="具有唯一標識和前綴相關的標簽描述符地址" %>
 
2、腳本元素
    使用JSP腳本元素可以將Java代碼嵌入到JSP頁面里,這些Java代碼將出現在由當前JSP頁面生成的Servelt中,使JSP將靜態內容與動態內容分離出來。腳本元素包含表達式、腳本和聲明等。
    1)表達式
        表達式是對數據的表示,系統將其作為一個值進行計算。
            <%= expression%>
        例如<%= user.getName()%>在將JSP轉換成Servlet后,使用out.print()將表達式的值輸出。所以如果表達式是調用一個方法的話,那方法必須要有返回值,而且在方法的后面不能有分號。
     2)腳本
        腳本是在<% ... %>里嵌入的Java代碼,這里的Java代碼與一般的Java代碼沒有什么區別,所以每一條語句同樣要以分號“;”結束,這和表達式是不同的。
            <%  code  %>
     3)聲明
        聲明就是允許用戶定義Servlet中的變量、方法。
            <%! code %>
        例如:<%! String getName(){return name; }%>,聲明的本質其實就是將聲明的變量加入到Servlet類(在任何方法之外)中,方法就成了Servlet的方法。
例子:九九乘法表
index.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD//XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<html>
<head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
    <title>九九乘法表</title>
</head>
<body>
<br/>
<form id="form1" name="form1" method="post" action="result.jsp">
    <p align="center">請輸入兩個自然數給您打印乘法表</p>
    <p align="center">要求:startNumber &lt;endNumber <br/></p>
    <table width="350" border="1" align="center" cellpadding="0"
           cellspacing="0" bgcolor="#aaccdd" bordercolor="#cccccc">
        <tr>
            <td width="101">startNumber:</td>
            <td width="113">
                <label>
                    <input name="s" type="text" id="textfield" size="15" maxlength="8" height="20"/>
                </label>
            </td>
            <td width="68">&nbsp;<br/></td>
        </tr>
        <tr>
            <td>endNumber</td>
            <td>
                <label>
                    <input name="e" type="text" id="textfield2" size="15" maxlength="8" height="20"/>
                </label>
            </td>
            <td>&nbsp;<br/></td>
        </tr>
        <tr>
            <td>&nbsp;</td>
            <td>
                <label>
                    <input type="submit" name="button" id="button" value="submit"/>
                    <input name="button2" type="reset" id="button2" value="reset"/>
                </label>
            </td>
            <td>&nbsp;</td>
        </tr>
    </table>
</form>
</body>
</html>

 result.jsp:

<%@ page import="java.io.PrintWriter" %>
<%@ page contentType="text/html;charset=UTF-8" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<html>
<head>
    <meta content="text/html;charset=utf-8" http-equiv="Content-Type"/>
    <title>表單提交</title>
</head>
<body>
<%
    PrintWriter pw = response.getWriter();
    int s = Integer.parseInt(request.getParameter("s"));
    int e = Integer.parseInt(request.getParameter("e"));
    for (int i = s; i <= e; i++) {
        for (int j = s; j <= i; j++) {
            pw.print(j + "*" + i + "=" + (j * i) + "\t");
        }
        pw.println("<br />");
    }
%>
<br />
<a href="index.jsp">返回</a>
</body>
</html>

啟動Tomcat,輸入http://localhost:8080/index.jsp,輸入2和8,提交:

結果輸出:

 

3、JSP的動作
       JSP的動作元素用來控制JSP容器的動作,可以動態插入文件、重用JavaBean組件、導向另一個頁面等。動作元素和指令元素不同,動作元素是在客戶端請求時動態執行的,每次有客戶端請求時,可能都會被執行一次,而指令元素是在編譯時被編譯執行,它只會被編譯一次。
    1)<jsp:useBean>
        useBean動作用於創建引用,並將現有的Bean組件嵌入JSP。JavaBean實際上是一個類,這個類可以重復使用。在JSP程序中,JavaBean常用來封裝事務邏輯、數據庫操作等。
        <jsp:useBean id = "BeanName" class="BeanClass" scope="page/request/session/application">
    2)<jsp:setProperty>
        setProperty動作用於設置useBean中指定的Bean的屬性的值。setProperty動作指定名稱、屬性、值和參數,用於賦給Bean的屬性。
        <jsp:setProperty name="BeanAlias" property="PropertyName" value="Value" param="parameter">,其中name為useBean中使用的Bean的ID,property是指定為之設置的Bean的屬性名稱,value為設置的顯示值,param指定用於輸入並給屬性賦值的HTML標簽。param屬性不能與value屬性一起使用。
    3)<jsp:getProperty>
        getProperty動作用於獲取Bean中指定的屬性中的值,系統先將收到的值轉換成字符串,然后再將其作為輸出結果發送。
        <jsp:getProperty name = "BeanAlias" property="PropertyName">,其中name為useBean中使用的Bean的ID,property指定要從中檢索的屬性名稱。
    4)<jsp:include>
        include動作用於將其他HTML頁面或JSP頁面中的內容合並到當前頁面,或將其中的文件插入到當前頁面。
        a、不帶參數的include動作:
            <jsp:include page="weburl" flush="true">,其中page指定要嵌入當前頁面的頁面的網址,flush用於在嵌入其他響應前清空存儲在緩沖區中的數據。
        b、帶參數的include動作:
            <jsp:include page="weburl" flush="true">
                <jsp:param name="ParamName" value="ParamValue"/>
            </jsp:include>
             其中name指定被嵌入到頁面中的參數的名稱,value指定參數的值。
    5)<jsp:forward>
        forward動作用來把當前的JSP頁面重定向到另一個頁面(HTML文件、JSP頁面、Servelt)。地址還是當前頁面的地址,內容則是另一個頁的內容。
        <jsp:forward page="url"/>
    6)<jsp:param>
        param提供其他JSP動作的名稱/值信息。
        <jsp:param name="ParamName" value="ParamValue"/>
    7)<jsp:plugin>
        plugin用於連接客戶端的Applet和Bean插件。plugin動作為Web開發人員提供了一種在JSP文件中嵌入客戶端運行的Java程序(如Applet、JavaBean)的方法。在處理這個動作的時候,根據客戶端瀏覽器的不同,JSP在執行以后將分別輸出為OBJECT或MEBED這兩個不同的HTML元素。
 
4、注釋
    1)<!--...-->:在客戶端查看源代碼時能看到的注釋
    2)<%-- ... --%>:在客戶端查看源代碼時無法看到的注釋。

 

 

 
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM