官方微信:動力節點Java學院
服務概述
1、Tomcat是什麼?
Tomcat 服務器是一個免費的開放源代碼的Web 應用服務器,屬於輕量級應用服務器,在中小型系統和併發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP 程序的首選。
Tomcat和IIS等Web服務器一樣,具有處理HTML頁面的功能。不過,Tomcat處理靜態HTML的能力不如Apache服務器。目前Tomcat最新版本為8.0.0-RC1 (alpha) Released。JSP全名為Java Server Pages,中文名叫java服務器頁面,是由Sun Microsystems公司倡導、許多公司參與一起建立的一種動態網頁技術標準。JSP技術有點類似ASP技術,它是在傳統的網頁HTML文件中插入Java程序段和JSP標記,從而形成JSP文件,後綴名為.jsp 。支持JSP語言,收費ls、版web服務器:Oracle的weblogic ;IBM的websphere
Tomcat是一個應用服務器。 比如,假設我們瀏覽sina網的網頁,而sina網的所有網頁是配置在一個Tomcat服務器上的,那麼,如果沒有這個Tomcat來提供服務器端的服務的話,那你就打不開sina網的任何網頁了
模式: B/S 模式
端口: 8080
1)關於java的相關概念:
JDK :java development kit (套件) 。簡單的說JDK是面向開發人員使用的SDK,它提供了Java的開發環境和運行環境。
SDK是Software Development Kit 一般指軟件開發包,可以包括凼數庫、編譯程序等。
JRE: 是Java Runtime Enviroment是指Java的運行環境,是面向Java程序的使用者,而不是開發者。
JVM: java virtual machineJVM就是我們常說的java虛擬機。在JDK的安裝目錄裡你可以找到jre目錄裡面有兩個文件夾bin和lib,在這裡可以認為bin裡的就是jvm,lib中則是jvm工作所需要的類庫,而jvm和 lib和起來就稱為jre。
2、Apache和Tomcat的區別:
Apache只是一個Web服務器,可以作為獨立的web服務器來運行,不過只支持靜態網頁,如ASP、 PHP 、 CGI、JSP等動態網頁的就顯得無能為力。
Tomcat也可以作為獨立的web服務器來運行。但Tomcat也是應用( Java )服務器,它只是一個 Servlet容器(生成動態Web內容) 。
由於 Apache解釋靜態頁面要比tomcat快速而且穩定, 基於以上原因,一個現實的網站使用一個Apache作為Web服務器,為網站的靜態頁面請求提供服務;並使用Tomcat服務器作為一個Servlet/JSP插件,顯示網站的動態頁面;
3、Apache+Tomcat整合的好處:
1). Apache主要用來解析靜態文本,如html,tomcat雖然也有此功能,但apache能大大提高效率,對於併發數較大的企業級應用,能更好的顯示apache的高效率;
2)Tomcat用來解析jsp,servlet等,所有的客戶請求首先會發送到Apache,如果請求是靜態文本則由apache解析,並把結果返回給客戶端,如果是動態的請求,如jsp,apache會把解析工作交給tomcat,由tomcat進行解析(這首先要兩者現實整合),tomcat解析完成後,結果仍是通過apache返回給客戶端,這樣就可以達到分工合作,實現負載均衡,提高系統的性能!而且因為JSP是服務器端解釋代碼的,這樣整合可以減少Tomcat的服務開銷。
4、Apache+Tomcat整合的原理
作為 Apache下面的子項目,Tomcat 與 Apache之間有著天然的聯繫。在實際操作中,主要是Apache作為主服務器運行,當監聽到有jsp或者servlet的請求時,將請求轉發給tomcat服務器,由tomcat服務器進行解析後,發回apache,再由apache發回用戶。
在tomcat中有兩個監聽的端口,一個是8080用於提供web服務,一個是8009用於監聽來自於apache的請求。當apache收到jsp或者servlet請求時,就向tomcat 的8009端口發送請求,交由tomcat處理後,再返回給apache,由apache返回給客戶。
一:實驗目標
實戰 :實現 tomcat使用用戶密碼登錄
實戰: 實現JSP通過Tomcat連接MySQL
二:實驗環境
服務端: linuxidc63.com IP:192.168.1.63
客戶端: linuxidc64.com IP:192.168.1.64
三:實驗步驟
1、 安裝 JDK
1)準備相關軟件包:
jdk-7u71-linux-x64.rpm
apache-tomcat-7.0.27.tar.gz #tomcat安裝包
mysql-connector-java #用於使用java連接mysql數據庫.mysql數據庫連接器。
mysql-connector-java-5.1.34.tar.gz
2)安裝及配置Java運行環境—jdk。升級了jdk的版本
[root@linuxidc63~]#rpm-ivh jdk-7u71-linux-x64.rpm
[root@linuxidc63~]#rpm –pql /root/jdk-7u71-linux-x64.rpm#通過查看jdk的信息可以知道jdk的安裝目錄在/usr/java
Linux export命令參數
功能說明:設置或顯示環境變量。
語法: export[-fnp][變量名稱]=[變量設置值]
例:
[root@linuxidc63 ~]# A="aaa"
[root@linuxidc63 ~]# echo $A
aaa
[root@linuxidc63 ~]# export B="bbb"
[root@linuxidc63 ~]# echo $B
bbb
3)修改環境變量:
[root@linuxidc63~]#vim /etc/profile#在文件的最後,添加如下內容:
export JAVA_HOME=/usr/java/jdk1.7.0_71
export JAVA_BIN=/usr/java/jdk1.7.0_71/bin
export PATH=${JAVA_HOME}/bin:$PATH
export CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
註釋:
exportJAVA_HOME=/usr/java/jdk1.7.0_71#java家目錄
exportJAVA_BIN=/usr/java/jdk1.7.0_71/bin#java可執行文件目錄
exportPATH=${JAVA_HOME}/bin:$PATH#修系統環境變量
exportCLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar#類路徑
[root@tomcat~]#source /etc/profile#使配置文件生效
4)驗證java運行環境是否安裝成功:
[root@linuxidc63~]#java -version
javaversion"1.7.0_71"
Java(TM)SERuntimeEnvironment(build1.7.0_71-b14)
JavaHotSpot(TM)64-BitServerVM(build24.71-b01,mixedmode)
#如果出現安裝的對應版本,說明java運行環境已經安裝成功。
2、 安裝 tomcat提升服務器性能:
注: tomcat-native.tar.gz #這個軟件包在tomcat的bin目錄下已經提供,不需要再下載了。
具體的安裝與配置
1)安裝及配置tomcat
Tomcat有兩種安裝方式,一種是直接解壓就可以使用的二進制的文件。第二種是編譯安裝。採用第一種方法,因為在官網默認下載的便是第一種二進制的文件。
[root@linuxidc63 ~]# tar zxvf apache-tomcat-7.0.27.tar.gz
[root@linuxidc63 ~]# ls apache-tomcat-7.0.27/bin/ #執行文件在這個地方
[root@linuxidc63 ~]# mv apache-tomcat-7.0.27 /usr/local/tomcat/
[root@linuxidc63 ~]# cd /usr/local/tomcat/
[root@linuxidc63 tomcat]# vim webapps/ROOT/index.jsp #默認首頁 ,網站根目錄
注: /usr/local/tomcat/webapps/ROOT/ 網站根目錄
2)為tomcat的啟動創建一個Sysv的管理腳本
[root@linuxidc63 tomcat]# vim /etc/init.d/tomcat #寫入以下內容
#!/bin/bash
# Tomcat init script for linux.
# chkconfig: 2345 96 14
# description: The Apache Tomcat server/JSP container
JAVA_OPTS='-server -Xms64m -Xmx128m'
JAVA_HOME=/usr/java/jdk1.7.0_71
CATALINA_HOME=/usr/local/tomcat #指定tomcat家目錄
$CATALINA_HOME/bin/catalina.sh $* #指定運行或關閉tomcat的腳本
[root@linuxidc63tomcat]#ls /usr/local/tomcat/bin/catalina.sh
/usr/local/tomcat/bin/catalina.sh
說明:
JAVA_OPTS='-Xms64m-Xmx128m'#是用來設置JVM相關運行參數的變量。
-Xms:初始Heap(堆)大小,使用的最小內存,cpu性能高時此值應設的大一些
-Xmx:javaheap最大值,使用的最大內存上面兩個值是分配JVM的最小和最大內存,取決於硬件物理內存的大小,建議設為物理內存的一半。
3)設置開機啟動:
[root@linuxidc63 ~]#chkconfig --add tomcat
[root@linuxidc63 ~]# chkconfig --list tomcat
tomcat0:off1:off2:on3:on4:on5:on6:off
[root@linuxidc63 ~]#chmod +x /etc/init.d/tomcat
[root@linuxidc63 ~]#service tomcat start#啟動tomcat服務
[root@linuxidc63tomcat]#netstat –antup | grep 8080
tcp00:::8080:::*LISTEN4220/java
4)瀏覽器登錄Tomcat測試:
通過瀏覽器訪問 tomcat所提供的網站,上面我們已經知道tomcat可以單獨提供Web服務的。
http://192.168.1.63:8080/
點擊【 ManagerApp】,進入管理頁面的時候,出現信息:
5)添加賬號密碼
[root@linuxidc63 ~]# vim /usr/local/tomcat/conf/tomcat-users.xml #在文件最後改:
改:
<!--
<rolerolename="tomcat"/>
<rolerolename="role1"/>
<userusername="tomcat"password="tomcat"roles="tomcat"/>
<userusername="both"password="tomcat"roles="tomcat,role1"/>
<userusername="role1"password="tomcat"roles="role1"/>
-->
為:
<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"/>
-->
<role rolename="manager-gui"/>
<user username="mk" password="123456" roles="manager-gui"/>
</tomcat-users>
#添加用戶角色: manager-gui。添加了用戶:mk 密碼:123456
6)重新啟動tomcat服務並測試登錄
[root@linuxidc63 ~]#service tomcat stop
[root@linuxidc63 ~]#service tomcat start
重新登陸,並使用設置的用戶名和密碼登陸,登陸後的界面如圖 :
7)安裝tomcat-native
Tomcat 可以使用 apr 技術來提供更好的伸縮性、性能。用來提高tomcat的性能。
tomcat native在具體的運行平臺上,提供了一種優化技術,它本身是基於ARP(Apache Portable(輕便) Runtime)技術 tomcat可以利用apache的apr接口,使用操作系統的部分本地操作,從而提升性能。 APR提升的是靜態頁面處理能力
詳細介紹: http://tomcat.apache.org/native-doc/
依賴的軟件包: apr-devel,openssl-devel
[root@linuxidc64 tomcat]# yum install -y apr-devel openssl
[root@linuxidc63 tomcat]# cd /usr/local/tomcat/bin
[root@linuxidc63 bin]# ls tomcat-native.tar.gz #在這個目錄下有tomcat-native.tar.gz文件
tomcat-native.tar.gz
[root@linuxidc63 bin]# source /etc/profile
[root@linuxidc63 bin]# tar -zxvf tomcat-native.tar.gz
[root@linuxidc63 bin]# cd tomcat-native-1.1.23-src/jni/native/
[root@tomcat native]# ./configure --with-apr=/usr/ --with-ssl
[root@tomcat native]# make && make install
8)安裝MySQL的連接器
[root@linuxidc63 ~]# tar -zxvf mysql-connector-java-5.1.34.tar.gz
[root@linuxidc63 ~]# cd mysql-connector-java-5.1.34
[root@linuxidc63 mysql-connector-java-5.1.34]# ls
build.xml COPYING mysql-connector-java-5.1.34-bin.jar README.txt
CHANGES docs README src
[root@linuxidc63 mysql-connector-java-5.1.34] cp mysql-connector-java-5.1.20-bin.jar /usr/local/tomcat/lib/ #複製過去這個jar包就可以了
[root@linuxidc63 tomcat]# service tomcat stop
[root@linuxidc63 tomcat]# service tomcat start
9)安裝mysql:
[root@linuxidc64 ~]# yum install mysql-server -y
[root@linuxidc64 ~]# service mysqld restart
[root@linuxidc64 ~]# mysqladmin -uroot password 123456 #設置密碼
10)設置mysql數據庫默認編碼為utf8
[root@linuxidc64 ~]# vim /etc/my.cnf # 在配置文件中添加紅色標記內容
[client]
default-character-set=utf8
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
default-character-set=utf8
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[root@linuxidc64 ~]# service mysqld restart
11)創建測試數據庫
注:確認上面是 UFT8後,我們就來創建個測試數據庫。注意您的終端也要是UTF8編碼啊,否則中文會出現亂碼!
[root@linuxidc64 ~]# mysql -uroot -p123456
mysql> create database tomcat;
mysql> use tomcat;
mysql> create table tt(id int,name varchar(128));
mysql> insert into tt values(1,'mk');
mysql> insert into tt values(2,'linuxidc');
ysql> grant all on tomcat.* to tomcat@localhost identified by ' tomcat';
mysql> exit
[root@linuxidc64 ~]# mysql -utomcat -ptomcat #測試tomcat帳號。
12)測試主頁:
[root@linuxidc63 ROOT]# pwd
/usr/local/tomcat/webapps/ROOT
#注:複製時,刪除多添加%號。如果,直接複製此段內容,最後兩行的開頭會多出個%,注意把他刪除了。 [root@linuxidc63 ROOT]# vim test.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 MYSQL IS OK!!");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
測試
Httpd://192.168.1.63:8080/test.jsp