【Tomcat】Tomcat的使用

第一章 JDK的安裝

1.1  windows下安裝

1.1.1  配置環境變量

安裝完成後,還要進行 Java 環境的配置,才能正常使用,步驟以下:javascript

(1)在個人電腦點擊右鍵——〉選擇屬性,css

(2)在彈出界面上:選擇高級——〉環境變量html

(3)點擊環境變量界面的系統變量欄的新建按鈕


java

 

變量名 node

變量值 linux

第一種 web

JAVA_HOME(必須大寫) 面試

C:\Program Files\Java\jdk1.6.0_10 shell

Path 數據庫

%JAVA_HOME%\bin

classpath

.;

%JAVA_HOME%\lib\dt.jar;

%JAVA_HOME%\lib\tools.jar

第二種

Path

C:\Program Files\Java\jdk1.6.0_10\bin

 

注意:第一種,JDK1.4之後的版本能夠暫時不配置。

 

(4) 開始>;「運行,鍵入「cmd」

(5) 鍵入命令「java -version」「java」「javac」幾個命令,出現畫面,說明環境變量配置成功;輸入set還可

   以查看系統全部變量的配置。

 

那麼爲什麼要設置這些環境變量呢?

  

    JAVA_HOME:配置到 JDK 安裝路徑。注意:變量名必須書寫正確,所有大寫,中間用下劃線。有如下好處:

? 爲了方便引用。好比,JDK安裝在C:\Program Files\Java\jdk1.6.0_10 目錄裏,則設置 JAVA_HOME 爲該目錄路徑, 那麼之後要使用這個路徑的時候,只需輸入%JAVA_HOME%便可, 避免每次引用都輸入很長的路徑串。

? 歸一原則JDK路徑被迫改變的時候, 僅需更改JAVA_HOME的變量值便可, 不然,你就要更改任何用絕對路徑引用JDK目錄的文檔, 要是萬一你沒有改全, 某個程序找不到JDK,後果是可想而知。

?爲第三方軟件服務。基於 Java 的第三方軟件會引用約定好的JAVA_HOME變量,那麼它們可以找到 JDK 的位置,否則, 將不能正常使用該軟件。若是某個軟件不能正常使用,不妨想一想是否是這個問題。 

 

   PATH:設置命令的搜索路徑,在執行命令時,操做系統就會在PATH設置的路徑去查找命令的可執行文件提供給操做系統尋找到 Java 命令工具的路徑。一般是配置到 JDK 安裝路徑\bin。完成配置之後,使用編譯器和解釋器就會很方便,能夠在任何路徑下使用bin目錄下的Java 命 令 , 而 不 需 要 寫 出 完 整 的 路 徑 : C:\Program Files\Java\jdk1.6.0_10 \bin\java

  

    CLASSPATH:系統搜索字節碼(類文件.class)文件的搜索路徑。提供程序在運行期尋找所需資源的路徑,好比:.class類文件、文件、圖片等等。在 windows環境下配置「.」表明當前路徑,那麼在執行java命令時,就會先到當前路徑尋找class類文件。這個配置對於Java初學者比較難理解,咱們在後面的Java運行過程當中,再詳細體會。

 

注意:在 windows 操做系統上,最好在 CLASSPATH 的配置裏面,始終在前面保持「.;」的配置。經過在windows窗口設置環境變量,能夠永久更改系統環境變量。也能夠在 dos命令行窗口,經過dos命令的方式修改環境變量,具體命令以下:

set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_10;

set path=%JAVA_HOME%\bin;

set classpath=.;

但經過這種方式修改的環境變量只在當前的dos命令行窗口有效,對於其餘的dos命令行窗口則無效。  

注意:若是更改了系統環境變量的配置,必須從新打開 dos 窗口,就是打開一個新的 dos 窗口,環境變量的新配置纔會有效,不然,dos 窗口就還應用舊的環境變量的舊配置。

1.1.2  JDK、JREJVM的區別

v JDK:(Java Development Kit), java開發包,它包含了java的編譯,調試,運行整個環境和包含了整個類庫的軟件包

v JRE:(Java Runtime Environment), java運行環境, jre是jdk的子集,在一套完整的jdk中就包含了jre, jre只負責運行一個編譯好的java程序(字節碼文件bytecode, jdk能夠去編譯,調試,運行整個操做過程都支持

Java運行環境的三項主要功能:

加載代碼:由class loader 完成;

校驗代碼:由bytecode verifier 完成;

執行代碼:由 runtime interpreter完成。

 

v JVM: (Java Virtual Machine),在jre內部有一個軟件組件jvm就是java虛擬機

1.1.3  JDK的結構簡介

各目錄含義

bin

(binary 二進制)jdk的基本應用程序都在這裏,如javacjavajavadoc

domo/sample

java自帶的一些例子程序

include

用於編譯本地方法的文件,即Java調用CC++語言的頭文件,用於擴展Java的功能

jre

java運行時的環境在這裏

lib

libary 庫)java的經常使用類庫

src.zip

Java開放的部分源代碼,經常使用類庫的源代碼

 

bin目錄(  java開發調試的命令,  exe文件,鏈接庫文件,編譯器等等  )

名稱

解釋

appletviewer

小程序瀏覽器,一種執行HTML文件上的java小程序java的瀏覽器

java

java解釋器,運行一個字節碼文件,直接從類文件執行java應用程序字節代碼

javac

java編譯器,編譯一個java文件,將java源代碼轉換成字節碼

javadoc

根據java源碼級說明語句生成HTML文檔,Javadoc解析Java源文件中的聲明和文檔註釋,併產生相應的HTML頁面,描述公有類、保護類、內部類、接口、構造函數、方法。在實現時,javadoc要求且依賴於Java編譯器完成其工做。

javah

蟬聲能夠調用java過程的C過程,或創建能被java程序調用的C過程頭文件

javap

java的反彙編器,將class反編譯成Java bytecodes。顯示編譯類文件中的可訪問功能和數據,同時顯示字節代碼含義

jar

可將多個文件合併爲單個JAR文件,jar是個多用途的壓縮工具,它基於ZIPZLIB壓縮格式的

jdb

java調試器, javadebug工具,能夠逐行執行程序,設置斷點和檢查變量

jps

查看JVM進程信息用的

keytool

生成keystore文件

native2ascii

將中文unicode碼轉換成ascii碼的,-reverse參數能夠將ascii碼轉換回來

   

 

 

 

1.2  linux下安裝

 

wpsFDBF.tmp 

 

1.      www.oracle.com下載最新的Java SE Development Kit 7  jdk-7-linux-i586.rpm

2.      JDK安裝文件jdk-7-linux-i586.rpm拷貝到Redhat任意目錄下。例如:/opt/jdk(目錄jdk須要手動新建)

3.   執行   rpm  -ivh  jdk-1_5_0_17-linux-i586.rpm

此時,系統會開始安裝JDK。安裝結束後能夠在/usr目錄下發現新增了一個名爲java的文件夾。該文件夾就是安裝好的JDK目錄。

4.      設置環境變量

a.       進入/etc文件夾,找到文件profile並打開(命令爲:#vi  profile)。

b.       找到export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC,修改成下面的形式(按i讓編輯器處於插入狀態):

vi /etc/profile

export JAVA_HOME='/usr/java/jdk1.8.0_05'

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

ESC退出編輯模式,在文件末尾輸入:wq回車 保存並退出vi

 

5.     設置完畢後,保存文件。重啓Redhat(或者使用 source /etc/profile 使配置文件當即生效)登陸控制終端,鍵入:java -version;

若是出現java version 「1.7.0」等字樣,說明您的JDK已經安裝成功了!

若是不能正常顯示版本號多是因爲系統自帶的是jdk1.4.2

須要卸載後才能使用java  -version看到正確的版本號

 rpm -e  –nodeps  java-1.4.2-gcj-compat-1.4.2.0-40jpp.115.i386

source /etc/profile

java  -version

就能夠看到正確的版本號了

wpsFDC0.tmp 

6.測試配置環境
   寫個簡單的HelloWorld來測試一下
   [root@esprit java]# vi HelloWorld.java
   文件中輸入:
  

public  class HelloWorld {

   public  static  void main(String args[]) {

   System.out.println( " Hello World in Linux!! " );

   }

}
wpsFDD1.tmp

   :wq 保存退出
   [root@esprit java]# javac HelloWorld.java
   沒有錯誤,接着
   [root@esprit java]# java HelloWorld
  
shell下輸出:Hello World in Linux!!

 

 

第二章 Tomcat簡介

 

2.1  Tomcat 背景

自從JSP發佈以後,推出了各式各樣的JSP引擎。Apache Group在完成GNUJSP1.0的開發之後,開始考慮在SUN的JSWDK基礎上開發一個能夠直接提供Web服務的JSP服務器,固然同時也支持 Servlet這樣Tomcat就誕生了。Tomcat 是jakarta項目中的一個重要的子項目,其被JavaWorld雜誌的編輯選爲2001年度最具創新的java產品,同時它又是sun公司官方推薦的 servlet和jsp容器,所以其越來越多的受到軟件公司和開發人員的 喜好。servlet和jsp的最新規範均可以在tomcat的新版本中獲得實現。其次,Tomcat是徹底免費的軟件,任何人均可以從互聯網上自由地下載。Tomcat與Apache的組合至關完美。

 

2.2  Tomcat目錄

 

1. bin :存放各類平臺下啓動和關閉Tomcat的腳本文件。其中有個檔是catalina.bat,打開這個windos配置文件,在非註釋行加入JDK路徑,例如 : SET JAVA_HOME=C:j2sdk1.4.2_06 保存後,就配置好tomcat環境了。 startup.bat是windows下啓動tomcat的文件,shutdown.bat是關閉tomcat的文件。

2. conf :存放不一樣的配置文件(server.xml和web.xml);tomcat啓動的時候須要讀取的配置文件:server.xml(tomcat主要配置文件)、web.xml和tomcatat-users.xml、catalina.policy(安全策略文件)等。修改了之後須要重啓tomcat才能生效.最重要的是 server.xml;配置tomcat組件的XML文件server.XML其中包括

 

I.頂層類元素[Top Level Elements]: 位於整個配置文件的頂層, 包括

 

II.鏈接器類元素[Connectors ]: 客戶和服務(容器類元素)間的通信接口。接受客戶請求,返回響應結果;

 

II.容器類元素[Containers]: 處理客戶請求而且生成響應結果,包含3個:

 

IV.嵌套類元素[Nested Components]: 能夠加入到容器中的元素,包括:

 

一個包含一個或多個,一個包含惟一一個和一個或多個,多個共享一個;一個包含多個,每一個定義一個虛擬主機,包含一個或多個web應用元素是表明一個在虛擬主機上運行的Web應用。標籤的描述

3. Doc:存放 Tomcat文檔;

4. Common:存放Tomcat運行須要的庫文件(JARS);

5. logs:存放Tomcat執行時的LOG文件(日誌文件)

6. src: 存放Tomcat的源代碼;(這個要看你下載的是何種tomcat啦)

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

8. work:存放jsp編譯後產生的class文件;

9. temp : 臨時活頁夾,Tomcat運行時候存放臨時文件用的。

 

 

2.3  Tomcat 類加載

 Bootstrap($JAVA_HOME/jre/lib/ext/*.jar) 其實直接雙擊該jar也會使得tomcat運行起來。

System($CLASSPATH/*.class和指定的jar)

Common($CATALINA_HOME/common 下的classes,lib,endores三個子目錄)

Catalina ($CATALINA_HOME/server/下的classes和lib目錄僅對Tomcat可見)

&Shared($CATALINA_HOME/shared/下的classes和lib目錄以及$CATALINA_HOME/lib目錄)僅對Web應用程序可見,對Tomcat不可見WebApp($WEBAPP/Web-INF/*僅對該WEB應用可見classes/*.class lib/*.jar)

 

加載類和資源的順序爲:

一、/Web-INF/classes

二、/Web-INF/lib/*.jar

三、Bootstrap

四、System

五、$CATALINA_HOME/common/classes

六、$CATALINA_HOME/common/endores/*.jar

七、$CATALINA_HOME/common/lib/*.jar

八、$CATALINA_HOME/shared/classes

九、$CATALINA_HOME/shared/lib/*.jar

 

2.4  server.xml配置簡介:

 

下面講述這個文件中的基本配置信息,更具體的配置信息請參考tomcat的文檔:

 server:

          一、port 指定一個端口,這個端口負責監聽關閉tomcat的請求

          二、shutdown 指定向端口發送的命令字符串

service:

          一、name 指定service的名字

Connector (表示客戶端和service之間的鏈接)

          一、port 指定服務器端要建立的端口號,並在這個端口監聽來自客戶端的請求

          二、minProcessors 服務器啓動時建立的處理請求的線程數

          三、maxProcessors 最大能夠建立的處理請求的線程數

          四、enableLookups 若是爲true,則能夠經過調用request.getRemoteHost()進行DNS查詢來獲得遠程客戶端的實際主機名,若爲false則不進行DNS查詢,而是返回其ip地址

       五、redirectPort 指定服務器正在處理http請求時收到了一個SSL傳輸請求後重定向的端口號

六、acceptCount 指定當所 有可使用的處理請求的線程數都被使用時,能夠放處處理隊列中的請求數,超過這個數的請求將不予處理

七、connectionTimeout 指定超時的時間數(以毫秒爲單位)

Engine (表示指定service中的請求處理機,接收和處理來自Connector的請求)

一、defaultHost 指定缺省 的處理請求的主機名,它至少與其中的一個host元素的name屬性值是同樣的

Context (表示一個web應用程序)

一、docBase 應用程序的路徑或 者是WAR文件存放的路徑

二、path 表示此web應用程序的url的 前綴,這樣請求的url

http://localhost:8080/path/****

三、reloadable 這個屬性很是重要,若是爲true, 則tomcat會自動檢測應用程序的/WEB-INF/lib 和/WEB-INF/classes目 錄的變化,自動裝載新的應用程序,咱們可

以在不重起tomcat的狀況下改變應用程序

host (表示一個虛擬主機)

一、name 指定主機名

二、appBase 應用程序基本目 錄,即存放應用程序的目錄

三、unpackWARs 若是爲true,則tomcat會自動將WAR文件解壓,不然不解壓,直接從WAR文 件中運行應用程序

Logger (表示日誌,調試和錯誤信息)

一、className 指定logger使用的類名,此類必須 實現org.apache.catalina.Logger 接口

二、prefix 指定log文件的前綴

三、suffix 指定log文件的後綴

四、timestamp 若是爲true,則log文件名中要加入時間,以下

:localhost_log.2001-10-04.txt

Realm (表示存放用戶名,密碼及role的數據庫)

一、className 指定Realm使用的類名,此類必須實現org.apache.catalina.Realm接口

Valve (功能與Logger差很少,其prefix和suffix屬性解釋和Logger 中的同樣)

一、className 指定Valve使用的類名,如用org.apache.catalina.valves.AccessLogValve

類能夠記錄應用程序的訪問信息

directory(指定log文件存放的位置):

一、pattern 有兩個值,common方式記錄遠程主機名或ip地 址,用戶名,日期,第一行請求的字符串,HTTP響應代碼,發送的字節數。combined方式比common方式記錄的值更多

 

2.5  web.xml配置簡介:

 

?一、默認(歡迎)文件的設置

? 在tomcat4\conf\web.xml中,與IIS中的默認文件意思相同。

? ?

??? index.html

??? index.htm

??? index.jsp

??

 

?2、報錯文件的設置

??

???404

???/notFileFound.jsp

??

??

???java.lang.NullPointerException

???/null.jsp

??

??若是某文件資源沒有找到,服務器要報404錯 誤,按上述配置則會調用\webapps\ROOT\notFileFound.jsp

??若是執行的某個JSP文 件產生NullPointException ,則會調用\webapps\ROOT\null.jsp

 

?3、會話超時的設置

??設置session 的過時時間,單 位是分鐘;

??

???30

??

 

?4、過濾器的設置

??

???FilterSource

???project4. FilterSource

??

??

???FilterSource

???/WwwServlet

???(/haha/*)

??

 

??過濾:

??1) 身份驗證的過濾Authentication Filters

??2) 日誌和審覈的過濾Logging and Auditing Filters

??3) 圖片轉化的過濾Image conversion Filters

??4) 數據壓縮的過濾Data compression Filters

??5) 加密過濾Encryption Filters

??6) Tokenizing Filters

??7) 資源訪問事件觸發的過濾Filters that trigger resource access events XSL/T 過濾XSL/T filters

??9) 內容類型的過濾Mime-type chain Filter 注意監聽器的順序,如:先安全過濾,而後資源,

而後內容類型等,這個順序能夠本身定。

 

2.6  管理

 

    1、用戶配置

     在進行具體Tomcat管理以前,先給tomcat添加一個用戶,使這個用戶有權限來進行管理。

     打開conf目錄下的tomcat-users.xml文 件,在相應的位置添加下面一行:

 lhr" password="lhr" roles="standard,manager"/>

   而後重起tomcat,在瀏覽器中輸入http://localhost:8080/manager/,會彈出對話框,輸入上面的用戶

名和密碼便可。

 

 

name="lhr" password="lhr" roles="admin-gui,manager-gui"/>

 

wpsFDD2.tmp 

 

    2、應用程序列表

     在瀏覽器中輸入http://localhost:8080/manager/list,瀏覽器將會顯示以下的信息:

   OK - Listed applications for virtual host localhost

   /ex:running:1

   /examples:running:1

   /webdav:running:0

   /tomcat-docs:running:0

   /manager:running:0

   /:running:0

    上面顯示的信息分別爲:應用程序的路徑、當前狀態、鏈接這個程序的session

 

   3、從新裝載應用程序

     在瀏覽器中輸入 http://localhost:8080/manager/reload?path=/examples,瀏覽器顯示以下:

   OK - Reloaded application at context path /examples   

這表示example應用程序裝載成功, 若是咱們將server.xml的Context元素的reloadable屬性設爲true, 則不必利用這種方式從新裝載應用程序,由於tomcat會自動裝載。

 

四、顯示session信息

    在瀏覽器中輸入http://localhost:8080/manager/sessions?path=/examples,瀏覽器顯示以下:

    OK - Session information for application at context path /examples Default maximum session inactive

interval 30 minutes

 

5、啓動和關閉應用程序

   在瀏覽器中輸入http://localhost:8080/manager/start?path=/examples

http://localhost:8080/manager/stop?path=/examples分別啓動和關閉examples應用程序。

 

 

 

 

 

2.7  Tomcat 整理

2.7.1  apr

許多朋友可能在啓動tomcat的時候都會看到相似這樣的信息:

引用

org.apache.catalina.core.AprLifecycleListener init
信息: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Java\jre\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS


出現這種狀況是這表示沒有找到APR
簡要解決辦法:去http://tomcat.heanet.ie/native/
 下載編譯好的tcnative-1.dll文件,目前最新爲1.1.14,拷貝至jdk\bin下,再啓動就能夠成功加載APR了。

引用

org.apache.catalina.core.AprLifecycleListener init
信息: Loaded Apache Tomcat Native library 1.1.14.
org.apache.catalina.core.AprLifecycleListener init
信息: APR capabilities: IPv6 [false], sendfile [true], accept filters [false], random [true].

2.7.2  URIEncoding


有時候在作開發的時候常常發現文本框輸入的中文到了程序中成了亂碼,實際上是由於在端口監聽部分缺乏編碼。

Xml代碼  wpsFDD3.tmp

1 URIEncoding="UTF-8"  


解決方法以下:
原始部分
8080端口上

Xml代碼  wpsFDE3.tmp

2 <connector< span=""> port="8080" protocol="HTTP/1.1"  

3                connectionTimeout="20000"  

4                redirectPort="8443" /> 


修改後

Xml代碼  wpsFDE4.tmp

5 <connector< span=""> port="8080" protocol="HTTP/1.1"  

6                connectionTimeout="20000"  

7                redirectPort="8443" URIEncoding="UTF-8" /> 


8009端口 ajp跳轉服務上,關於這個端口在apache http 作跳轉時,要至關注意

Xml代碼  wpsFDE5.tmp

8 <connector< span=""> port="8009" protocol="AJP/1.3" redirectPort="8443" /> 


修改後

Xml代碼  wpsFDF6.tmp

9 <connector< span=""> port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8" /> 


這樣,服務器獲得的中文字符就不會再有亂碼了。

2.7.3  設置Tomcat管理員賬號

 

修改tomcat7/conf/tomcat-users.xml文件,在的標籤前添加一行

 

<user username="tomcat" password="tomcat" roles="admin,manager"/>

tomcat用戶擁有管理員權限。
<role rolename="manager-gui"/>

<role rolename="admin-gui"/>

<user username="tomcat" password="tomcat" roles="manager-gui,admin-gui,admin,manager"/>

 

TomcatManager顯示403 Access Denied

管理tomcat的時候遇到了如下問題:

1.剛開始須要用戶名密碼,不知道用戶名和密碼是什麼,可是輸入什麼都不正確。

解決辦法:

本身在tomcat-users.xml中按格式添加用戶 conf文件夾裏面

默認是註釋掉了的,這主要是考慮到服務器的安全,若是是本地測試,去掉如下這段註釋,而後重啓動服務器,再輸入

 <role< span=""> rolename="tomcat"/>

  <role< span=""> rolename="role1"/>

  <user< span=""> username="tomcat" password="tomcat" roles="tomcat"/>

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

  <user< span=""> username="role1" password="tomcat" roles="role1"/>

用戶和密碼都一目瞭然了。

 

 

2.進入manager界面以後,顯示的是403 Access Denied。

解決辦法:

conf/tomcat-users.xml文件中看到這麼一段話:

NOTE:  By default, no user is included in the "manager-gui" role required

  to operate the "/manager/html" web application.  If you wish to use this app,

  you must define such a user - the username and password are arbitrary.

也就是說,爲了考慮安全,tomcat默認仍是沒有manager-gui的管理權限的,若是想要使用manager

的話,須要自行加入管理權限(角色)。

須要加一個這樣的權限(角色)

<role< span=""> rolename="manager-gui"/>

而後再加到須要的用戶名中去

<user< span=""> username="tomcat" password="tomcat" roles="tomcat,manager-gui"/>

這樣OK了。

wpsFDF7.tmp 

xml version='1.0' encoding='utf-8'?> <tomcat-users>        <role rolename="manager-gui"/>    <role rolename="admin-gui"/>    <user username="ming" password="064417" roles="manager-gui,admin-gui"/> tomcat-users>

 

 

2.7.4  設置SSL

 

 

 

 

首先,咱們要建立密鑰:

Shell代碼  wpsFDF8.tmp

10 keytool -genkey -alias tomcat -keyalg RSA 


此時,用戶主目錄下會生成一個.keystore文件。
而後,咱們配置server.xml文件,找到SSLEnabled="true"所在的標籤,將其解除註釋,同時填補兩個屬性:
    1.keystoreFile="C:/Users/Zlex/.keystore"
    2.keystorePass="123456"
keystoreFile 指的是你的密鑰文件存儲的路徑,keystorePass指的是你的密碼。
舉例以下:

Xml代碼  wpsFDF9.tmp

11   

17 <connector< span=""> 

18     SSLEnabled="true" 

19     clientAuth="false" 

20     keystoreFile="C:/Users/Zlex/.keystore" 

21     keystorePass="123456" 

22     maxThreads="150" 

23     port="8443" 

24     protocol="HTTP/1.1" 

25     scheme="https" 

26     secure="true" 

27     sslProtocol="TLS" /> 


最後,重啓tomcat,在地址欄中訪問 https://localhost:8443/
將上述port="8443"配置改成port="443",能夠經過https://localhost/直接訪問。
須要雙向認證?參考以下內容:

Xml代碼  wpsFE0A.tmp

28 <connector< span=""> port="443"  

29     URIEncoding="UTF-8"  

30     useBodyEncodingForURI="true"  

31     maxHttpHeaderSize="33192" 

32     maxThreads="150"  

33     minSpareThreads="25"  

34     maxSpareThreads="75" 

35     enableLookups="false" 

36     disableUploadTimeout="true"  

37     acceptCount="100" 

38     scheme="https"  

39     secure="true"  

40     SSLEnabled="true"  

41     clientAuth="true" 

42     keystoreFile="conf/server.keystore"  

43     keystorePass="123456" 

44     truststoreFile="conf/ca.p12"  

45     truststorePass="123456" 

46     truststoreType="PKCS12" 

47     sslProtocol="TLS" />  


其中,

Xml代碼  wpsFE0B.tmp

48 clientAuth="true" 

49 keystoreFile="conf/server.keystore"  

50 keystorePass="123456" 

51 truststoreFile="conf/ca.p12"  

52 truststorePass="123456" 

53 truststoreType="PKCS12" 


clientAuth="true"開啓雙向認證
keystoreFile="conf/server.keystore" 指向服務器密鑰庫
keystorePass="123456" 服務器密鑰庫密碼
truststoreFile="conf/ca.p12"指向CA信任庫
truststorePass="123456"CA信任庫密碼
truststoreType="PKCS12"CA信任庫格式,除了PKCS#12還有JKSJKSjava原生默認支持的密鑰庫格式!
更多ssl配置訪問http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html


5.經過GZIP壓縮加速服務器響應速度 

只須要配置:

Xml代碼  wpsFE0C.tmp

54 <connector< span="">  

55               port="8080"  

56               protocol="HTTP/1.1" 

57               connectionTimeout="20000" 

58               redirectPort="443"  

59               URIEncoding="UTF-8" 

60               compression="on"    

61               noCompressionUserAgents="gozilla, traviata"    

62               compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,application/json"  

63 />   


說說配置細節:
compression="on"   開啓壓縮支持 
noCompressionUserAgents="gozilla, traviata"   不壓縮的內容 
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,application/json" 壓縮的類型 

以後進行的訪問都可得到GZIP壓縮支持wpsFE1C.tmp
 


6.設置靜態頁面編碼 
修改web.xml
加入以下內容,是*.hml*.html靜態頁面默認字符集編碼爲UTF-8

Xml代碼  wpsFE1D.tmp

64  

65     htm 

66     text/html;charset=utf-8 

67  

68  

69     html 

70     text/html;charset=utf-8 

71  




7.配置JVM 
找到JAVA_OPTS
進行配置:

Java代碼  wpsFE1E.tmp

72 JAVA_OPTS="-Xms512m -Xmx512m -XX:MaxPermSize=256m -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8" 

 

 

 

 

啓動tomcat時  出現以下錯誤。

2012-5-14 9:50:53 org.apache.catalina.core.AprLifecycleListener init
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\ProgramWork\Java\jdk1.6.0_31\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;.;C:\ProgramWork\Java\jdk1.6.0_31\bin:C:\ProgramWork\Java\jdk1.6.0_31\jre\bin;C:\Windows\system32;................ (x86)\IDM Computer Solutions\UltraCompare\;C:\ProgramWork\GWT_library\App Engine_Home\google_appengine\;.
2012-5-14 9:50:53 org.apache.coyote.http11.Http11Protocol init
信息: Initializing Coyote HTTP/1.1 on http-8083
2012-5-14 9:50:53 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 427 ms
2012-5-14 9:50:54 org.apache.catalina.core.StandardService start
信息: Starting service Catalina
2012-5-14 9:50:54 org.apache.catalina.core.StandardEngine start
信息: Starting Servlet Engine: Apache Tomcat/6.0.35
2012-5-14 9:50:54 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on http-8083
2012-5-14 9:50:54 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8029
2012-5-14 9:50:54 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/13  config=null
2012-5-14 9:50:54 org.apache.catalina.startup.Catalina start
信息: Server startup in 191 ms
網上找了一些:
出現這種狀況是這表示沒有找到APR
簡要解決辦法:去 http://tomcat.heanet.ie/native/ 下載編譯好的tcnative-1.dll文件,目前最新爲1.1.14,拷貝至jdk\bin下,再啓動就能夠成功加載APR了。

這不是我要說的重點。 我按這操做,可是仍是同樣的錯誤。
而後我找到 tomcat目錄 經過 bat 目錄啓動, 結果啓動正常,
  我覺得問題解決了,就又在Eclipse 啓動 tomcat ,仍是錯誤。。。
  稍微思考下,就想通了。只要將

tomcat/bin目錄 下的 tcnative-1.dll 複製到 jdk/bin 目錄下 

OK 解決了。固然 我這前提是tomcat 能經過starupt.bat運行。

 

 

2.8  修改tomcat的jdkjre目錄

 

能夠修改catalina.sh catalina.bat 在最前面加上JAVA_HOME=xxxx 指定要使用的jdk根目錄

 

2.9  Tomcat啓動不起來,多半是環境變量沒設置好

提示錯誤:

The catalina_home environment variable is not defined correctly This environment variable is needed to run this program

The java_home environment variable is not defined correctlyThis environment variable is needed to run this programNB: java_home should point to a jdk not a jre

======================================= 解決分割線 ==========================================

在系統變量中添加以下變量

JAVA_HOME

D:\Program Files\Java\jdk1.6.0_22    JDK路徑,不是JRE,只到文件夾,不要到bin

 

CATALINA_HOME

C:\tomcat   Tomcat路徑,只到文件夾,不要到bin

 

Path中添加以上兩個變量

%JAVA_HOME%\bin;%CATALINA_HOME%\bin;  (注意要與前面的用英文分號隔開,末尾加英文分號)

 

classpath中增長兩個變量  (若是沒有classpath,建立一個就行)

%JAVA_HOME%\lib;%CATALINA_HOME%\lib;  (注意要與前面的用英文分號隔開,末尾加英文分號)

 

 

 

2.10  linux 下安裝tomcat

  下載tomcat,地址以下:

http://tomcat.apache.org/download-70.cgi

wpsFE2F.tmp 

1)解壓並更新文件名

RHEL下進行解壓縮,執行tar -zxvf apache-tomcat-7.0.19.tar.gz,再執行mv -f apache-tomcat-7.0.19 tomcat,更改文件名。

2)啓動tomcat,進入./tomcat/bin目錄,執行./startup.sh

3)驗證,在瀏覽器中輸入http://127.0.0.1:8080/,看是否能看到tomcat的主頁,若是能看到說明安裝成功。

4)關閉tomcat,執行/usr/local/tomcat/bin/shutdown.sh

5)修改tomcat的端口號,vi /usr/local/tomcat/conf/server.xml,查找8080,將查詢到以下內容:

 

          connectionTimeout="20000"

              redirectPort="8443" />

將其中的8080改成80或其它端口便可。

 

 

若是rhel本機虛擬機上能夠登錄,可是windows 不能登錄的話查看是否存在防火牆呢?

1) 重啓後永久性生效:

開啓:chkconfig iptables on

關閉:chkconfig iptables off

2) 即時生效,重啓後失效:

開啓:service iptables start

關閉:service iptables stop

 

2.10.1  用戶配置

     在進行具體Tomcat管理以前,先給tomcat添加一個用戶,使這個用戶有權限來進行管理。

     打開conf目錄下的tomcat-users.xml文 件,在相應的位置添加下面一行:

 lhr" password="lhr" roles="standard,manager"/>

   而後重起tomcat,在瀏覽器中輸入http://localhost:8080/manager/,會彈出對話框,輸入上面的用戶

名和密碼便可。

 

 

name="lhr" password="lhr" roles="admin-gui,manager-gui"/>

 

wpsFE30.tmp 

 

 





About Me

...............................................................................................................................

● 本文做者:小麥苗,只專一於數據庫的技術,更注重技術的運用

● 本文在itpub(http://blog.itpub.net/26736162)、博客園(http://www.cnblogs.com/lhrbest)和我的微信公衆號(xiaomaimiaolhr)上有同步更新

● 本文itpub地址:http://blog.itpub.net/26736162/abstract/1/

● 本文博客園地址:http://www.cnblogs.com/lhrbest

● 本文pdf版及小麥苗雲盤地址:http://blog.itpub.net/26736162/viewspace-1624453/

● 數據庫筆試面試題庫及解答:http://blog.itpub.net/26736162/viewspace-2134706/

● QQ羣:230161599     微信羣:私聊

● 聯繫我請加QQ好友(646634621),註明添加原因

● 於 2017-07-01 09:00 ~ 2017-07-31 22:00 在魔都完成

● 文章內容來源於小麥苗的學習筆記,部分整理自網絡,如有侵權或不當之處還請諒解

● 版權全部,歡迎分享本文,轉載請保留出處

...............................................................................................................................

拿起手機使用微信客戶端掃描下邊的左邊圖片來關注小麥苗的微信公衆號:xiaomaimiaolhr,掃描右邊的二維碼加入小麥苗的QQ羣,學習最實用的數據庫技術。


DBA筆試面試講解
歡迎與我聯繫