<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      JSP基礎圖文說明教程(4)

      [摘要]使用腳本 在有些地方,你大概要加一些好的,成熟的程序到你的JSP頁里,JSP的標簽雖然很強大,但是完成某些工作還是比較費力的困難的。這時你可以使用腳本語言段來補充JSP標簽。 使用的JSP引擎是支持腳本語言的,SUN的JSP參考文說明,必須使用Java程序語言來編寫腳本,但是其他第三方的JSP引擎...
      使用腳本
      在有些地方,你大概要加一些好的,成熟的程序到你的JSP頁里,JSP的標簽雖然很強大,但是完成某些工作還是比較費力的困難的。這時你可以使用腳本語言段來補充JSP標簽。
      使用的JSP引擎是支持腳本語言的,SUN的JSP參考文說明,必須使用Java程序語言來編寫腳本,但是其他第三方的JSP引擎允許使用其他語言來寫腳本程。
      如何增加腳本
      首先,你必須了解一些增加腳本元素到JSP頁中的一些基本規則
      1、 在JSP頁面里用Page指令定義腳本(默認值是Java,一般不需要定義)
      2、 聲明語法<%!……%>聲明變量和方法(函數)。
      3、 表達式語法<%=……%>定義腳本語言表達式
      4、 腳本語法〈%……%>可以操作聲明、表達式和其他類型合法的代碼段在頁腳本語言。
      5、 一定要在結尾加%>標簽
      聲明、表達式、腳本使用起來有一些相似,但也有一些不同讓我們用一些例子來講述一下相同點和不同點吧。
      聲明<%!……%>包含了一個或多個變量和方法,結尾以分號分隔。
      例:<%! Int I=0 ; %>
      <%! Int a, b ; double c ; %>
      <%! Circle a = new circle(2.0) ; %>
      在頁面中使用變量和方法之前必須聲明
      聲明的范圍通常是JSP頁,但如果頁面中使用INCLUDE指令包含其他頁面,范圍應變得擴展到被包含的頁面。
      表達式<%=……%>可以在頁面中包含任何合法的語言表達式,不用分號。
      例:<%= Math.sqrt(2) %>
      <%= item[I] %>
      <%= a+b+c %>
      <%= new java.util.date() %>
      表達式和腳本的一個關鍵的不同點就是不需要分號。如果你需要在腳本中使用表達式就必須加分號。
      腳本<%……%>允許你寫的任何數量的腳本語言
      例:<% String name=null ;
      If (request.getParmeter("name")==null{
      %>
      記住在腳本中必須使用分號結尾。
      猜數字游戲
      猜數字游戲非常的有趣,而且從這里你還可以學到很多表達式的用法。
      代碼
      顯示用的主屏幕(numguess.jsp)
      <!--
      Number Guess Game
      Written by Jason Hunter, CTO, K&A Software
      jasonh@kasoftware.com, http://www.servlets.com
      Copyright 1999, K&A Software
      Distributed by Sun Microsystems with permission
      -->
      <%@ page import = "num.NumberGuessBean" %>

      <jsp:useBean id="numguess" class="num.NumberGuessBean" scope="session" />
      <jsp:setProperty name="numguess" property="*" />

      <html>
      <head><title>Number Guess</title></head>
      <body bgcolor="white">
      <font size=4>

      <% if (numguess.getSuccess() ) { %>

      Congratulations! You got it.
      And after just <%= numguess.getNumGuesses() %>tries.<p>

      <% numguess.reset(); %>
      Care to <a href="numguess.jsp">try again</a>?

      <% } else if (numguess.getNumGuesses() == 0) { %>

      Welcome to the Number Guess game.<p>
      I'm thinking of a number between 1 and 100.<p>

      <form method=get>
      What's your guess? <input type=text name=guess>
      <input type=submit value="Submit">
      </form>

      <% } else { %>
      Good guess, but nope. Try <b><%= numguess.getHint() %></b>.
      You have made <%= numguess.getNumGuesses() %> guesses.
      <p>I'm thinking of a number between 1 and 100.
      <p><form method=get>

      What's your guess? <input type=text name=guess>
      <input type=submit value="Submit">
      </form>
      <% } %>
      </font>
      </body>
      </html>

      操作程序(NumberGuessBean.java)
      // Number Guess Game
      // Written by Jason Hunter, CTO, K&A Software
      // jasonh@kasoftware.com, http://www.servlets.com
      // Copyright 1999, K&A Software
      // Distributed by Sun Microsystems with permission

      package num;
      import java.util.*;
      public class NumberGuessBean {
      int answer;
      boolean success;
      String hint;
      int numGuesses;
      public NumberGuessBean() {
      reset();
      }
      public void setGuess(String guess) {
      numGuesses++;
      int g;
      try {
      g = Integer.parseInt(guess);
      }
      catch (NumberFormatException e) {
      g = -1;
      }
      if (g == answer) {
      success = true;
      }
      else if (g == -1) {
      hint = "a number next time";
      }
      else if (g < answer) {
      hint = "higher";
      }
      else if (g > answer) {
      hint = "lower";
      }
      }
      public boolean getSuccess() {
      return success;
      }
      public String getHint() {
      return "" + hint;
      }
      public int getNumGuesses() {
      return numGuesses;
      }
      public void reset() {
      answer = Math.abs(new Random().nextInt() % 100)
      + 1;
      success = false;
      numGuesses = 0;
      }
      }

      在JSP文件中使用腳本
      numguess.jsp是一個非常有趣兒的用腳本寫的例子,你看他的結構其實是一個很大的IF……ELSE結構,但是很一個從句又都是用HTML寫的,看起來象一個大的程序段。
      不過你也不一定非得象numguess.jsp那樣用HTML和JSP標簽一起來寫腳本。在<%和%>標簽之間,你可以寫任意多行的腳本代碼,在通常情況下,盡量少用腳本來處理程序,而盡可能的使用servlets或者Beans,這樣你的程序看起來會非常的清析,明了。話又說回來,怎么寫JSP還得根據你的習慣和愛好,我不強迫非得使用任何一種方法,SUN的JSP詳細說明書不規定腳本的長度。

      用標簽組合腳本
      使用HTML和JSP標簽來寫腳本的時候,注意前后的標簽不要忘記,一定要“封”好。說的不明白,舉個例子吧:
      <% } else { %> <!-- 用JSP標簽的時候先關上 -->

      ... 這時候用JSP標簽吧 ...

      <% } %> <!-- 這樣你應該看懂了吧?! -->
      開始的時候這種做法看起來可能有一點奇怪,但它以確保你JSP文件編譯的時候腳本的成功轉換。

      那么,腳本什么時候執行呢?
      一個JSP原文件的處理分為兩個階段:一個是HTTP的編譯時候,一個是請求的處理時間。

      HTTP編譯的時候,當用戶第一次讀JSP頁面的時候,JSP的原代碼被編譯成CLASS,通常是servlet。HTML標簽和JSP標簽在這個時候同時被處理了,這之前用戶還沒有任何的請求被提交。

      請求處理時間是當用戶在JSP頁面中提交了一個請求,這時請求由客戶端被request對象傳到了服務器端,JSP引擎根據用戶提交的值執行編譯過的JSP文件或者servlet。

      當你在JSP頁中使用腳本的時候,你必須知道他們什么時候被執行。聲明在HTTP編譯階段就已經被處理了,其他腳本,表達式在編譯JSP文件的時候也可用。表達式在HTTP編譯的時候也被執行了。表達式的值被轉換成了字符串被插入到JSP文件中一塊兒被編譯。其實在請求階段,腳本也是可以利用的。

      如何運行例子
      我現在給出的都是在UNIX風格下的路徑,如果你用Windows,那么改成Windows風格路徑
      1、猜數字游戲在裝TOMCAT或者JSWDK的時候就已經裝好了。
      2、.jsp和.html文件在../jswdk-1.0.1/examples/num中
      3、.java和.class文件在../jswdk-1.0.1/examples/WEB-INF/jsp/bean/num中
      4、開瀏覽器,http://機器名/examples/jsp/num/numguess.jsp


      日韩精品一区二区三区高清