關於我們所用的系統環境,可以用以下三個來做介紹:JDK、
Tomcat、MySQL。
3.1 系統環境介紹
1.JDK
JDK 的 全 名 為 Java Development Kit , 是 一 套 Java compiler、JVM、class library 及其他工具的組合,也是開發 JAVA 程式最基本的軟體需求。java 是 Sun(昇陽)所大力推銷的 一種跨平台語言(技術),因為其優異的特性,使得程式設計師 不必再改寫程式碼,即可在各平台執行 Java 程式,指不受各硬 體,作業系統的任何限制,這也是我們為何要選擇它的其中一 個重要原因。基本上,Java 是屬於半編譯(Compiler)、半直譯 (Interpreter)的方式執行,當 Java 的 Compiler 將程式編譯成 所謂的 bytecode,傳送到各平台時,只要平台有支援 Java Virtual Machine,即可將 bytecode 直譯成真正可執行的程式。
Java 程式發展的環境不斷的推出更新的版本,而我們用的是
『j2sdk1.4.0_01』這個版本。
2.Tomcat:
Tomcat 是一個免費的開源的 Serlvet 容器,提供了各種平 臺的版本供下載,可以從 http://jakarta.apache.org 上下載 其源代碼版或者二進位版。因為 Tomcat 是 Apache 基金會的 Jakarta 專案中的一個核心專案,由 Apache,Sun 和其他一些公 司及個人共同開發而成。所以基於 Java 的跨平臺特性,Tomcat 也具有跨平臺性。
在 Tomcat 中,應用程式的部署很簡單,你只需將你的 WAR
(Web Archive)放到 Tomcat 的 webapp 目錄下,Tomcat 會自動 檢測到這個文件,並將其解壓。當你在瀏覽器中叫出這個應用 的 Jsp 時,通常第一次會很慢,因為 Tomcat 要將 JSP 轉化為
Servlet 文件,然後編譯。編譯以後,叫出動作就會很快了。因 為 Tomcat 免費,功能強大,也具有開放性,所以我們選擇 Tomcat 作為編譯 JSP 的工具之一。
3.MySQL:
MySQL 是一個快速、多線性(multithread)、多使用者的 SQL 資料庫伺服器。尤其在 select/insert/update 等基本 SQL 指令之執行效率非常快速,比商業之 MSSQL 及 Oracle 資 料庫等更快,更重要的是 MySQL 是免費的。同時支援中文 Big5 碼 。SQL(結構化查詢語言)是世界上最流行的和標準化的資 料庫語言,它使得存儲、更新和存取信息更容易。例如,你能 用 SQL 語言來為一個網站檢索產品信息及儲存顧客信息,同時 MySQL 也足夠快和靈活以允許你存儲記錄文件和圖像。MySQL 是以一個主從式架構的實現,它由一個伺服程式 mysqld 和很 多不同的用戶端程式庫組成。MySQL 的主要目標是快速、穩固和 易用。
經過了以上的介紹,希望你們可以了解到我們的整個系統環境的 整個組成和架構。
3.2 系統環境安裝及設定方法
以下都是在 Windows2000 所做的設定,而安裝這個環境,我們必 須先安裝 JDK,使得 Java 服務在電腦上成為有效的程式語言。
3.2.1 JDK 安裝設定
1.到 http://www.javasoft.com/j2se/下載 JDK,然後直接安裝,
請注意安錄的目錄名稱最好照著它所預設的,不要做修改,否 則 之 後 將 會 有 不 能 夠 啟 動 服 務 的 問 題 , 預 設 目 錄 路 徑 為:”c:\j2sdk1.4.0_01”。
*一開始我們來設定 JDK1.3.1 的 PATH(路徑),先到 『開始 → 設定 → 控制台 → 系統 → 進階 → 環境變數 → 系統變
數』 ,然後新增 CLASSPATH 和 PATH(若這兩項已經有的話就 點編輯,加在原有的路徑後面)
2.找到系統變數 PATH,按「編輯」鈕,在最後面加上 1)C:\ j2sdk1.4.0_01\bin;,然後按確定。
2)按「新增」,變數名稱輸入 JAVA_HOME,變數值輸入 C:\ j2sdk1.4.0_01,然後按確定。
3)按「新增」,變數名稱輸入 CLASSPATH,變數值輸入 C:\ j2sdk1.4.0_01\lib,然後按確定。
3.如此就完成了 JDK 的安裝了。(如圖 3.1)
圖 3.1 新增編輯系統變數(JDK)
3.2.2 Tomcat 安裝設定
安裝 JSP 的主要環境 Tomcat。
1.首先先到 http://jakarta.apache.org/site/binindex.html 下 載 Tomcat 4.0.6。然後再用解壓縮的工具,將它解壓縮到 C:\。
因此你的 C:\目錄下會有 jakarta-tomcat-4.0.6 這個目錄產 生。(注意請不要修改他所設定的路徑)
2.再來設定 Tomcat 4.0.6,進入 c:\ jakarta-tomcat-4.0.6\bin 目錄,找到 startup.bat 批次檔案,用筆記簿打開來編輯,在 最上面那一行加上以下兩行。(如圖 3.2)
SET TOMCAT_HOME=C:\jakarta-tomcat-4.0.6 SET JAVA_HOME=C:\j2sdk1.4.0_01
圖 3.2 設定 Tomcat 路徑
3.上一步完成後,再到剛剛的『開始 → 設定 → 控制台 → 系 統 → 進階 → 環境變數 → 系統變數』,然後新增變數名稱,
輸入 CATALINA_HOME,變數值輸入 C:\ jakarta-tomcat-4.0.6,
然後按確定。(如圖 3.3)
4.再來必須重新開機,才能讓上述的設定值生效。
5.重新開機後,做一個執行 Tomcat 的動作。進入命令提示字元,
執行\jakarta-tomcat-4.0.6\bin\startup 便可以啟動 Tomcat
(如圖 3.4),這時候會出現一個 dos 視窗,停止不動,並有一 些運行成功 Tomcat 和初始化資訊,這就證明 Tomcat 運行成功 了。(如圖 3.5)
圖 3.3 新增編輯系統變數(TOMCAT)
圖 3.4 啟動 Tomcat
圖 3.5 Tomcat 啟動成功畫面
6.測試 Tomcat 是否啟動起來,可以開啟瀏覽器,在網址列輸入 http://localhost:8080 , 如 果 可 以 看 得 到 Tomcat Version 4.0.6 這一頁,就表示安裝設定都已完成,可以開始開發程式 了。上面有一些 JSP 和 Servlet 的例子,可以執行測試看看。
注意,千萬不能將 dos 視窗關閉,若關閉即表示關閉 Tomcat。
而關閉的程序一定要是打入 shutdown 指令,不可以直接關閉命 令提示字元視窗,否則下一次再執行的時候可能會有不能開啟 的問題。
3.2.3 MySQL 安裝設定
1.首先我們需要先下載 MySQL for Windows 的檔案,以開始接下 去的安裝工作,目前 MySQL for Windows 只有一個版本,並沒 有因 95/98/NT/2000 的不同而有不一樣的檔案。
2.將取回的 zip 檔案解開到一個暫時的目錄(檔名應該像是 mysql-shareware-x.xx.xx-win.zip ), 通 常 我 們 是 安 裝 至 C:\mysql 下,然後執行該目錄下的 setup.exe 開始進行安裝。
在 Windows2000 這個平台下,通常都會把 MySQL 安裝成一個系 統服務(service)。
3.進入命令提示字元以後,在 MySQL 的目錄底下的 bin 的資料夾 下,打入 net start mysql 這時候就會啟動我們所要的 MySQL
的服務了。(如圖 3.6)
圖 3.6 啟動 MySQL 服務畫面
4.現在 MySQL 應該就已經開始運作了。我們可以做一個簡單的小 測 試 。 我 們 可 以執 行 C:\mysql\bin\MySqlManager, 這 是個 Windows 介面的管理程式,您大概的操作一下,例如在 MySQL 那個資料夾圖示上用滑鼠點選兩下,若您的 MySQL 已順利啟 動,就可以看到其下的幾個資料庫喔!原始狀態會有 test 和 mysql 兩個資料庫。(圖 3.7)
圖 3.7 MySQL 的 Windows 介面管理程式
5.我們 也可以在命令提 示字元裡面執行 C:\mysql\bin\ 下的 mysqlshow,也是會看到在 DOS 裡面顯示出有 test 和 mysql 兩個資料 庫(圖 3.8)。現在我們就可以使用 MySQL 了
+---+
| Databases | +---+
| mysql |
| test | +---+
圖 3.8 在 DOS 下顯示資料庫
3.3 在 Windows2000 底下連接 JSP 和 MySQL
在上一節我們已經安裝好了 JDK、Tomcat、MySQL。而我們必須要 做到可以讓 JSP 連接 MySQL 資料庫,才可以讀到我們資料庫裡面的東 西,不過 JSP 連接 MySQL 還有點複雜,以下就對於連接的方法做一個 說明。
3.3.1 MySQL 的前期準備
在我們所安裝的 MySQL 中,我們所使用的是系統初始的 root 用 戶。而在第一次設定密碼的時候,可以如下所示來設定:
1.設定密碼:(首次設密碼)
C:\mysql\bin>mysqld
C:\mysql\bin>mysqladmin –u root password 新密碼 (root 是 user 名稱)
2.變更密碼:
C:\mysql\bin>mysqladmin –u root –p 舊密碼 password 新 密碼
3.3.2 查詢資料表和進入 MySQL
1.查詢資料庫和資料表:
C:\mysql\bin>mysqld
C:\mysql\bin>mysqlshow –u root –p 密碼
C:\mysql\bin>mysqladmin –u root –p 密碼 mysql(mysql 是指定資料庫)(後面可再加上資料表)
clear (\c) Clear command.
connect (\r) Reconnect to the server. Optional arguments are db and host.
ego (\G) Send command to mysql server, display result vertically.執行並垂直顯示結果 exit (\q) Exit mysql. Same as quit.
go (\g) Send command to mysql server.執行指令 notee (\t) Don't write into outfile.
print (\p) Print current command. 顯示要執行的指令 quit (\q) Quit mysql.
rehash (\#) Rebuild completion hash.
source (\.) Execute a SQL script file. Takes a file name as an argument.
status (\s) Get status information from the server.
tee (\T) Set outfile [to_outfile]. Append everything into given outfile.
use (\u) Use another database. Takes database name as argument.
4.建立新資料庫:
mysql>create database 資料庫名稱;
5.建立新資料表:(要先用 use 來指定存放資料表的資料庫) mysql> use 資料庫名稱;
mysql> create table table 名稱 圖 3.9 是一個簡單的例子:
圖 3.9 建立新資料表的簡單例子
6.新增紀錄到資料表:(用 insert) 例子:
mysql> insert into my_table(
-> name,email,address,password,sex,id) ->
values('cecilia','[email protected]','Taiwan','123456' ,'f',1,
-> );
7.查詢 table 內的紀錄:
mysql>select * from Friends;
圖 3.10 新增和查詢資料表內的紀錄
另外,若要刪除資料庫或資料表的話可用 drop 指令
8.刪除資料庫 資料表:
mysql>drop table 資料表名稱;
mysql>drop database 資料庫名稱;
以上如此,我們就已經建立好了一個叫做 test 的資料庫和一個在 test 裡面的一個叫做 personal 的資料表了。
3.3.3 JSP 連接 MySQL
1. 先 從
http://www.mysql.com/Downloads/Contrib/mm.mysql.
jdbc-1.2c.tar.gz
下載 mm.mysql.jdbc-1.2c.tar.gz,然後將其 解 壓 縮 到 c:\ 的 目 錄 下 , 我 們 使 用 的 是 c:\mm.mysql.jdbc-1.2c。
2. 然 後 , 在 CLASSPATH 系 統 便 亮 的 最 後 添 加 上 c:\mm.mysql.jdbc-1.2c;
3.再來創建一個 JavaBean,名為 DBconn.java,在 Tomcat 的 /webapps/examples/WEB-INF/classes 下建立一個 mysqltest 的目錄,將該檔案保存在這個目錄中,DBconn.java 是用來封裝 與資料庫連接的操作。DBconn.java 的內容如下:
package Mysqltest;
import java.sql.*;
public class DBconn
{String DBDriver="org.gjt.mm.mysql.Driver";
String ConnStr="jdbc:mysql://localhost/my_test";
String MyUser="root";
String MyPassword="cecilia1";
Connection conn = null;
ResultSet rs = null;
public DBconn() {try
{Class.forName(DBDriver);
}
catch(java.lang.ClassNotFoundException e)
{System.err.println("DBconn (): " + e.getMessage());
} }
public ResultSet executeQuery(String sql) {rs = null;
try
{conn = DriverManager.getConnection(ConnStr,MyUser,MyPassword);
Statement stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}
catch(SQLException ex)
{System.err.println("aq.executeQuery:"+ex.getMessage() c:\jakarta-tomcat\webapps\examples 下創建 my_test.jsp,
用 notebook 编辑。如下:
<%@page language="java" import="java.sql.*"
contentType="text/html; charset=big5" %>
<%//可以修改的參數
String ls_username = "root"; //資料庫用戶名 String ls_password = "cecilia1"; //密碼 String ls_server = "localhost";
String ls_dbname = "test"; // 資料庫名稱 Connection con = null; // 連線物件 Statement Stmt = null;
try // 偵測是否有意外狀況發生
{
//註冊 JDBC 連接驅動
Class.forName("org.gjt.mm.mysql.Driver");
//與資料庫建立連接
con =
DriverManager.getConnection("jdbc:mysql://"+ls_server+
"/"+ls_dbname,ls_username,ls_password);
Stmt =
con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,Re sultSet.CONCUR_READ_ONLY);
}
catch(Exception e)
// 接收意外狀況,這是用來配合前一個 try {
System.out.println(e.toString());
}
%>
<html>
<head>
<title>測試資料庫連接</title>
<meta http-equiv="Content-Type" content="text/html;
charset=big5">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<%
int li_count = 0;
String ls_sql = "select * from personal";
// 要執行的 SQL 語法 ResultSet rs = null;
try {
// 執行過 SQL 語法後,傳回的結果,在這個範例中,會帶 有所有查詢到的資料
rs = Stmt.executeQuery(ls_sql);
// rs.next() 是用來讀取下一筆資料
// 如果 rs.next() 有資料,則會一直在 while 迴圈內執行 // 如果沒有下一筆資料的話,rs.next() 就會傳回 false,
就會跳出 while 迴圈
while(rs.next() ) {
out.println(rs.getString("NAME"));
out.println(rs.getString("EMAIL"));
out.println(rs.getString("ADDRESS"));
out.println(rs.getString("PASSWORD"));
out.println(rs.getString("SEX"));
out.println(rs.getString("ID"));
out.println("<BR>");
} }
catch(Exception e) {
out.println("<br>" + e.toString() + "<br>");
}
catch(SQLException sqle) {
了 JSP 跟 MySQL 了。(如圖 3.11)
圖 3.11 JSP 和 MySQL 連接成功