標籤:style blog http io ar os 使用 sp java
內容概要:
1.繼續講解server.xml中的一些設定知識點
2設定外部WEBAPP及使用根目錄開發
3.重頭戲Servlet及相關知識
關鍵詞:
TomCat,web.xml,connectionTimeout="20000" ,appBase = "webapps",線程池配置,servlet版的HelloWorld
詳細內容:
一.繼續講解server.xml中的一些設定知識點
接下來,我們還是看我們的TomCat.
我們上節課呢,我們開發了myweb,我們是如何開發這個myweb的呢,我們一起來回憶一下
首先是myweb,myweb下呢是WEB-INF,那麼WEB-INF下呢便是web.xml
開啟web.xml,我們來看下上節課,沒有講到的一些東西.開啟tomcat\conf\server.xml
A:
這個shutdown連接埠就是關閉伺服器的一個連接埠,我們再關閉這個伺服器的時候呢,就是向這個連接埠呢發送了一個關閉伺服器的訊息將其關閉.
B:再往下走呢
其中這個Connector 中的port是串連連接埠,上節課凱哥講過,而且我們也做過筆記.
connectionTimeout="20000" //這句話是逾時時間20s,如果我們的網站對其有要求而且我們的伺服器響應比較快呢,可以減小.調節的目的呢,就是用戶端發送過來的時候回應時間應該是多少.
C:往下呢,還有一些配置要說一下
appBase = "webapps",appBase是個什麼東西呢,是你的應用程式地址.就是節課,我們都是把myweb放在webapps目錄中,其實webapps這個目錄是可以改的,在哪改呢?就是在這個appBase中去改.
那麼來改一下,我們在tomcat目錄中建立立一個檔案夾叫xiognda_webapps,我們把myweb給移動進去.同時將webapps改成xiognda_webapps,
重啟tomcat,我們輸入http://localhost:8080/myweb/a.jsp
我們發現我們現在的目錄是在xiongda_webapps下,也就是說我們的appBase自訂設定成功
D:還有兩個配置就是解包和自動部署
解包和自動部署呢,我們先瞭解一下是什麼意思就可以了,因為後面會學習到.
如果是壓縮包的,會問你要不要解包,如果你是新的呢,會問你要不部署,只要知道就ok了
E:接下來我們繼續講,
這塊呢有個線程池的設定,雖然是被注釋的,但實際上是可以也需要配置的.
什麼是線程池配置呢?我們來看一下.
瀏覽器呢,有很多種,有IE,有Google,TomCat是一個一對多的服務,當僅有一個IE對TomCat進行訪問的時候呢,是單線程.如果再有其他人來訪問的時候,tomcat就必須提供多線程的服務.
簡單來說就好比一個飯店,如果來一個人,那麼一個廚子是夠的,如果同一時間段來五個人呢,可能勉勉強強能夠忙的過來,但是同一時間段如果來十個人呢,我就必須再請一個廚子,才能夠忙的過來.如果同一時間段來二十個人呢,我就再請一個,也就是三個廚子才能忙的過來如果突然暴漲來一百個人怎麼辦呢,對不起我不能可能請一百個廚子,請在我三個廚子的極限二十個客戶以外的八十個人稍微等等.如果要問為什麼,.但是我不可能一直不停增加廚師數量,因為每一時間段的客戶量是不定量,肯能正好夠我請的廚子這些人的工作量,也有可能只來一個人,那麼我這些廚師的工資不是白給了.所以必須結合自己的客流量實際情況選擇請合適人數的廚師,也就是線程數.
來來,小朋友們,我們來把這個線程數放開並設定為150個.
其中minspareThreads就是最小啟動數,也就是咱們餐館正式工有4個,其餘的話146都是臨時工,忙的時候才來.
那麼我們這伺服器就同一時間就只開放150個座位也就是150個人來訪問.
二.設定外部WEBAPP及使用根目錄開發
好,接下來我們繼續,如果我們要配置一個外部WEBAPP,怎麼辦呢?
我們開啟conf下的server.xml 添加一個欄位
<Context path="/myweb" docBase="e:\Jsp_Code\JBlog" reloadable="true" debug = "0"/>
就這麼一段就可以了,那分別是什麼意思呢?
A:訪問路徑,主要是在URL上會有體現.
B:工程的實際路徑
C: 熱部署 就是當伺服器開著 如果你把工程內部修改,它也會更新,實
時載入,主要設定jsp
D:就是偵錯模式,例如你訪問伺服器上的不存在的頁面,就會返回404給你.
我們進server.xml設定一下
然後我們在開啟這個http://localhost:8080/myweb/a.jsp
我們發現我們可以訪問這個外部的web目錄了
還可以有兩種形式來配置外部web目錄
2.只有一個/
或者直接""
但是我們實際訪問,發現都是404為啥? 因為主目錄的root失去效果
很多人會問這個root是幹啥的呢.其實這個root還是很重要
ROOT一般是放歡迎介面的,如果我們有一個myweb,一般我們是放進ROOT裡面,但是我們
訪問是通過http://localhost/myweb訪問的,如果我們想使用http://localhost/來訪問myweb裡面
的內容怎麼辦呢?也就是我們想佔領這個http://localhost/這個路徑怎麼辦呢?
把myweb裡面的內容全部拿到ROOT下
同樣外部的WEBAPP也可以利用原理這個來替換
三.重頭戲Servlet
接下來呢,我們就拋離TomCat的知識點了,我們來講一講Servlet,Servlet作為以前sun的web最核心的技術之一.
好了,我們把目光轉向web這一部分,web不僅僅是jsp還有各種其他語言,他們的特點呢如.
在我們平常的web應用程式,既會有靜態頁面也會有動態網頁面,那麼什麼是靜態頁面,什麼又是動態網頁面呢?
商業的網站基本上都是動態+靜態,混合編程.
那麼既然我們要寫servlet 我們首先看看servlet與jsp的關係吧
說了這麼多,我們來實際開發一個servlet吧!
1.建立myeweb,
2.將ROOT下的WEB-INF拷貝過來
3.在myweb\WEB-INF建立立一個classes檔案夾,建立A.java
那麼在這個A.java中我們應該寫些啥呢,我們來寫個servlet版的HelloWorld吧!
4.將tomcat\lib\servlet-api.jar考入jre\lib\ext下,並將tomcat\lib\servlet-api.jar設定進classpath環境變數
5.在web.xml中添加你的servlet資訊
6.重啟
7.ok
那我們來把這個Servlet給分析一下,如
以上為凱歌學堂2014/11/8號之課程筆記[email protected] 熊大 2014.11.10.
J2EE學習筆記02 Server.xml知識點及Servlet初步