程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> JSP網頁編程初解(二)

JSP網頁編程初解(二)

編輯:關於JSP

5、JSP動作

       JSP動作的主要作用是根據其指定的動作進行相應的處理。利用JSP動作可以實現引入文件、請求一個新的頁面、重用javaBean等功能。JSP動作主要有以下幾種:

       ><jsp:param>

       ><jsp:forward>

       ><jsp:include>

       ><jsp:plugin>

       ><jsp:useBean>

       ><jsp:setProperty>

       ><jsp:getProperty>

       1)、param動作

       <jsp:param>動作是用來給HTML文件和JSP文件傳遞參數,它經常和<jsp:forward>、<jsp:include>及<jsp:plugin>配合在一起使用。<jsp:param>動作的語法如下:

              <jsp:param name=”fname”value=”fvalue”/>

       其中name屬性表示傳遞參數的名稱,value屬性表示傳遞該參數的值。

       在HTML中設置元素的屬性時不必加雙引號“”,但是在JSP中設置元素的屬性時必須加上雙引號“”,否則執行時會出現錯誤。在後面的講解中,將結合<jsp:forward>、<jsp:include>、<jsp:plugin>等動作講解<jsp:param>動作的用法。

       2)、forward動作

       <jsp:forward>動作用來將請求信息轉發到另一個頁面,<jsp:forward>動作只有一個page屬性。<jsp:forward>動作的語法如下:

              <jsp:forawrdpage=”url”/>

       其中page屬性包含的url是一個相對URL。

       如果需要傳遞參數,<jsp:forward>動作的語法如下:

               <jsp:forwardpage="url">

                   <jsp:param name="fname"value="fvalue"/>

               </jsp:forward>

       其中fname是參數名稱,fvalue是參數值。

       <jsp:forward>動作轉發的頁面可以使HTML文件、JSP文件或者是一個Servlet,但這些文件必須位於同一個環境中。下面是一段關於<jsp:forward>動作轉發的代碼:

*.jsp


[html]
<%@ pagelanguage="java" contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%> 
<%@includefile="test.html"%> 
<html> 
    <head> 
        <title>forward  動作</title> 
    </head> 
    <body> 
        <h3>這是一個測試< jsp:forward>指令的頁面</h3> 
        <jsp:forwardpagejsp:forwardpage="test.html"></jsp:forward> 
    </body> 
</html> 

<%@ pagelanguage="java" contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%>
<%@includefile="test.html"%>
<html>
    <head>
        <title>forward  動作</title>
    </head>
    <body>
        <h3>這是一個測試< jsp:forward>指令的頁面</h3>
        <jsp:forwardpage="test.html"></jsp:forward>
    </body>
</html>


test.html:


[html
<html> 
    <head> 
        <metahttp-equivmetahttp-equiv="Content-Type" content="text/html;charset=UTF-8"/> 
    </head> 
    <body> 
        <h3>這是一個html測試頁面</h3> 
    </body> 
</html> 

<html>
    <head>
        <metahttp-equiv="Content-Type" content="text/html;charset=UTF-8"/>
    </head>
    <body>
        <h3>這是一個html測試頁面</h3>
    </body>
</html>


       由於在jsp中使用了<jsp:forward page="test.html"></jsp:forward>,所以顯示的內容是test.html的內容

       3)、include動作

       <jsp:include>動作是指在當前的頁面內包含一個或多個JSP頁面或HTML文件。其使用語法如下:

              <jsp:includepage=”file”flush=”true”/>

       其中page屬性中的file為加載文件所在位置的相對路徑。Flush屬性必須設為true,如果是false則不能自動刷新輸出。需要注意的是,此動作的單行語句必須在該語句的後面加上一條斜線/。若在加載文件或網頁時需要傳遞參數,那麼使用的語法如下:

              <jsp:includepage=”file”flush=”true”>

              <jsp:param name=”fname”value=”fvalue”>

              </jsp:include>

       下面是一段關於<jsp:include>動作的代碼:


[html] 
<%@pagecontentType="text/html" pageEncoding="UTF-8"%> 
<f:view> 
    <html> 
        <head> 
            <metahttp-equivmetahttp-equiv="Content-Type" content="text/html;charset=UTF-8"/> 
            <title>include動作</title> 
        </head> 
        <body> 
        <center> 
            <h3>歡迎你</h3> 
            <h3>這是一個登陸頁面</h3> 
            <h3>請登錄</h3> 
            <formactionformaction="jspLog.jsp" name="myform" method="post"> 
                用戶名:<input type="text" name="name"/> 
                密   碼:<input type="text"name="password" /> 
                                <inputtypeinputtype="submit" value=" 確定" /> 
            </form> 
        </center> 
        </body> 
    </html> 
</f:view> 

<%@pagecontentType="text/html" pageEncoding="UTF-8"%>
<f:view>
    <html>
        <head>
            <metahttp-equiv="Content-Type" content="text/html;charset=UTF-8"/>
            <title>include動作</title>
        </head>
        <body>
        <center>
            <h3>歡迎你</h3>
            <h3>這是一個登陸頁面</h3>
            <h3>請登錄</h3>
            <formaction="jspLog.jsp" name="myform" method="post">
                用戶名:<input type="text" name="name"/>
                密   碼:<input type="text"name="password" />
                                <inputtype="submit" value=" 確定" />
            </form>
        </center>
        </body>
    </html>
</f:view>


jspLog.jsp:


[html] 
<%@pagecontentType="text/html" pageEncoding="UTF-8"%> 
<%@includefile="jsp.jsp" %> 
<f:view> 
    <html> 
        <head> 
            <metahttp-equivmetahttp-equiv="Content-Type" content="text/html;charset=UTF-8"/> 
            <title>JSP Page</title> 
        </head> 
        <body> 
            <h1><h:outputTextvalueh:outputTextvalue="Hello World!"/></h1> 
        </body> 
    </html> 
</f:view> 

<%@pagecontentType="text/html" pageEncoding="UTF-8"%>
<%@includefile="jsp.jsp" %>
<f:view>
    <html>
        <head>
            <metahttp-equiv="Content-Type" content="text/html;charset=UTF-8"/>
            <title>JSP Page</title>
        </head>
        <body>
            <h1><h:outputTextvalue="Hello World!"/></h1>
        </body>
    </html>
</f:view>


       4)、plugin動作

       <sjp:plugin>動作表示在一個JSP網頁中加載Java Applet或JavaBean組件。Java Applet也叫小應用程序,是使用Java編寫的代碼,它可以嵌入到JSP程序中。JavaBean是一組用於構建可重用組件的Java類庫,可以將一組JavaBean裝配成應用程序或Java小程序。同樣,它可以嵌入到JSP程序中。<sjp:plugin>動作的語法如下:

<jsp:plugin 

    type="嵌入程序的類型"

    code="潛入類名稱"

    codebase="潛入類所在的目錄名稱"

    name="對象名稱"

    align="對齊方式"

    height="高度"

    width="寬度"

    hspace="左右空間"

    vspace="上下空間"

    nspluginurl="下載Netscape JRE plugin的地址"

    archive="預下載的文件路徑"

    jreversion="使用的JRE版本"

    iepluginurl="下載IE JRE plugin的地址"

    <jsp:params>

        <jsp:param name="fname"value="fvalue"></jsp:param>

        <jsp:param name="hname"value="hvalue"></jsp:param>

    </jsp:params>/>

    <jsp:fallback></jsp:fallback>>

</jsp:plugin>

       其中除了type和code屬性,其它屬性都可以省略。

       下載對這些屬性進行簡單的說明:

       >type:嵌入程序的類型,可以使Applet,也可以是Bean,但必須指定一個,因為這個屬性設有默認值;

       >code:嵌入Java程序的類名稱,必須以.class結尾。如example.class;

       >codebase:編譯後Java類的目錄,可以是絕對目錄,也可以是相對目錄。默認值為當前JSP網頁的目錄;

       >name:被嵌入的Applet或Bean的名稱;

       >align:設置被嵌入的程序在頁面中顯示的對齊方式,align的值可以是bottom、top、middle、left、right;

       >height:被嵌入的程序在頁面中顯示的高度;

       >width:被嵌入的程序在頁面中顯示的寬度;

       >hspace:被嵌入的程序在頁面中顯示時距左右兩邊的空間;

       >vspace:被嵌入的程序在頁面中顯示時上下端的空間。

       下面是一段關於<jsp:plugin>動作的代碼:


[html]
<%@pagecontentType="text/html" pageEncoding="UTF-8"%> 
<f:view> 
    <html> 
        <head> 
            <metahttp-equivmetahttp-equiv="Content-Type" content="text/html;charset=UTF-8"/> 
            <title>< jsp:plugin >動作</title> 
        </head> 
        <body> 
        <center> 
            <h3>這是一個< jsp:plugin>動作演示頁面</h3> 
            <jsp:plugintypejsp:plugintype="applet" code="javatest.java" ></jsp:plugin> 
        </center> 
        </body> 
    </html> 
</f:view> 

<%@pagecontentType="text/html" pageEncoding="UTF-8"%>
<f:view>
    <html>
        <head>
            <metahttp-equiv="Content-Type" content="text/html;charset=UTF-8"/>
            <title>< jsp:plugin >動作</title>
        </head>
        <body>
        <center>
            <h3>這是一個< jsp:plugin>動作演示頁面</h3>
            <jsp:plugintype="applet" code="javatest.java" ></jsp:plugin>
        </center>
        </body>
    </html>
</f:view>


Javatest.java:


[java] 
package html; 
  
import java.applet.Applet; 
import java.awt.Graphics; 
import java.awt.Image; 
  
public class javatest  extends Applet{ 
    Image persion; 
    public void init() { 
        persion = getImage(getDocumentBase(),"app_logo.png"); 
    } 
    public void paint(Graphics g) { 
        g.drawImage(persion, 100, 100, this); 
    } 

package html;
 
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Image;
 
public class javatest  extends Applet{
    Image persion;
    public void init() {
        persion = getImage(getDocumentBase(),"app_logo.png");
    }
    public void paint(Graphics g) {
        g.drawImage(persion, 100, 100, this);
    }
}


       5)、useBean動作

       <jsp:useBean>動作用來裝載一個在JSP頁面中使用的JavaBeans。JavaBeans是用Java語言編寫的可重用的軟件組件。因此對開發者而言,在開發過程中可以發回Java組件重用的優勢。下面是一個關於<jsp:useBean>動作的程序。

Welcome.java


[html] 
public class welcome { 
    public welcome() {    } 
    public String saywel(String name) { 
        String strmessage; 
        strmessage = "Hello" + name +"!"; 
        return strmessage; 
    } 

public class welcome {
    public welcome() {    }
    public String saywel(String name) {
        String strmessage;
        strmessage = "Hello" + name +"!";
        return strmessage;
    }
}


Usebean.jsp


[html] 
<%@pagecontentType="text/html" pageEncoding="UTF-8"%> 
<jsp:useBeanidjsp:useBeanid="saywelcome" scope="application"class="welcome"></jsp:useBean> 
    <html> 
        <head> 
            <metahttp-equivmetahttp-equiv="Content-Type" content="text/html;charset=UTF-8"/> 
            <title>JSP Page</title> 
        </head> 
        <body> 
            <%request.setCharacterEncoding("gb2312"); %> 
            <% 
        String strmessage; 
        strmessage =saywelcome.saywel("Tom!"); 
        out.println(strmessage); 
            %> 
        </body> 
    </html> 

<%@pagecontentType="text/html" pageEncoding="UTF-8"%>
<jsp:useBeanid="saywelcome" scope="application"class="welcome"></jsp:useBean>
    <html>
        <head>
            <metahttp-equiv="Content-Type" content="text/html;charset=UTF-8"/>
            <title>JSP Page</title>
        </head>
        <body>
            <%request.setCharacterEncoding("gb2312"); %>
            <%
        String strmessage;
        strmessage =saywelcome.saywel("Tom!");
        out.println(strmessage);
            %>
        </body>
    </html>


 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved