服務器
所謂服務器其實是電腦, 只不過服務器比我們?nèi)粘J褂玫膫€人計算機配置方面強悍很多。而裝在服務器上的軟件構(gòu)成了服務器能對外提供的功能。我們說Mysql服務器指的是這臺電腦主機上裝著MySQL數(shù)據(jù)庫軟件,能對外提供數(shù)據(jù)庫服務。如果以軟件和硬件來分類,可以分為軟件服務器和硬件服務器.
Java服務器分類
- http服務器。負責渲染
靜態(tài)網(wǎng)頁.如apache服務器 - web服務器。實現(xiàn)部分JavaEE規(guī)范,輕量級。如
Tomcat(解析JSP最快的服務器)、Jetty - 應用服務器。實現(xiàn)全部JavaEE規(guī)范,重量級。如
Weblogic、JBOSS
容器
什么叫容器?所謂的容器是為程序的運行提供環(huán)境所需要的環(huán)境
所以Servlet容器就是為Servlet程序提供可以運行的環(huán)境.
Tomcat容器
Tomcat的目錄結(jié)構(gòu)

Tomcat的目錄結(jié)構(gòu)
-
bin目錄: 存放Tomcat的工具、啟動和關閉腳本. -
conf目錄: 存放Tomcat的配置文件 -
lib目錄: Tomcat的核心jar包和依賴的jar包 -
work目錄: 裝JSP翻譯成Java文件的代碼 - logs目錄: 存儲日志的目錄,可以用來排查異常問題
- temp目錄: 臨時文件目錄
- webapps目錄: 部署目錄(只有手動啟動tomcat才是部署在這, eclipse默認不是部署在這)
Tomcat的安裝
-
安裝包的選擇
apache官網(wǎng)下載.以tomcat7為例.
下載
-
環(huán)境變量的配置
無論什么系統(tǒng),都需要配置JAVA_HOME環(huán)境變量.tomcat啟動的時候依賴于該變量取尋找JDK.以MAC系統(tǒng)為例配置環(huán)境變量.如果你用的是默認的終端,不是zsh之類的第三方,那么直接編輯.bash_profile這個文件加入如下幾行即可.
export JAVA_7_HOME="/usr/libexec/java_home -v 1.7"
export JAVA_8_HOME="/usr/libexec/java_home -v 1.8"
export JAVA_HOME=$JAVA_8_HOME
原理
其中/usr/libexec/java_home是`Mac OS X 10.5之后`引入.專門用來管理JAVA_HOME的程序.
我們指定版本號即可查詢到對應版本的JAVA_HOME
-
啟動tomcat,并用瀏覽器訪問驗證
使用startup.sh腳本啟動.如下命令.
啟動tomcat
瀏覽器進行驗證.點擊打開http://127.0.0.1:8080
Tomcat安裝常見錯誤
- 報錯
Parse Fatal Error at line 1 column7. 原因:xml文件前加空格報錯, 因為這導致不能正確解析xml.解決辦法刪除空格 - Tomcat啟動成功,訪問相關資源報
404 Not Found.原因:資源路徑有錯或者資源就不存在.解決方法寫對路徑. -
java.net.BindException: Address already in use: JVM Bind.原因:端口沖突被占用.解決辦法, 關閉占用端口的進程 - 在xml配置文件中使用中文,應該使用UTF-8編碼.
Tomcat的常用配置
Tomcat的配置文件都在conf目錄下, 主要包括server.xml配置服務器和tomcat-users.xml配置安全權(quán)限和虛擬主機服務
- 端口配置
開打server.xml, 搜索定位8080關鍵字.會定位到如下內(nèi)容。8080即tomcat容器的默認端口.我們可以更改成任意合法端口,只要該端口不在(0---1023)之間。
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
- 權(quán)限配置和服務配置
權(quán)限配置
- 如上圖,點擊左邊三列
Server Status,Manager App、Host Manager分別對應三項功能,依次是服務器狀態(tài)信息,WebApp管理、虛擬主機管理。這些在剛裝完tomcat是沒法正常訪問.因為沒有相應的權(quán)限.- tomcat配置權(quán)限,是以角色的概念存在, 角色擁有權(quán)限.我們需要先添加角色.在添加用戶,給用戶配置角色.
這些配置,tomcat都會在第一次還沒配置前, 給出提示如何配置.
為配置權(quán)限前, 嘗試登入給出的提示
如下配置.配置了訪問的用戶名,密碼.已經(jīng)擁有的權(quán)限(查看容器信息、管理容器中的app、管理虛擬主機權(quán)限)
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<user username="root" password="123456" roles="manager-gui,admin-gui,admin-script"/>



