-
優化配置
緩存優化(nginx、gzip)
運動模式
BIO:效率低下,一個線程只能處理一個請求,請求過多的時候,線程會相應的增加,很浪費資源,tomcat7以下版本是BIO
NIO:基于緩存區、非阻塞的I/O。相對于BIO效率更高(利用java異步I/O,少量線程處理大量請求)
APR:tomcat7及以上默認模式。需要操作系統的支持(tomcat7以及以上版本在操作系統安裝了APR時候,tomcat默認是APR模式)
查看全部 -
配置大小查看全部
-
監聽8005發過來的關閉服務命令
查看全部 -
jdk1.8的垃圾回收機制比1.7強
查看全部 -
修改Cookies安全性
查看全部 -
server處理http請求
自上而下
責任鏈模式
查看全部 -
多域名配置
在server.xml中配置host節點
在host中配置 127.0.0.1 other
在瀏覽器中訪問other:8081?
多端口配置
查看全部 -
注意配置的端口號相同
查看全部 -
使用tomcat數據庫連接池
引入jar包
測試demo代碼:
DataSource讀取配置對象,獲取到數據庫連接
使用連接進行數據庫查詢
配置各個參數的含義
1.JmxEnabled:是否將連接注冊到JMX中
? JMX 就是一個框架,通過將監控和管理涉及到各個方面的問題和解決辦法放到一起統一的去設計,以便向外部提供服務,供使用者去調用。
? 監控系統的狀態,管理系統的緩存。
? 默認值是true。
2.setValidationQuery: sql查詢
? 用來驗證從連接池中取出的連接,在返回給調用者之前,指定的參數的查詢必須使用sql語句,select的語句至少返回一條記錄。
? 一般默認值是 SELECT 1 .
3.setTestOnReturn: 是否在歸還前進行檢查
? 在歸還到數據庫連接池之前,是否進行一個校驗。
? 一般設為false。
4.setValidationInterval: 設置驗證頻率
? 參數為上限。避免過度驗證。
? 參數的單位為毫秒。
5.setTimeBetweenEvivtionRunsMillis: 回收期休眠時間
? 空閑的連接回收期線程,在運行期間的休眠時間值,單位為毫秒。
? 如果設置為非整數,就不會運行。
? 不應該小于1秒。
6.setMaxActive:最大活動連接
? 在連接池中,同一時間能夠分配的最大的活動連接數量。
? 如果設置成非整數,就表示沒有限制。
在tomcat中配置
需要在context.xml中配置
? ?
并在web.xml中配置
注意:re-name與context.xml中的name屬性相同
將mysql連接jar包放入lib文件夾,啟動tomcat
查看全部 -
1.單點登錄的概念
??單點登錄(Single Sign On),簡稱為SSO,是目前比較流行的企業服務整合的解決方案之一
? SSO的定義是在多個應用系統中,用戶只需要登錄一次就可以訪問所有相互信任的應用系統
2.CAS
? 開源的企業級單點登錄解決方案
? 從結構上:CAS Server和CAS Client
? CAS Server:需要獨立部署,負責對用戶的認證工作。
??CAS Client:負責對客戶端的受保護的資源的訪問請求
查看全部 -
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?”
-Xms:java heap初始大小 ,默認為物理內存的1/64,最大不要超過物理內存的80%
-Xmx:java heap的最大值,建議設置為物理內存的一半,不要超過實際的物理內存
MetaspaceSize:初始源空間的值,默認21m,
MetaspaceSize:最大源空間的值,默認無上限
虛擬機的堆大小決定了虛擬機花費在數據垃圾上的時間和頻率,調整虛擬機的堆大小目的是最小化垃圾回收的時間,一般用物理內存的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可以達到清除緩存的作用。
查看全部 -
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就會構建兩個對象,一個是appservletrequest和reponse兩個對象,并且作為參數去調用jspservlet的doget或者dopost方法, 然后去執行業務邏輯,比如說數據存儲。
7.然后context就會把執行完的httpservletresponse對象返回給Host。
8.Host把response對象返回給Engine。
9.Engine再返回給Connector。
10.Connector再返回給客戶端。
查看全部
舉報