六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

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

用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-數據庫的復雜例子,讀者可以從本文最后所推薦的網址中找到并下載到數據庫連接范例。 


主站蜘蛛池模板: 网站在线观看mv视频 | 在线视频综合网 | 欧美一级黄色大片 | 日本xxxwww色视频 | 日韩手机看片福利精品 | 中文字幕第15页 | 日韩不卡一二三区 | 中文字幕日韩视频 | 日本一本高清 | 亚洲成人99| 天天干天天色天天干 | 亚洲成a人片毛片在线 | 婷婷影院在线综合免费视频 | 亚洲福利在线看 | 日本男女动态图 | 亚洲成aⅴ人片在线观 | 在线播放国产一区二区三区 | 日本高清黄色网站 | 人人射人人舔 | 污污网站国产精品白丝袜 | 星辰影院在线观看 | 特一级黄色大片 | 午夜毛片在线观看 | 亚洲综合网在线观看 | 青青青视频在线免费观看 | 午夜理理伦a级在线观看 | 日韩三级黄色片 | 午夜日韩久久影院 | 欧美在线观看网址 | 亚洲高清资源在线观看 | 色 在线播放 | 五月激情婷婷丁香 | 天干夜天天夜天干天 | 综合色中色 | 啪啪精品 | 亚洲国产高清视频在线观看 | 欧美做a一级视频免费观看 欧美坐爱视频 | 做性视频 | 五色婷婷 | 日本大蕉香蕉大视频在线观看 | 日韩v在线|