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

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

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

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

      用JSP構建動態網站 (3)

      [摘要]六、 JavaBean   JSP網頁吸引人的地方之一就是能結合JavaBean技術來擴充網頁中程序的功能。   JavaBean是一種Java類 (class),通過封裝屬性和方法成為具有某種功能...
      六、 JavaBean

        JSP網頁吸引人的地方之一就是能結合JavaBean技術來擴充網頁中程序的功能。

        JavaBean是一種Java類 (class),通過封裝屬性和方法成為具有某種功能或者處理某個業務的對象。JavaBean被組織成為package(數據包)以便進行管理,實際上就是把一組JavaBean一起放在某某目錄中,每個類的定義前加上package某某,本例中為test。目錄test必須放在系統環境CLASSPATH包含的目錄下,系統才能找到其中的JavaBean。JSWDK在缺省狀態下將\jswdk-1.0.1\webpages\WEB-INF\jsp\beans\ 加入CLASSPATH。建立自己的JavaBean和package時,就放在這個目錄中也不失為一種簡易的方法。

        下面介紹一個簡單的JavaBean框架。用文本編輯器創建一個文本文件helloWorld.java,并保存在\jswdk-1.0.1\webpages\WEB-INF\jsp\beans\test目錄下,其內容如下:

      package test;
      public class helloWorld {
      public String name = "My first bean";
      public String getHi()
      {
      return "Hello from " + name;
      }
      }



        helloWorld.java編輯好后,在DOS狀態下,進入目錄\jswdk-1.0.1\webpages\WEB-INF\jsp\beans\,用JDK的javac命令編譯helloWorld.java如下:

        javac helloWorld.java

        注意,Java是區分大小寫的,在程序中,編譯命令行中字母的大小寫都不能寫錯。

        編譯成功就表示建立了一個JavaBean。下面看如何在JSP中使用這個JavaBean。用文本編輯器創建一個文本文件hi-bean.jsp,并保存在\jswdk-1.0.1\webpages\test目錄下,其內容如下:

      <html>
      <head>
      <title>JavaBean 試驗</title>
      </head>
      <body>
      <jsp:useBean id="helloBean" scope="session" class="test.helloWorld" />
      <%= helloBean.getHi() %>
      <hr>
      <%
      helloBean.name = "JSP";
      out.print(helloBean.getHi());
      %>
      </body>
      </html>


        在JSP網頁中,使用 <jsp:useBean ... />語法來創建JavaBean對象,并命名為helloBean。讀者可從這個簡單的例子中看出設置、獲取JavaBean屬性,以及調用JavaBean方法的做法。在瀏覽器的地址欄中鍵入http://localhost:8080/test/hi-bean.jsp,得到結果如圖3所示。

        注意,如果修改和重新編譯了JavaBean程序,則需要關閉和重新啟動JSWDK的Web服務器以后修改的結果才會有效。如果僅僅修改JSP文件,則不用重新啟動JSWDK的Web服務器.

        雖然,這僅僅完成了一個非常簡單的JavaBean框架,但是遵循這個框架可以設計出多種多樣的JavaBean。例如,從JSP中訪問數據通常就是通過JavaBean來實現的。

        七、 數據庫連接

        數據庫連接對動態網站來說是最為重要的部分,Java中連接數據庫的技術是JDBC(Java Database Connectivity)。很多數據庫系統帶有JDBC驅動程序,Java程序就通過JDBC驅動程序與數據庫相連,執行查詢、提取數據等等操作。Sun公司還開發了JDBC-ODBC bridge,用此技術Java程序就可以訪問帶有ODBC驅動程序的數據庫,目前大多數數據庫系統都帶有ODBC驅動程序,所以Java程序能訪問諸如Oracle、Sybase、MS SQL Server和MS Access等數據庫。下面介紹如何用Access實現一個動態FAQ(常見問題及答案)網站。

        首先建立一個Access數據庫faq.mdb,其中的表faqs有字段id(自動增量型,并設為主關鍵字)、subject(文字型,長度200)、answers(備注型)。這個表中可以存放一些編程知識的常見問題及答案。

        然后,在Control Panel(控制面板)的ODBC Datasource模塊中加入System DSN,取名faq,并指向faq.mdb。

        創建一個JavaBean,名為faq.java,并保存在\jswdk-1.0.1\webpages\WEB-INF\jsp\beans\test目錄下。faq.java 的內容如下:

      package test;
      import java.sql.*;

      public class faq {
      String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
      String sConnStr = "jdbc:odbc:faq";
      Connection conn = null;
      ResultSet rs = null;

      public faq() {
      try {
      Class.forName(sDBDriver);
      }
      catch(java.lang.ClassNotFoundException e) {
      System.err.println("faq(): " + e.getMessage());
      }
      }

      public ResultSet executeQuery(String sql) {
      rs = null;
      try {
      conn = DriverManager.getConnection(sConnStr);
      Statement stmt = conn.createStatement();
      rs = stmt.executeQuery(sql);
      }
      catch(SQLException ex) {
      System.err.println("aq.executeQuery: " + ex.getMessage());
      }
      return rs;
      }
      }


        用上一節介紹的方法編譯faq.java以后,在\jswdk-1.0.1\webpages\test目錄下創建JSP文件faq.jsp,其內容如下:

      <html>
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
      <title>我的FAQ !</title>
      </head>
      <body>
      <p><b>這是我的FAQ!</b></p>
      <%@ page language="java" import="java.sql.*" %>
      <jsp:useBean id="workM" scope="page" class="test.faq" />
      <%
      ResultSet RS = workM.executeQuery("SELECT * FROM faqs");
      String tt;
      while (RS.next()) {
      tt = RS.getString("Answer");
      out.print("<LI>" + RS.getString("Subject") + "</LI>");
      out.print("<pre>" + tt + "</pre>");
      }
      RS.close();
      %>


        在瀏覽器的地址欄中鍵入http://localhost:8080/test/faq.jsp,faq.jsp調用JavaBean,從數據庫中讀出內容并輸出。

        限于篇幅,本文不能列舉JSP-JavaBean-JDBC/ODBC-數據庫的復雜例子,讀者可以從本文最后所推薦的網址中找到并下載到數據庫連接范例。 


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