日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

tomcat学习笔记1

發布時間:2023/12/10 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tomcat学习笔记1 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

tomcat是一個開源軟件,是由java語言編寫的,它工作的話需要運行在jvm虛擬機中,說到jvm不得不說下java這個大名鼎鼎的編程

語言了

java這個編程語言最優秀的特點要數write once , run anywhere ?額!怎么聽起來有點流氓的感覺 ?沒錯,而這全是依賴于jvm這個

虛擬機,使得java可以在任何平臺運行,這恐怕也是java為什么這么流行的原因吧

簡單的說jvm虛擬機既是個編譯環境為程序員提供許多的庫,又是個運行環境java語言寫的程序都需要在jvm上運行,而jvm自己卻是

使用c語言開發的,使得性能沒的說 “好”

有一個非常重要的工具jdk(java development kit)是為java程序員寫程序用的,而jdk中就包含了jvm

1998年 sun公司把java技術分為三個方向

J2SE:Standard Edition

J2EE:Enterprise Edition(比J2SE 提供更多工具和庫)

J2ME:Mobile Edition 很遺憾這個版本到現在搞得不成功

后來sun把java技術賣給Oracle這個大公司,不過2006 sun公司開源了java技術并有一個叫openjdk的組織來維護,從此java 2 SE

?java 2 EE出現了

tomcat 就是使用了java 2 SE 和java 2 EE中的一些組件 ?更形象的說是一個web container,作用是使得java程序員寫的.jsp網頁能

都通過tomcat發給客戶端

tomcat的組件:
<Server>
  <Service>  
    <connector/>
    <connector/>
    <Engine>
      <Host />
      <Host>
        <Context/>
          ...
      </Host>
    </Engine>
  </Service>
</Server>

htpp的請求通過cgi或者java支持的其他協議被發送到server(一個server中可以有多個service)server通過connector(一個

service可以有多個connector)發送給Engine(一個service只能包含一個engine)

所有工作就在Engine中的Host和Context中完成一個(一個engine可以包含多個host,host下又可包含多個context)

既然tomcat依賴jvm那就先得在centos下安裝jdk?

現在主流版本是1.7 ? yum -y install java-1.7.0-openjdk-devel (openjdk這個包會被作為依賴關系也給裝上)

?

查看版本

?

可以看到這是個鏈接文件

?

這又是個鏈接,如果主機上有多個java版本可以使用alternatives命令來決定使用哪個版本

openjdk的許多命令的運行依賴$JAVA_HOME這個環境變量

?

vim /etc/profile.d/java.sh

exec bash 重啟bash進程

?

注意tomcat在epel源中,首先得安裝epel源,我這事先已經安裝了

yum -y install tomcat tomcat-admin-webapps tomcat-webapps安裝這幾個必要組件(后面兩個可以不用裝,它們是提供一個

web管理頁,和一個普通web頁面目的用于測試tomcat安裝是否成功)

這些組件具體什么作用使用yum -info 命令查看

rpm -ql tomcat?

/etc/tomcat/server.xml是tomcat的主配置文件 service tomcat start ?ss -tnl查看監聽的端口

8009和8080兩個端口都被監聽了 ?去查看配置文件vim /etc/tomcat/server.xml

?

原來是這兩個地方定義的 ? Connector是連接器

去訪問一下

?

ss -tnl

發現多了一個8005端口, vim /etc/tomcat/server.xml

?

可以通過telnet命令關掉此端口,yum -y install telnet

?

service tomcat start

8005端口沒有了,這樣看著就更簡潔了

webapp的文件根目錄默認放置在/usr/share/tomcat/webapps目錄下,現在去此目錄建個自己的webapp

Java Webapp?有特定的組織形式、層次型的目錄結構

/:webapps的根目錄

index.jsp:jsp的主頁面文件

WEB-INF/:當前webapp的私有資源目錄,通常存放當前webapp自用的web.xml

classes/: 當前webapp的私有類

lib/:當前webapp的私有類,被打包成jar格式

cd /usr/share/tomcat/webapps(這是個軟鏈接) ? mkdir myapp ? mkdir {classes, WEB-INF,lib}

?

?vim index.jsp

去瀏覽器中查看一下

?

回到默認虛擬主機

點擊Manager App

點擊取消

vim /usr/share/tomcat/conf/tomcat-user.xml 添加如下幾行

service tomcat restart ? Manager App和Host Manager都能訪問了

?

vim /etc/tomcat/server.xml ?

Engine:Server的一個實例,即引擎,其內部可以有一個或多個Host組件來定義站點;通常需要通過defaultHost的屬性定義默認虛

擬主機

?

Host組件:位于Engine容器中用于接收請求并進行相應處理的主機或虛擬主機

appBase:存放webapp頁面資源的目錄,可以使用絕對路徑也可使用相對路徑,此處使用的是相對路徑webapps--

>/usr/share/tomcat/webapps

unpackWars:在啟用此webapps時是否對WAR格式的歸檔文件先進行展開;默認為true

autoDeploy:在Tomcat處于運行狀態時放置于appBase目錄中的應用程序文件是否自動進行deploy;默認為true

?

自己手動創建一臺虛擬主機

mkdir -pv /data/myapps/ROOT ROOT(這個目錄是存放webapp網頁資源文件的默認目錄) cd /data/myapps/ROOT? mkdir

{classes,lib,WEB-INF}?  service tomcat restart

vim index.jsp ?將前面的 .jsp復制過來

?

繼續在該虛擬主機下定義一<Context/>

?

上面這圖有一點錯誤在此更正,fine的前面應該有根/,即path=“/fine”

path指的是hello.com/fine ? ? testapp相對于/data/myapps的路徑-->/data/myapps/testapp,也可以使用絕對路徑 ?

reloadable是否支持自動裝載文件每當文件改變時

cd /data/myapps ? ?mkdir -pv testapp/{lib,classes,WEB-INF} ? cd testapp ?

vim index.jsp ?

?

tomcat的Realm ?這個組件平時不用,不用管了

?

Valve 類似于過濾器 ?工作于Engine和Host/Context之間,Host和Context之間以及Context和Web應用程序的某資源之間,一個

server內可以建立多個Valve,而且Valve定義的次序也決定了它們生效的次序

vim /etc/tomcat/server.xml

className 定義這個Valve的名字 ? AccesslogValve訪問日志(Valve可以定義在Host,如果定義在Host中則對所有Context生效,

也可以單獨定義在Context中指對一個Context生效),前面的一大堆只是為了這個className的名字保持唯一(不用去管它) ?

directory="logs" ?相對于/usr/share/tomcat而言的-->/usr/share/tomcat/logs,也可使用絕對路徑

prefix指定日志文件前綴

suffix指定日志文件后綴

pattern指定日志的記錄格式

每個虛擬主機都可定義自己的AccessLogValve,格式就是上面圖的格式一樣,不過此日志格式跟apache的httpd日志記錄格式不一樣

?

很多時候為為了做日志分析需要將tomcat的日志格式更改為htppd的日志格式,很簡單把pattern更改為combined就行:

pattern="combined"

?

繼續使用Valve 基于ip地址做訪問控制,在新定義的虛擬主機中做測試

?

補充:建議使用普通用戶運行tomcat,在生產環境下webapp很少進行熱部署,一般使用冷部署

?

轉載于:https://www.cnblogs.com/linuxboke/p/5427792.html

總結

以上是生活随笔為你收集整理的tomcat学习笔记1的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。