CentOS 7 配置Tomcat9連接MySQL


配置Tomcat

首先安裝Tomcat

安裝Tomcat分為安裝Tomcat和安裝JDK兩個步驟

JDK( Java Development Kit ) 是Sun Microsystems針對Java開發的產品 . 自從Java推出以來 , JDK已經成為使用最廣泛的Java SDK . JDK是整個Java的核心 , 他包括了Java運行環境、Java工具和Java基礎的類庫 .  所以要想運行Java程序必須要有JDK的支持 , 而安裝Tomcat的前提也是安裝好JDK

安裝JDK

# 上傳完JDK的包之后 , 把它放到/usr/local/目錄下 , 然后解壓
[root@DaMoWang ~]# tar xf jdk-10.0.2_linux-x64_bin.tar.gz -C /usr/local/
[root@DaMoWang ~]# cd /usr/local/
[root@DaMoWang local]# mv jdk-10.0.2/ jdk10
# 設置環境變量
[root@DaMoWang local]# vim /etc/profile
JAVA_HOME=/usr/local/jdk10/
JAVA_BIN=/usr/local/jdk10/bin
JRE_HOME=/usr/local/jdk10/jre
PATH=$PATH:/usr/local/jdk10/bin:/usr/local/jdk10/jre/bin
CLASSPATH=/usr/local/jdk10/lib:/usr/local/jdk10/jre/lib/charsets/jar
[root@DaMoWang local]# source /etc/profile     # 使配置文件生效
[root@DaMoWang local]# java -version
java version "10.0.2" 2018-07-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.2+13)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.2+13, mixed mode)
# 如果顯示的不是java version 而是 openjdk version 那么做如下操作
[root@DaMoWang local]# mv `which java`{,.bak}
[root@DaMoWang local]# source /etc/profile
# 直接使用openjdk也可以

安裝Tomcat

# 因為是二進制包 , 所以免去了編譯的過程 
[root@DaMoWang ~]# tar xf apache-tomcat-9.0.10.tar.gz 
[root@DaMoWang ~]# mv apache-tomcat-9.0.10/ /usr/local/tomcat
[root@DaMoWang ~]# cd /usr/local/tomcat
[root@DaMoWang tomcat]# bin/startup.sh      # 啟動Tomcat

使用netstat命令查看是否啟動成功

#  正常會有三個端口 8005、8009和8080 , 其中8080為提供web服務的端口 , 8005為管理端口 , 8009為第三方服務調用的端口 , 比如httpd和Tomcat結合時會用到
[root@DaMoWang tomcat]# netstat -lntp|grep java
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      3430/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      3430/java           
tcp6       0      0 :::8080                 :::*                    LISTEN      3430/java  

測試

 

配置Tomcat

Tomcat的安裝過程非常簡單 , Tomcat的配置其實並不多

配置Tomcat服務的訪問端口

Tomcat默認啟動的端口是8080 , 想要修改則需要修改安裝目錄下conf/server.xml

[root@DaMoWang tomcat]# vim conf/server.xml
#    找到 <Connector port="8080" protocol="HTTP/1.1"  的行 , 比如修改為80
 <Connector port="80" protocol="HTTP/1.1 保存退出
# 重啟Tomcat服務
[root@DaMoWang tomcat]# bin/shutdown.sh 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/jdk10
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
[root@DaMoWang tomcat]# bin/startup.sh 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/jdk10
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.

Tomcat的虛擬主機

[root@DaMoWang tomcat]# vim conf/server.xml 
 # 增加虛擬主機 , 並定義域名, 在</Host>下一行添加新的<Host>
            <Host name="www.damowang.cn" appBase="/data/tomcatweb/"
                unpackWARs="false" autoDeploy="true"
                xmlValidation="false" xmlNamespaceAware="false">
                <Context path="" docBase="/data/tomcatweb/" debug="0" reloadable="true" crossContext="true"/>                                                                                  
                <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                    prefix="damowang.cn_access_log" suffix=".txt"                                                                                                                              
                    pattern="%h %l %u %t &quot;%r&quot; %s %b" />
            </Host>
# 保存退出
[root@DaMoWang tomcat]# mkdir -p /data/tomcatweb
[root@DaMoWang tomcat]# echo "damowang" > /data/tomcatweb/1.html
# 修改完配置文件之后重啟服務
[root@DaMoWang tomcat]# bin/shutdown.sh 
[root@DaMoWang tomcat]# bin/startup.sh
# 用curl訪問以下剛才創建的1.html
[root@DaMoWang tomcat]# curl -x127.0.0.1:8080 www.damowang.cn/1.html    
damowang

測試Tomcat解析JSP

# 創建一個JSP的測試頁面
[root@DaMoWang tomcat]# vim /data/tomcatweb/1.jsp
<html><body><center>                                                                         
            Now time is: <%=new java.util.Date()%>
        </center></body></html>
# 查看運行結果
[root@DaMoWang tomcat]# curl -x127.0.0.1:8080     www.damowang.cn/1.jsp
<html><body><center>
            Now time is: Fri Jul 27 18:40:46 CST 2018
        </center></body></html>
# 可以看到中間那段代碼被解析成當前系統時間了 , 也可以在物理機上綁定hosts , 用瀏覽器來測試

Tomcat連接MySQL

Tomcat連接MySQL是通過JDBC驅動實現的

所以需要准備一個包 

mysql-connector-java 可以去官網下載

首先配置mysql , 創建測試用的庫、表以及用戶

[root@DaMoWang ~]# mysql -uroot -p475541270
mysql> create database java_test;
mysql> use java_test
mysql> grant all on java_test.* to 'java'@'127.0.0.1' identified by 'damowang';
mysql> create table damowang (`id` int(4), `name` char(40));
mysql> insert into damowang values (1,'abc');
mysql> insert into damowang values (2,'aaa');
mysql> insert into damowang values (3,'ccc');
#  退出mysql 去驗證java用戶有沒有問題
[root@DaMoWang ~]# mysql -ujava -pdamowang -h127.0.0.1
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.21 Source distribution

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

MySQL配置完后接着配置Tomcat相關的配置文件

[root@DaMoWang ~]# vim /usr/local/tomcat/conf/context.xml 
#    在</Context> 上面添加以下內容
 <Resource name="jdbc/mytest"  # 可以隨便定義,要記住名字,之后會用到
        auth="Container"
        type="javax.sql.DataSource"
        maxActive="100" maxIdle="30" maxWait="10000"
        username="java" password="damowang"    # 數據庫的用戶和密碼
        driverClassName="com.mysql.jdbc.Driver"
        url="jdbc:mysql://127.0.0.1:3306/java_test">  # 數據庫的IP、端口以及庫名
</Resource>
#    編輯完之后還需要改另一個配置文件
[root@DaMoWang ~]# vim /usr/local/tomcat/webapps/ROOT/WEB-INF/web.xml      #    在</web-app>上面添加
<resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jdbc/mytest</res-ref-name>  # 和之前定義的Resource name保持一致
      <res-auth>Container</res-auth>
      </resource-ref>

 現在要用到剛才准備好的軟件包了

[root@DaMoWang ~]# tar xf mysql-connector-java-8.0.12.tar.gz -C /usr/src/
[root@DaMoWang ~]# mv /usr/src/mysql-connector-java-8.0.12/mysql-connector-java-8.0.12.jar /usr/local/tomcat/lib/

測試

[root@DaMoWang ~]# vim /usr/local/tomcat/webapps/ROOT/t.jsp
# java語言寫的代碼 這個腳本可以去連接我們的數據庫
<%@page import="java.sql.*"%>                                                                
<%@page import="javax.sql.DataSource"%>
<%@page import="javax.naming.*"%>

<%
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx 
.lookup("java:comp/env/jdbc/mytest");
Connection conn = ds.getConnection();
Statement state = conn.createStatement();
String sql = "select * from damowang";
ResultSet rs = state.executeQuery(sql);

while (rs.next()) {
out.println(rs.getString("id") +"<tr>");
    out.println(rs.getString("name") +"<tr><br>");

}

rs.close();
state.close();
conn.close();
%>
# 重啟Tomcat
[root@DaMoWang ~]# /usr/local/tomcat/bin/shutdown.sh 
[root@DaMoWang ~]# /usr/local/tomcat/bin/startup.sh 

用瀏覽器訪問

 

 連接數據庫成功 , 並且顯示出了java_test庫里的damowang表里面的數據

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM