本地tomcat訪問mysql資料庫
雖然以前經常聽人說起過tomcat,但是今天頭一次使用tomcat。
1.Tomcat的安裝過程:
首先應該從Apache官方網站上下載是用於Windows的.zip壓縮包.
下面是相應的下載連結:
由於LZ的主機是64位的,所以就下載64位的apache tomcat版本。
在下載壓縮包之後,在指定的路徑下進行解壓即可。
2.環境變數的設定
想在本地上執行tomcat的前提是已經安裝好JDK了,
並且已經在環境變數的系統變數設定中將JAVA_HOME設定成功的基礎上,
接下來就是設定TOMCAT_HOME了,
具體的操作如下圖所示:
右鍵單擊我的電腦,選擇屬性選項。
環境變數設定之後,接下來就是通過XML文件對tomcat的相關屬性
進行相應的設定了。
3.通過XML檔案對Tomcat進行配置
Tomcat作為APache開源專案之一,與其他開源專案在資料夾以及路徑的設定上面都是十分相似的。
Tomcat的配置資料夾為conf,進入到conf資料夾中之後可以發現有
server.xml
tomcat-users.xml
web.xml,
等一些其他型別的配置檔案。
在這裡我們只需要修改一下tomcat-users.xml這兩個配置檔案,
其餘的配置檔案不需要修改的。
如果想要修改埠號的話,是需要更改server.xml這個配置檔案的。
在根據自身的情況對埠號進行修改之後,可以啟動一下tomcat來檢視一下情況。
進入到tomcat的bin這一個子目錄的下面,
就會看到startup.bat由於當前的工作系統是windows的,
所以雙擊startup.bat就可以正常開啟tomcat了。
如果主機系統是Linux的話呢,輸入命令sh startup.sh
就可以啟動tomcat了,不過在此之前需要將許可權更改為777的。
對於LZ來說一開始啟動tomcat後會出現console一閃而過的情況,
一開始還以為是tomcat的版本有些問題。
後來更換版本之後,問題依然存在,
於是打算檢視一下一閃而過的控制檯上面出現了什麼資訊提示。
如果能使控制檯顯示可以停留一下就可以看到提示資訊了,
右鍵單擊startup.bat,選擇編輯按鍵,
然後進入到.bat的編輯面板上面。
在最後一行上面新增:
PAUSE
這樣就檢視控制檯的提示資訊了。
根據控制檯的提示資訊,得知原來是JAVA_HOME沒有寫在環境變數中。
原因是這個樣子的,因為LZ使用的是NetBeans的開發環境,
所以,不必改寫或是新增JAVA_HOME java程式也是照常可以執行的。
/*關於W7中的console
因為IDE環境中本身就會提供一個控制檯,這個控制檯應該是於當前作業系統是分開的。
而且W7的OS中的DOS如今已經被改的面目全非了,它只是在模擬DOS,而非是在W7中內嵌入DOS系統。
所以,很多情況下直接往DOS裡面敲命令的話,是根本不識別的。
不過如果非要完成一些命令列的輸入的話,在W7中也是有辦法的,
那就是開始->所有程式->附件 windows power shell->Windows PowerShell(x86)
選擇這個就可以了。
接下來就會彈出一個類似於DOS的命令列介面,往裡面輸入命令,控制檯就會照單全收了。
在LZ看來,執行對應的console應該是W7模擬的DOS作業系統的控制檯所編寫的,
因為是模擬的,所以它的許可權並不能控制到當前W7系統的全部。
但是這個Power Shell這個控制檯應該是基於windows 核心所編寫的,
也就是基於W7作業系統 指令集 所編寫的,所以使用它的話,可以實現大部分的console操作。
*/
在配置好JAVA_HOME之後呢,就可以再次執行tomcat了,
其實按照LZ的理解吧,tomcat實質上使用java 語言編寫的,
是許多個.class檔案的集合,當然為了載入方便這些.class檔案已經被打包成了.jar檔案。
所以如果想讓它正確的執行的話,
也就是在tomcat執行的一開始,tomcat會上系統變數中尋找到JAVA_HOME
在當前系統中的路徑,然後根據路徑(JAVA_HOME)找到java的相應編輯器,
就是可以識別以及解析.class/.jar檔案的相關程式。
然後通過該程式對.class/.jar檔案進行載入,執行,這樣下來的話tomcat就被成功的運行了。
4.開啟tomcat
對於server.xml檔案在未經過修改的情況下,
對於本地連線的埠號預設為8080,
所以在配置好了tomcat之後,可以通過瀏覽器對其進行檢查。
通過雙擊startup.bat;
可以看到如下的顯示說明tomcat執行成功:
開啟Internet Explorer之後,在對應的位址列中輸入
5.Tomcat實現與資料庫進行連線:
實現與資料庫相連線,必須在tomcat中進行
建立一個使用者然後設定登入密碼,然後為其分配相關的許可權。
使用記事本開啟方式開啟tomcat-users.xml檔案。
在</tomcat-users>的前一行有如下內容:
<!-- <role rolename="tomcat"/> <role rolename="role1"/> <user username="tomcat" password="tomcat" roles="tomcat"/> <user username="both" password="tomcat" roles="tomcat,role1"/> <user username="role1" password="tomcat" roles="role1"/>--></tomcat-users>
根據上面的文件說明去掉註釋前後的符號:""<!---->""
然後新增一個使用者,這個使用者在建立並分配密碼和許可權之後,
可以使用該使用者名稱和密碼來登入到mysql中,
登入mysql之後以該使用者身份建立資料庫,和資料庫表。
這樣tomcat就可以對其進行訪問了。
去掉註釋後,在</tomcat-users>的上一行新增你想建立使用者的使用者名稱,密碼,以及所需要分配的許可權。
不過要依照下面新增使用者的格式,填寫之後儲存檔案即可。
<user username="root2" password="zhu" roles="admin,manager"/>
然後在mysql中以該使用者名稱稱登入:
mysql -uroot2 -hlocalhost -p(enter)
Enter password: ***
不過LZ在這個地方進行的並不順利, 於是改變了一下方法:
以root的身份進入到mysql中,
檢視一下資料庫中的所有使用者的資訊:
select user,host from mysql.user;
(不過這個是建立使用者root2之後的截圖)
create database school;
然後在mysql中建立與server.xml
同樣的使用者名稱以及登入密碼所在主機名稱並且針對資料庫school
將與tomcat中的配置檔案server.xml相同的資訊用於mysql的資料庫建立中,
create user "root2";grant all on school to root2@localhost identified by "zhu";
這樣的話,就以mysql和tomcat 就有了同樣的使用者名稱以及登陸密碼,
這樣的話,tomcat就可以很順理成章的以root2的身份 登陸並訪問mysql中的school database了,
又因為在mysql建立使用者 root2 的時候 ,分配全部的對school資料庫的許可權了,
所以可以通過jsp來通過tomcat對資料庫進行建立表,刪除,更新等等的一些操作了。
那麼,如何知道tomcat已經可以成功的連線到資料庫了呢?
可以寫一小段的.jsp程式碼來進行測試一下,
首先在路徑下面建立一個記事本檔案,然後調整屬性讓檔案顯示隱含檔案型別名稱,
將"新建文字檔案.txt"修改為 "testjdbc.jsp",
接下來,我們對該testjdbc.jsp進行相應的編寫:
開啟檔案testjdbc.jsp,向檔案中新增如下內容:
<%@ page contentType="text/html;charset=GB2312" %><%@ page import="java.sql.*" %><HTML><BODY><% String driver="com.mysql.jdbc.Driver";String url="jdbc:mysql://localhost:3306/school"; // 連線到 school 資料庫 String userid="root2"; // 使用者 String passwd="zhu"; // 密碼 try{Class.forName(driver);}catch(Exception e){out.println(" 無法載入 "+driver+" 驅動程式 !");e.printStackTrace();}try {Connection con=DriverManager.getConnection(url,userid,passwd);if(!con.isClosed())out.println(" 成功連線資料庫 !");con.close();}catch(SQLException SQLe){out.println(" 無法連線資料庫 !");}%></BODY></HTML>
使用者名稱及登入密碼還有所要連線的資料庫可以根據實際的情況進行修改的,
既然jsp檔案已經寫好了,那麼如何將其載入到tomcat
對其進行執行測試呢?
應該是將該testjdbc.jsp檔案放到tomca的
\webapps\ROOT\的下面,接下來在Internet Exploer中的位址列中輸入:
根據jsp指令碼的編寫,如果成功的連線到的mysql的話,就會有:
成功連線資料庫!
這樣的提示資訊。
如果連線資料庫失敗的話:
無法連線資料庫!
這樣的提示資訊。
如果總是連線失敗的話,應該檢查一下是否需要下載個mysql-connector什麼的。
6.小結
這次在搭建tomcat的過程中學習到了很多知識,
個人覺得XML文件在開源專案中作為配置文件真的佔有很大的比重,
如果有時間的話會專門系統的學習XML的一些語法規則的。
而且hive中的資料庫的配置檔案也是以XML寫的。
其實,這次試驗的目的是想要在本地搭建一個POJ平臺的,
結果搭建後才知道,下載的POJ平臺壓縮包僅僅是個OJ,
相應的題集並不包含在其中的,最後雖然是正常顯示了POJ的頁面,
但是tomcat報了很多的錯誤,就LZ目前的水平看不懂tomcat報的那些錯誤的,
然後也懶得去apache的官網上面去查一些相關的報錯資訊,so....無奈的收工了。
LZ覺得吧......
POJ平臺的搭建並不是很難,就是步驟比較的複雜,
而複雜的原因則是由於POJ平臺系統中的許多環境變數是比較死板的,
沒有任何的根據本地機器自動適配的優化措施。
例如tomcat只能安裝在D:\盤的下面,
mysql也只能安裝在D:\盤的下面。並且預設的8080埠必須要更改為80埠,等等。
用了整整一天,但是已經接觸到了一直都想理解的tomcat了,還是很開心的。
下回還是專心AC程式吧,呵呵。