JSP動態網頁入門:表單輸入例子

來源:互聯網
上載者:User
js|動態|網頁

我們將建立一個Web頁面,它有一個輸入表單,使用者可以輸入一個股票看板代號以獲得出當前股票價格(有20分鐘延遲)。如果輸入有誤,則顯示錯誤提示頁面。

quote.jsp

首先,用以下代碼建立quote.jsp頁面並將其儲存在JSWDK安裝目錄下的Web 目錄中。大多數的頁面是含JSP代碼的標準HTML。第六行是一個頁面指令,表明將把所有錯誤發送到“errorPage.jsp”文中。第13到15行是一個指令碼段,主要說明僅當有“symbol”參數時才顯示表格。“if”程式碼片段在32到34行結束。第17行定義了所用的JavaBean,第18行根據參數載入其符號屬性。第27行到29行顯示bean的屬性。除了"if"段,實際上並不涉及其它Java代碼。

<html>
<head>
<title>Stock Quotes</title>
</head>
<body>
<%@ page errorPage="errorPage.jsp" %>
<form action="quote.jsp"
method="GET"> <p>Enter Symbol: <input size="20" name="symbol"><input
type="submit" value="Submit"></p>
</form>
<%
if (request.getParameter("symbol") != null) {
%>
<jsp:useBean id="quotes" scope="page" class="com.jguru.Quotes" />
<jsp:setProperty name="quotes" property="*" />
<table border="1">
<tr>
<th align="left">Symbol</th>
<th align="left">Name</th>
<th align="left">Price</th>
</tr>
<tr>
<td><jsp:getProperty name="quotes" property="symbol" /></td>
<td><jsp:getProperty name="quotes" property="name" /></td>
<td><jsp:getProperty name="quotes" property="price" /></td>
</tr>
</table>
<%
}
%>
</body>
</html>

errorPage.jsp

下一步,將下面的JSP原始碼儲存到Web頁面目錄中的“errorPage.jsp”檔案中。提示“this is an error page”為第一行,它將頁面指令isErrorPage屬性設定為真。上一頁面說明了錯誤網頁的位置,本頁則說明這就是錯誤網頁。JSP檔案中的其它JSP專用代碼用來訪問隱含例外對象。頁面只顯示其值:

<%@ page isErrorPage="true" %>
<html>
<head>
<title>Error Page</title>
</head>
<body>
<h1>Our Error Page</h1></font>
<!-- Print Exception -->
We got ourselves an exception:
    <%= exception %>
<a href="quote.jsp">Restart</a>
</body>
</html>

Quotes.java

Quotes JavaBean 通過Yahoo資源擷取股票價格。需將原始碼Quotes.java儲存到JSWDK安裝目錄下“classes\com\jguru”目錄中的“quotes.java”檔案中。從這一步起,將由JSDK中的Javac編譯器來編譯它。

package com.jguru;
import java.util.*;
import java.net.*;
import java.io.*;
public class Quotes {
  String symbol;
  String name;
  String price;
  public void setSymbol(String symbol) {
    this.symbol = symbol;
    getSymbolValue(symbol);
  }
  public String getSymbol() {
    return symbol;
  }
  public String getName() {
    return name;
  }
  public String getPrice() {
    return price;
  }
  private void getSymbolValue(String symbol) {
    String urlString =
    "http://quote.yahoo.com/download/javasoft.beans?SYMBOLS=" +
    symbol + "&format=nl";
  try {
    URL url = new URL(urlString);
    URLConnection con = url.openConnection();
    InputStream is = con.getInputStream();
    InputStreamReader isr = new InputStreamReader(is);
    BufferedReader br = new BufferedReader(isr);
    String line = br.readLine();
    StringTokenizer tokenizer = new StringTokenizer(line,",");
    name = tokenizer.nextToken();
    name = name.substring(1, name.length()-2); // remove quotes
    price = tokenizer.nextToken();
    price = price.substring(1, price.length()-2); // remove quotes
  } catch (IOException exception) {
    System.err.println("IOException: " + exception);
  }
 }
}

當建立了這兩個JSP檔案,以及建立了JavaBean原始碼檔案並將其編譯後,你就可以從http://localhost:8080/quote.jsp裝載“quote.jsp”檔案以查看結果(假設你沒有更改JSWDK設定以使用不同的連接埠)。這個頁面當然可以做得更加漂亮,但它的確已經達到了預定目的,同時很好地示範了JSP的功能。



相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。