-
web.xml配置數據庫
查看全部 -
測試參數的含義
1.JmxEnabled:是否將連接注冊到JMX中
? JMX 就是一個框架,通過將監控和管理涉及到各個方面的問題和解決辦法放到一起統一的去設計,以便向外部提供服務,供使用者去調用。
? 監控系統的狀態,管理系統的緩存。
? 默認值是true。
2. setTestWhileIdle(false): 是否被空閑連接回收期進行檢測
3. setTestOnBorrow(true): 是否在連接池取出連接前進行檢查
4. setValidationQuery("SELECT 1"): sql查詢
? 用來驗證從連接池中取出的連接,在返回給調用者之前,指定的參數的查詢必須使用sql語句,select的語句至少返回一條記錄。
? 一般默認值是 SELECT 1 .
5. setTestOnReturn(false): 是否在歸還前進行檢查
? 在歸還到數據庫連接池之前,是否進行一個校驗。
? 一般設為false。
6. setValidationInterval(30000): 設置驗證頻率
? 參數為上限。避免過度驗證。
? 參數的單位為毫秒。
5.setTimeBetweenEvivtionRunsMillis(30000): 回收期休眠時間
? 空閑的連接回收期線程,在運行期間的休眠時間值,單位為毫秒。
? 如果設置為非整數,就不會運行。
? 不應該小于1秒。
6.setMaxActive(100):最大活動連接
? 在連接池中,同一時間能夠分配的最大的活動連接數量。
? 如果設置成非整數,就表示沒有限制。
7. setInitialSize(10): 初始化連接
8. setMaxWait(10000): 最大等待時間
9. setMinIdle(10): 最小的空閑連接
10. setJDBCInterceptors(): JDBC攔截器
查看全部 -
1.什么是連接池?
準備一個空間,專門存放數據庫連接,用戶使用時直接從空間中取走連接,關閉時將連接放回空間中。這個空間就被稱為連接池。
數據庫連接池就是在程序初始化的時候,集中創建多個數據庫連接,并且集中管理,供程序去使用。它不僅可以保證數據庫的讀寫速度,而且更加安全可靠。
連接池提高了性能,也提高了安全性。
2.JDBC操作數據庫
加載驅動>創建鏈接>執行SQL>(關閉數據庫)釋放連接
3.JDBC庫的數據源有兩種配置方式
異步配置連接
獨立配置連接
4.DBCP
飽受詬病,單線程,性能低,比較復雜
查看全部 -
1.什么是熱部署?
就是在不重新啟動Tomcat服務器的條件下,將自己的項目部署到Tomcat服務器中。
2.如何配置熱部署?---------三種方式
直接將自己的web文件放入webapps文件夾中。
conf/server.xml <host>標簽中添加context標簽:
<Context debug="0" docBase="D:\demo1\web" path="/demo1" reloadable="true" />
-----debug越大,程序發生異常時,寫入日志文件的詳細程度越大,默認為0
------docBase 項目的絕對路徑或者相對路徑(相對webapps)
------path 項目的訪問方式
-------reloadable 如果為true 自動加載新增或者改變的class文件
在conf/catalina下面的localhost中添加一個xml文件
新建一個demo2.xml文件,粘貼配置信息:
<?xml version="1.0" encoding="UTF-8"?>
<Context debug="0" docBase="D:\demo1\web" path="/demo1" reloadable="true" />
這時候demo2作為訪問項目的名稱,path不起作用。
查看全部 -
1.修改內存的目的
日常開發中,開發項目比較大的時候依賴的jar包比較多,并且在應用服務器啟動的時候,會將項目引用的所有的類依次全部加載到內存當中,java的邏輯內存模式分為
堆內存(存儲類的實例,數組、引用數據類型也就是用new生成的對象)、
棧內存(存儲局部變量比如方法參數)、
靜態內存區(持久區,該區內存不會被gc回收,存常量、靜態變量、類的源數據:方法、屬性什么的)
2.在開發當中經常遇到的內存溢出的異常
OutOfMemoryErroe:Java heap space異常------>堆內存滿了
JVM中堆內存的大小默認使用的最小內存是我們物理內存的1/64,最大的使用我們物理內存的1/4,我們通過調整JVM中的初始內存和最大內存來改變我們使用內存的限制
OutOfMemoryError:PermGen space異常-------->靜態內存區滿了
通常是因為加載的類太多導致的,jdk8以下的需要修改兩個參數限制靜態區最小和最大內存范圍,,jdk8改變了內存模型,將類定義存放到了源數據空間,而源數據空間與堆內存共享的是同一塊內存區域,所以在jdk8版本以后就不會再出現PermGen space異常了。
StackOverflowError異常---------->棧內存溢出
通常是由于死循環或無線遞歸導致的
3.配置內存參數
網上有兩種方式,一種是在start.bat,一種是在catalina.bat中
bin/catalina編輯:配到第2行/192行都行
?JAVA_OPTS=“-server -Xms512m -Xmx1024m
?-XX:MetaspaceSize=128m? -XX:MaxMetaspaceSize=256m?”
說明:server:是指虛擬機的運行模式,配置為server時,在使用多個CPU時,性能可以得到更好的發揮
-Xms:java heap初始大小 ,默認為物理內存的1/64,最大不要超過物理內存的80%,也叫堆內存
-Xmx:java heap的最大值,建議設置為物理內存的一半,不要超過實際的物理內存
MetaspaceSize:初始源空間的值,默認21m,
MaxMetaspaceSize:最大源空間的值,默認無上限
虛擬機的堆大小決定了虛擬機花費在數據垃圾上的時間和頻率,調整虛擬機的堆大小目的是最小化垃圾回收的時間,一般用物理內存的80%作為堆內存的大小
查看全部 -
1.修改Tomcat端口號
在server.xml文件里面修改
2.配置端口號:
? ? ? ? 端口范圍:1~65535,一般在1024~65535之間取值。因為前1~1024大部分都被固定分配了。
3.server.xml中的三個端口:
??????(1)shutdown端口:端口為8005,負責監聽關閉tomcat的請求;
??????(2)http端口:負責建立http請求;默認端口為8080
? ? ? (3)AJP協議端口:端口為8009,負責與其他的http服務器建立連接,把tomcat與其他的http服務器集成。
查看全部 -
Tomcat目錄結構:
(1)bin目錄:存放tomcat運行命令;主要有.sh和.bat兩類,.sh是linux命令,.bat是windows命令。
(2)conf目錄:主要存放一些配置文件。
(3)lib目錄:包含了所有tomcat啟動jar包,也包含了用戶存放的web程序共享的jar包。
(4)logs目錄:用來存放tomcat在運行時產生的日志信息。
(5)temp目錄:主要存放tomcat在運行過程中產生的一些臨時文件,即使清空,對tomcat也沒什么影響。
(6)webapps目錄:主要存放應用程序。
webapps目錄中的Root目錄是Tomcat的根目錄,可以直接訪問。
(7)work目錄:存放tomcat運行時編譯后的文件,清除work目錄并重啟tomcat可以達到清除緩存的作用。
conf文件夾配置文件
catalina.policy防止jsp代碼破壞tomcat容器
catalina.properties包含的是不能被jsp文件修改的文件列表
context.xml context的配置文件,因為它位于頂層,所以它是被所有web應用程序所使用的配置文件,默認的內容就是web.xml所在的文件位置
logging.properties Tomcat日志使用的配置文件,配置了文件的輸出格式等等一系列信息
server.xml tomcat最主要的配置文件,定義了tomcat的體系結構,這個文件是tomcat啟動的時候構建Tomcat容器,修改Tomcat的端口號
tomcat-users.xml tomcat人員頁面,一些tomcat管理員的人員信息
web.xml配置tomcat啟動信息,比如啟動頁之類的
查看全部 -
1.用戶點擊網頁的內容,請求被發送到主機的8080端口,會在那里監聽8080端口的connector獲得。
2.接下來connector會請求它所在的server的Engine來處理,并且等待Engine的回應。
3.Engine獲得的請求是localhost-teckst-index.jsp,它就去匹配所有的虛擬主機,也就是Host。Engine去匹配名稱為localhost的host,也就是站點,名稱為localhost的站點獲得請求teckst-index.jsp。
4.然后再去匹配所有的context,而host匹配的路徑為teckst-Context,也就是項目。
5.然后第五步,匹配到-Context的context,它去獲得的請求是Index.jsp,它就會在它的Mackie table里面去尋找對應的servlet。
6.對應的servlet就會構建兩個對象,一個是httpservletrequest和reponse兩個對象,并且作為參數去調用jspservlet的doget或者dopost方法, 然后去執行業務邏輯,比如說數據存儲。
7.然后context就會把執行完的httpservletresponse對象返回給Host。
8.Host把response對象返回給Engine。
9.Engine再返回給Connector。
10.Connector把response對象再返回給客戶端。
查看全部 -
connector
1.接收客戶端連接? ?
2.加工處理客戶端請求
每個Connector都將指定一個端口進行監聽,分別負責對請求報文的解析和響應報文組裝,解析過程生成Request對象,而組裝過程涉及Response對象。
如果將Tomcat整體比作一個巨大的城堡,那么Connector組件就是城堡的城門,每個人要進入城堡就必須通過城門,它為人們進出城堡提供了通道。同時,一個城堡還可能有兩個或者多個城門,每個城門代表了不同的通道。
container
1.所有的子容器的父接口 ??
2.使用責任鏈設計模式?
3.包含四個子容器:Engine、Host、Context、Wrapper
責任鏈模式:使多個對象都有機會去處理同一個請求,從而避免請求的發送者和接收者之間的耦合關系,將這些對象連成一條鏈,并沿著這條鏈傳遞請求,直到有一個對象處理它為止。
Engine:用來管理多個站點,一個service最多只能有一個engine;
Host:代表一個站點,也可以叫虛擬主機,通過配置Host就可以添加站點。
Context:代表一個應用程序,相當于一個war包。
Wrapper:一個封裝了的servlet.
查看全部 -
1.Server 指整個Tomcat服務器,其中包含多個組件,主要負責管理和啟動各個service,同時監聽8005端口發過來的shut down命令,用于關閉整個服務器。
?2.Service 是Tomcat封裝的用于對外提供完整的基于組件的web服務,主要包括connector和container兩個核心組件和多個功能組件。各個service之間的獨立的,但是他們會共享同一個虛擬機資源。
?3.Connector 是Tomcat與外部世界的一個連接器,監聽固定的端口,接收外部請求,然后將請求傳遞給container,并且將container的處理結果再返回給外部。?
4.Container 是一個servlet容器,內部由多層容器組成,主要用于管理servlet 的生命周期,然后調用servlet 的相關方法去處理業務邏輯。
5.Jasper 是Tomcat的JSP的解析引擎,用于將JSP文件轉化成Java文件,并且編譯成.class文件。
6.Naming 其實是一個命名服務,將名稱和對象聯系起來,使得可以用名稱去訪問對象。
7.Session 負責管理和創建session,session的持久化??梢宰远x,并且支持session的集群。對于Tomcat而言,session是在服務器開辟的內存空間。在開發中,經常用session來存儲一些臨時的信息。
8.Loging 負責記錄相關的日志,包含訪問錯誤信息和一些運行信息。
9.JMX ?javase中的定義的一個技術規范,主要是為應用程序,設備,系統等植入管理功能的框架。通過jmx可以遠程監控Tomcat的運行狀況。
查看全部 -
Tomcat 是Apache基金會提供的一個開源的,適合于中小型應用的,輕量級的 WEB 應用服務器 ?1. 非多用戶訪問量少; ?2. 同時也是開發和測試 JSP 項目的首選。
查看全部 -
虛擬機配置
catalina中設置(E:\tomcats\tomcat-8\bin\catalina.bat第二行加入以下代碼)
JAVA_OPTS="-server -Xms=256m -Xmx512m -XX:metaspace=128m -XX:MaxMetaspaceSize=256m"
參數說明
server ?-- 虛擬機運行模式,多個cpu可以更好發揮
Xms256m -- java heap初始大小,默認物理內存1/64,最大不超過80%,堆內存
Xmx512m -- java heap最大值,默認物理內存1/64,建議為一半,堆內存
metaspace -- 初始源空間大小
MaxMetaspaceSize -- 最大源空間大小
查看全部 -
https配置查看全部
-
直接將項目部署到webapps文件夾中。
在conf文件夾的server.xml配置文件中,網host標簽中添加<Context>標簽,指定項目路徑磁盤和訪問路徑path。
在conf的Catalina文件夾的localhost中新建一個XML文件,添加項目對應的<Context>標簽,訪問路徑為XML文件名。
查看全部 -
一個host是一個站點,如webapps就是一個站點,webapps中的就是Context,ROOT是主應用,其他的是子應用。
查看全部
舉報