2-22-實現jsp經過tomcat鏈接mysql

 

 

全部軟件的版本以下:html

MySQL-Connector-Java: mysql-connector-java-5.1.36java

Tomcat: apache-tomcat-8.0.26mysql

JDK: jdk-8u60-linux-x64linux

MySQL: mysql-5.6.26c++

1 安裝JDK

注意:安裝以前須要查看下系統是否安裝了openjdk,若是安裝了openjdk,請先卸載,不然安裝不了oracle官方的jdkweb

卸載方法:sql

[root@xuegod2 ~]# yum remove java-* -yshell

安裝jdk:數據庫

[root@xuegod2 ~]# rpm -ivh jdk-8u60-linux-x64.rpmapache

[root@xuegod2 ~]# java -version //查看當前系統的java版本

java version "1.8.0_60"

Java(TM) SE Runtime Environment (build 1.8.0_60-b27)

Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

[root@xuegod2 ~]# rpm -pql jdk-8u60-linux-x64.rpm //查看新裝的java安裝所在的位置/usr/java

//注意,上面的方式用於最小安裝的系統,

2 安裝tomcat

[root@xuegod2 ~]# tar xvf apache-tomcat-8.0.26.tar.gz -C /usr/local/src/

[root@xuegod2 ~]# cd /usr/local/src/apache-tomcat-8.0.26/

注意:Tomcat有兩種安裝方式,一種是直接解壓就可使用的二進制文件,第二種是編譯安裝,咱們這裏採用了第一種方法,下載的tomcat軟件直接解壓就能夠

執行的二進制文件,由於在官方默認下載的即是使用第一種方法安裝,那麼下載解壓後的目錄以下:

tomcat

|---bin Tomcat:存放啓動和關閉tomcat腳本;

|---conf Tomcat:存放不一樣的配置文件(server.xml和web.xml);

|---lib:包含Tomcat使用的jar文件.unix平臺此目錄下的任何文件都被加到Tomcat的classpath中;

|---logs:存放Tomcat執行時的LOG文件;

|---webapps:Tomcat的主要Web發佈目錄(包括應用程序示例);

|--- ROOT:tomcat的家目錄

|--- index.jsp:Tomcat的默認首頁文件

|---work:存放jsp編譯後產生的class文件或servlet文件存放

|---temp:存放Tomcat運行時所產生的臨時文件

[root@xuegod2 apache-tomcat-8.0.26]# ls bin/ //tomcat的執行腳本文件

bootstrap.jar       commons-daemon-native.tar.gz  digest.sh         startup.bat           tool-wrapper.sh

catalina.bat        configtest.bat                setclasspath.bat  startup.sh            version.bat

catalina.sh         configtest.sh                 setclasspath.sh   tomcat-juli.jar       version.sh

catalina-tasks.xml  daemon.sh                     shutdown.bat      tomcat-native.tar.gz

commons-daemon.jar  digest.bat                    shutdown.sh       tool-wrapper.bat

#bat爲windows下的腳本(批處理)

#sh爲Linux下的腳本,Shell

#catalina.sh是一個最關鍵的腳本,其餘的啓動腳本如startup,shutdown.sh,都是使用了不一樣的參數調用了該腳本,startup是以start參

數調用了catalina腳本,shutdown使用stop調用了catalina腳本!

 

[root@xuegod2 apache-tomcat-8.0.26]# cd .. ; mv apache-tomcat-8.0.26/ /usr/local/tomcat ; cd

Tomcat啓動腳本

[root@xuegod2 ~]# vim /etc/init.d/tomcat

  1 #!/bin/bash

  2 #Tomcat init script for Linux

  3 #chkconfig: 2345 96 14

  4 #discription :The Apache Tomcat Server/JSP container

  5 JAVA_OPTS='-server -Xms64m -Xms128m'

  6 JAVA_HOME=/usr/java/jdk1.8.0_60

  7 CATALINA_HOME=/usr/local/tomcat

  8 $CATALINA_HOME/bin/catalina.sh $*

[root@xuegod2 ~]# chmod +x /etc/init.d/tomcat

[root@xuegod2 ~]# service tomcat start

Using CATALINA_BASE:   /usr/local/tomcat

Using CATALINA_HOME:   /usr/local/tomcat

Using CATALINA_TMPDIR: /usr/local/tomcat/temp

Using JRE_HOME:        /usr

Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

Tomcat started.

[root@xuegod2 ~]# chkconfig --add tomcat

[root@xuegod2 ~]# chkconfig tomcat on

[root@xuegod2 ~]# netstat -anput|grep 8080//查看是否啓動

tcp        0      0 :::8080                     :::*                        LISTEN      2020/java

3 測試Tomcat

瀏覽器打開網址http://192.168.10.32:8080

 

 

點擊manager App,須要一個用戶名和密碼:

建立管理Manger App用戶

[root@xuegod2 ~]# vim /usr/local/tomcat/conf/tomcat-users.xml

01. [root@XueGod63~]# vim /usr/local/tomcat/conf/tomcat-users.xml

02. <!--

03. <role rolename="tomcat"/>

04. <role rolename="role1"/>

05. <user username="tomcat" password="tomcat" roles="tomcat"/>

06. <user username="both" password="tomcat" roles="tomcat,role1"/>

07. <user username="role1" password="tomcat" roles="role1"/>

08. -->

#修改成以下,去掉註釋<!-- -->

01. <role rolename="tomcat"/>

02. <role rolename="role1"/>

03. <rolerolename="manager-gui"/> #添加此行

04. <userusername="redhat" password="123456" roles="manager-gui"/> #修改此行

05. <user username="both" password="tomcat" roles="tomcat,role1"/>

06. <user username="role1" password="tomcat" roles="role1"/>

 

################################################################################

幾種角色

1:「manager-gui」:Allows access tothe html interface(容許經過web的方式登陸查看服務器信息)。

2:「manager-script」: Allows access to the plain textinterface(容許以純文本的方式訪問)。

3:「manager-jmx」: Allows access to the JMX proxyinterface(容許jmx的代理訪問)。

4:「manager-status」: Allows access to the read-onlystatus pages(容許以只讀狀態訪問)。

http://tomcat.apache.org/tomcat-8.0-doc/manager-howto.html#Configuring_Manager_Application_Access

[root@xuegod2 ~]# service tomcat stop

[root@xuegod2 ~]# service tomcat start //tomcat沒有restart命令,只能先stop在start

 

測試訪問:

點Manager App按鈕,輸入用戶名redhat ,密碼123456 登陸

 

 

4 搭建基於域名的虛擬主機

[root@xuegod2 ~]# ls /usr/local/tomcat/conf/

Catalina         catalina.properties  logging.properties  tomcat-users.xml  web.xml

catalina.policy  context.xml          server.xml          tomcat-users.xsd

server.xml是Tomcat的主配置文件(全局),服務器設置的,例如端口設置,路徑設置。

context裏設置tomcat數據源,用來鏈接數據庫。

tomcat_user主要是用戶名和密碼的設置。

web是默認首頁等等之類的設置

[root@xuegod2 ~]# vim /usr/local/tomcat/conf/server.xml

<Host name="xuegod.com" appBase="/var/www/html">

     <Contextpath="" docBase="/var/www/html/web1" />

</Host>

<Host name="xuegod.cn" appBase="/var/www/html">

     <Contextpath="" docBase="/var/www/html/web2" />

</Host>

#在末尾的</Engine>上面添加上面這幾行

appBase指定應用程序(網站)的基本路徑,這裏能夠存放多個程序(網站),通常是相對路徑,相對於tomcat的安裝目錄。

Context path=""爲虛擬目錄,若是是空,表示直接就是/,若是是如path="aa",那麼訪問的時候就是site:8080/aa

xuegod.cndocBase="……" 爲實際目錄,就是能夠是絕對路徑,若是是相對路徑就是基於appBase

 

[root@xuegod2 ~]# service tomcat stop ; service tomcat start

[root@xuegod2 ~]# mkdir -p /var/www/html/{web1,web2}

[root@xuegod2 ~]# echo xuegod.com > /var/www/html/web1/index.html

[root@xuegod2 ~]# echo xuegod.cn > /var/www/html/web2/index.html

 

客戶機hosts文件

192.168.10.32  xuegod.com

192.168.10.32  xuegod.cn

網頁測試

瀏覽器訪問xuegod.com:8080

 

 

瀏覽器訪問xuegod.cn:8080

 

 

補充:真實的生產環境中,須要一個合法的域名和一個合法的公網IP,把域名解析到IP上,而後在web服務器裏修改配置文件

5 安裝tomcat-Native

    Tomcat 可使用 apr 來提供更好的伸縮性、性能和集成到本地服務器技術。用來提升 tomcat 的性能。 tomcat native 在具體的運行平臺上,提供了一種優化技術,它自己是基於 ARP(Apache Portable(輕便) Runtime)技術

咱們應用了 tomcat native 技術以後,tomcat 在跟操做系統級別的交互方面能夠作得更好,而且它更像apache 同樣,能夠更好地做爲一臺 web server。

tomcat 能夠利用 apache 的 apr 接口,使用操做系統的部分本地操做,從而提高性能APR 提高的是靜態頁面處理能力

關於tomcat-native的相關介紹及下載: http://tomcat.apache.org/download-native.cgi

安裝依賴包:

[root@xuegod2 ~]# yum install apr-devel gcc gcc-c++ openssl-devel openssl

[root@xuegod2 ~]# tar xf tomcat-native-1.1.34-src.tar.gz -C /usr/local/src/

[root@xuegod2 native]# ./configure --with-apr=/usr/ --with-java-home=/usr/java/jdk1.8.0_60/ --with-ssl

[root@xuegod2 ~]# make ; make install ; cd

 

 

根據安裝提示,須要添加庫文件:

[root@xuegod2 native]# vim /etc/ld.so.conf

/usr/local/apr/lib    #添加此行

[root@xuegod2 native]# ldconfig   #加載一下

重啓一下tomcat

[root@xuegod2 native]# cd /usr/local/tomcat/bin/

[root@xuegod2 bin]# ./shutdown.sh ; ./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

Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

Using CATALINA_BASE:   /usr/local/tomcat

Using CATALINA_HOME:   /usr/local/tomcat

Using CATALINA_TMPDIR: /usr/local/tomcat/temp

Using JRE_HOME:        /usr

Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

Tomcat started.

查看native與tomcat結合在一塊兒使用:

[root@xuegod2 bin]# cat /usr/local/tomcat/logs/catalina.out |grep Native --color

 

 

 

6 安裝mysql

解決依賴:

[root@xuegod2 ~]# yum install -y cmake ncurses-devel //gcc等相關在編譯apache已安裝

[root@xuegod2 ~]# tar xf mysql-5.6.26.tar.gz -C  /usr/local/src/ ; cd /usr/local/src/mysql-5.6.26

[root@xuegod2 mysql-5.6.26]#

編譯安裝

cmake \

 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \

 -DDEFAULT_CHARSET=utf8 \

 -DDEFAULT_COLLATION=utf8_general_ci \

 -DWITH_EXTRA_CHARSETS=all \

 -DWITH_MYISAM_STORAGE_ENGINE=1\

 -DWITH_INNOBASE_STORAGE_ENGINE=1\

 -DWITH_MEMORY_STORAGE_ENGINE=1\

 -DWITH_READLINE=1\

 -DENABLED_LOCAL_INFILE=1\

 -DMYSQL_DATADIR=/usr/local/mysql/data \

 -DMYSQL-USER=mysql

 

*****************************************************************************************************************

DCMAKE_INSTALL_PREFIX #制定mysql的安裝根目錄,目錄在安裝的時候會自動建立,這個值也能夠在服務器

啓動時,用--basedir來設置

DMYSQL_UNIX_ADDR #服務器與本地客戶端進行通訊的Unix套接字文件,必須是絕對路徑,默認位

置/tmp/mysql.sock,能夠在服務器啓動時,用--socket改變

DDEFAULT_CHARSET #mysql默認使用的字符集,不指定將默認使用Latin1西歐字符集

DDEFAULT_COLLATION #默認字符校對

DWITH_EXTRA_CHARSETS #制定mysql拓展字符集,默認值也是all支持全部的字符集

DWITH_MYISAM_STORAGE_ENGINE #靜態編譯MYISAM,INNOBASE,MEMORY存儲引擎到MYSQL服務

器,這樣MYSQL就支持這三種存儲引擎

DWITH_INNOBASE_STORAGE_ENGINE

DWITH_MEMORY_STORAGE_ENGINE

DWITH_READLINE #支持readline庫

DENABLED_LOCAL_INFILE #容許本地倒入數據,啓用加載本地數據

DMYSQL_DATADIR #mysql數據庫存放路徑

DMYSQL-USER #運行mysql的用戶

這些編譯參數的幫助尋找方法:

http://www.mysql.com/→→Documentation→→選擇對應的版本(5.6)→→HTML Online→→View→→Installation &

Upgrades→→Installing MySQL from Source →→MySQLSource-Configuration Options→→

http://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html //最終的URL

 

[root@xuegod2 mysql-5.6.26]# make ; make install

[root@xuegod2 ~]# useradd -M -s /sbin/nologin mysql

[root@xuegod2 ~]# cd && chown -R mysql:mysql /usr/local/mysql/   //屬主屬組更改

[root@xuegod2 ~]# cp /usr/local/mysql/support-files/my-default.cnf  /etc/my.cnf

cp: overwrite `/etc/my.cnf'? y   //覆蓋原配置文件

[root@xuegod2 ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld //啓動腳本

[root@xuegod2 ~]# vim /etc/init.d/mysqld /更改啓動腳本中指定mysql位置

basedir=

datadir=

#修改成

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

[root@xuegod2 ~]# chkconfig mysqld on   #開機啓動

初始化數據庫

[root@xuegod2 ~]# /usr/local/mysql/scripts/mysql_install_db  --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql

[root@xuegod2 ~]# ls /usr/local/mysql/data/ //初始化看這個下面有無mysql和test等數據庫

ibdata1  ib_logfile0  ib_logfile1  mysql  performance_schema  test

[root@xuegod2 ~]# ln -s /usr/local/mysql/bin/* /bin/ //這個裏面是部分命令,讓系統直接調用

[root@xuegod2 ~]# service mysqld start   //啓動數據庫

Starting MySQL. SUCCESS!

[root@xuegod2 ~]# mysql_secure_installation //初始安全設置(設置root密碼,123456)[記住,編譯安裝以前,記得除去mysql mysqldevel mysql-libs三個軟件]

[root@xuegod2 ~]# mysql -uroot -p123456 #登陸測試(OK)

也能夠藉助下面的腳原本實現,腳本須要修改,注意

#!/bin/bash

yumremove -y mysql mysql-server

clear

echo'Thisshell will Auto Install Mysql5.6'

yuminstall -y cmake ncurses-devel

tar-xf mysql-5.6.26.tar.gz -C /usr/local/src && cd/usr/local/src/mysql-5.6.26

useradd-M -s /sbin/nologin mysql

mkdir/usr/local/mysql

cmake-DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock-DDEFAULT_CHARSET=utf8

-DDEFAULT_COLLATION=utf8_general_ci-DWITH_EXTRA_CHARSETS=all-DWITH_MYISAM_STORAGE_ENGINE=1-

DWITH_INNOBASE_STORAGE_ENGINE=1-DWITH_MEMORY_STORAGE_ENGINE=1-DWITH_READLINE=1-

DENABLED_LOCAL_INFILE=1-DMYSQL_DATADIR=/usr/local/mysql/data-DMYSQL_USER=mysql

make-j 3 && make install

chown-R mysql:mysql /usr/local/mysql

/usr/local/mysql/scripts/mysql_install_db--user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

rm-rf /etc/my.cnf

cp/usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

sed-i '/^\[mysqld\]/adatadir = /usr/local/mysql/data' /etc/my.cnf

sed-i '/^\[mysqld\]/abasedir = /usr/local/mysql' /etc/my.cnf

cp/usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

chmod+x /etc/init.d/mysqld

servicemysqld restart && echo "install success"

echo"PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile

source/etc/profile

echo"source /etc/profile" >> /etc/rc.local

腳本可能存在問題

[root@xuegod2 ~]# echo "PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile && source /etc/profile

[root@xuegod2 ~]# vim /etc/my.cnf

character-set-server=utf8 #添加此行,修改mysql數據庫默認編碼(和低版本的mysql寫法不同,低版本的寫法是:default-character-set=utf8

[root@xuegod2 ~]# service mysqld restart

[root@xuegod2 ~]# mysql_secure_installation #數據庫安全初始化

[root@xuegod2 ~]# mysql -uroot -p123456

mysql> show variables like "%char%";

+--------------------------+----------------------------------+

| Variable_name            | Value                            |

+--------------------------+----------------------------------+

| character_set_client     | utf8                             |

| character_set_connection | utf8                             |

| character_set_database   | utf8                             |

| character_set_filesystem | binary                           |

| character_set_results    | utf8                             |

| character_set_server     | utf8                             |

| character_set_system     | utf8                             |

| character_sets_dir       | /usr/local/mysql/share/charsets/ |

+--------------------------+----------------------------------+

8 rows in set (0.00 sec)

注意:以上安裝MySQL部分,根據實際狀況來選擇安裝方式,能夠選擇編譯安裝,也能夠用rpm包來安裝,只要保證服務正常運行便可。

測試數據

mysql> create database tomcat;  //測試數據庫,爲了和後面方便測試,這裏建立tomcat

Query OK, 1 row affected (0.00 sec)

 

mysql> use tomcat

Database changed

mysql> create table tt(id int,name varchar(128)); //建立測試表

Query OK, 0 rows affected (0.09 sec)

 

mysql> insert into tt values(1,"com on boy"),(2,"come on girl"); //建立測試數據

Query OK, 2 rows affected (0.02 sec)

Records: 2  Duplicates: 0  Warnings: 0

 

mysql> grant all on tomcat.* to tomcat@localhost identified by 'tomcat'; //受權用戶

Query OK, 0 rows affected (0.02 sec)

 

mysql> exit;

Bye

[root@xuegod2 ~]# mysql -utomcat -ptomcat //測試tomcat能夠登錄(OK)

7 測試jsp連接mysql

Jsp鏈接mysql,官方提供了工具:安裝mysql-connector

安裝mysql-connector

[root@xuegod2 ~]# tar xvf mysql-connector-java-5.1.36.tar.gz -C /usr/local/src/  

[root@xuegod2 ~]# cd /usr/local/src/mysql-connector-java-5.1.36/

[root@xuegod2 mysql-connector-java-5.1.36]# ls

build.xml  CHANGES  COPYING  docs  mysql-connector-java-5.1.36-bin.jar  README  README.txt  src

[root@xuegod2 mysql-connector-java-5.1.36]# cp mysql-connector-java-5.1.36-bin.jar /usr/local/tomcat/lib/ #只須要複製到tomcat的lib目錄下,重啓tomcat就能夠生效

[root@xuegod2 ~]# service tomcat stop ; service tomcat start

測試:

 

[root@xuegod1 ~]# vim /usr/local/tomcat/webapps/ROOT/mysql.jsp       //創建測試頁面

<%@ page contentType="text/html;charset=utf-8"%>

<%@ page import="java.sql.*"%>

<html>

<body>

<%

Class.forName("org.gjt.mm.mysql.Driver").newInstance();

String url ="jdbc:mysql://localhost/tomcat?user=tomcat&password=tomcat&useUnicode=true&characterEncoding=utf-8";

Connection conn= DriverManager.getConnection(url);

Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

String sql="select * from tt";

ResultSet rs=stmt.executeQuery(sql);

while(rs.next()){%>

step:<%=rs.getString(1)%>

context:<%=rs.getString(2)%><br><br>

<%}%>

<%out.print("Congratulations!!! JSP connect MYSQLIS OK!!");%>

<%rs.close();

stmt.close();

conn.close();

%>

</body>

</html>

#代碼複製注意覈對,因爲編碼問題,複製到vim中可能會增長多餘的%號,記得刪除

 

瀏覽器訪問:http://192.168.10.32:8080/mysql.jsp

 

相關文章
相關標籤/搜索