tomcat虚拟目录和虚拟主机等相关配置
一、 WEB 服務器
1. 什么是WEB 服務器?
?????? 就是一臺電腦,安裝了一個服務器軟件
2. 為什么需要安裝 WEB 服務器
??? 思考問題: 從一臺計算機的 IE 瀏覽器如何去訪問另一臺計算機中的文件
?2.1? 兩臺計算機是如何實現通訊的?
?????? IP地址(計算機的唯一標識)
IPV4 4個字節的整數,每個字節以 點號 隔開127.1.12.222? 每個字節的取值 0~255
IPV6 16字節
回路ip地址? 127.0.0.1?
在計算機中程序會綁定在某一個端口? 0~65535?盡量用 1024 以上的
連接一臺計算機就需要輸入 ip 地址和端口號
作為接收方, 應該綁定ip,監聽指定的端口
2.2??在本地寫程序添加一個服務,供別人來訪問, 假設監聽 8888 端口
2.3??編碼實現了一個本地服務器程序
?????? 作用: 管理本地的資源,只要將html頁面放到指定的目錄下,外界就可以訪問了
2.4??安裝服務器的目的: 開發好的web資源可以發布到服務器上,這樣外界就可以通過瀏覽器訪問了
?
源程序: MyServer.java
//ServerSocket 對象可以監聽端口
ServerSocketserversocket = new ServerSocket(6666);
while(true){
??? Socket socket = serversocket.accept(); // 等待客戶端的連接請求,一旦有請求過來,就結束阻塞,返回客戶端對象
???
??? // 一旦有客戶來訪問,就另開一個新線程去提供服務, main線程繼續等待下一個客戶的連接
??? new Thread(new MyService(socket)).start();
?
}
MyService.java
// 提供服務
InputStreamin = socket.getInputStream();
Thread.sleep(200);
int len =in.available(); // 估計此流不受阻塞能讀取的字節數
byte[]buffer = new byte[len];
in.read(buffer);
Stringrequest = new String(buffer);
// 截取第一行
StringfirstLine = request.substring(0, request.indexOf("\n"));
StringuriName = firstLine.split(" ")[1];
OutputStreamout = socket.getOutputStream();
// 根據需要訪問的資源創建 File 對象
File file= new File("src" + uriName);
if(!file.exists()){
??? out.write("對不起!您訪問的資源不存在!別瞎搞!!".getBytes());
??? out.close();
??? return ;
}
// 從文件讀, 往瀏覽器寫
FileInputStreamfis = new FileInputStream(file);
?
buffer =new byte[1024];
while((len = fis.read(buffer)) > 0) {
??? out.write(buffer, 0, len);
}
socket.close();
?
二、Tomcat 服務器的安裝和配置
1. 使用 tomcat6.0.20.rar 文件解壓即完成安裝
2. tomcat 就是一個java程序,一定會用到 jre
??? 所以需要配置環境變量 java_home 配置成jdk的安裝目錄 c:\jdk1.6
??? tomcat的啟動是通過 startup.bat 文件, 實際上startup.bat 中是去調用
??? catalina.bat文件, 而且是通過 %catalina_home%\bin\catalina.bat 去找
??? 所以為了保證服務器啟動正常, 需要配置catalina_home 環境變量為 tomcat的安裝目錄
3. tomcat 的目錄結構
?bin : 存放一些執行文件
?conf: 存放服務器的配置文件
?lib : 存放tomcat 所依賴的 jar 文件
?logs: 存放日志文件
?temp:? 存放臨時文件
?webapps: web applications 存放所有的web應用程序(web資源)
?work: tomcat 的工作目錄, jsp翻譯成的Servlet就在這個目錄下
4. web應用
??? 多個web資源存放在一個目錄下即為一個web應用(web應用程序、web工程)
? ? web 應用的目錄結構
??? 靜態web資源直接放在目錄下
??? java類放在classes目錄下
??? web.xml文件負責管理web應用下所有的web資源
??? 所有jar包放在lib目錄下
?
三、 WEB 應用的映射
1. 虛擬目錄
??? 一個web應用(服務器上一個目錄) 需要供外界訪問的路徑,需要映射虛擬目錄
??? 在 tomcat6 中,放在webapps下的web應用,服務器會自動做映射(將文件夾名稱作為虛擬路徑)
??? 對于 webapps 目錄外的web應用需要手動映射虛擬路徑
1.1. 在 server.xml 文件可以配置
??? <host>
?????? <Contextpath=”/itcast” docBase=”f:\itcast” />
??? </host>
?
1.2. 在 %tomcat目錄%\conf\catalina\localhost 下寫一個 xml文件
??? 文件名就是 虛擬目錄
???<Context docBase=”f:\itcast” />
??? 多級目錄配置?aaa#bbb.xml 對應/aaa/bbb
??? 如果文件名 是ROOT.xml 那就是配置了缺省的web應用, 訪問時不需要輸入 虛擬目錄
?
2. web.xml
管理 web 應用下所有的web資源
包括咱們后面學的Servlet jsp都需要在這個文件中做映射
實驗: 配置web應用的 首頁
在 web 應用下新建目錄 WEB-INF ,在此目錄下 新建web.xml 文件
<?xmlversion="1.0" encoding="ISO-8859-1"?>
?
<web-appxmlns="http://java.sun.com/xml/ns/javaee"
???xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
??? xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
??? version="2.5">
?
??? <welcome-file-list>
???????<welcome-file>itcast.html</welcome-file>
??? </welcome-file-list>
?
</web-app>
?
?
3. 域名解析
一個完整 url
http:\\www.sina.com:80\index.jsp
協議名?? 主機名???????? 端口號?資源名
IE 訪問服務器的原理,
?在IE中輸入的地址中包含域名,域名就需要被翻譯成服務器的IP,才能訪問到服務器
C:\WINDOWS\system32\drivers\etc\hosts
?
4. web應用映射的練習:
新建一個 web 應用
配置成缺省的web應用
配置首頁
配置tomcat監聽端口為80
在 windows 中注冊主機名
C:\WINDOWS\system32\drivers\etc\hosts
?
在c盤下建一個文件夾 baidu 寫一個頁面 index.html
在 ie 輸入?http://www.baidu.com? 可以訪問該頁面
?
5. 虛擬主機
服務器允許在一個IP上配置多個主機,即虛擬主機
http://www.sina.com:80/index.html
中的 www.sina.com 起了兩個作用:
找DNS服務器,作為域名被解析為IP
通過Host頭告訴服務器訪問的主機名
?
配置方式: 在 server.xml 文件中配置Host元素, 需要指定主機名、appBase(默認web應用存放目錄)
appBase目錄下所有的web應用,tomcat會自動映射虛擬路徑
<Host name="www.sohu.com"? appBase="F:\sohu\webapps" />
?
做實驗: 給新配置的虛擬主機配置缺省的web應用
<Host name="www.sohu.com"? appBase="F:\sohu\webapps" >
??? <Contextpath="" docBase="F:\sohu\webapps\abc" />
</Host>
http://www.sohu.com/abc/a.html
訪問一個 a.html 靜態web資源, IE 做了什么事
1) 將www.sohu.com 作為域名發送給DNS , 解析成 IP 地址, 訪問一臺服務器
2) 發送 Host 頭(www.sohu.com),告訴服務器我要訪問的虛擬主機 ,服務器拿著Host頭找匹配的Host元素
3) 將abc作為虛擬目錄,告訴服務器我要訪問的web應用 ,服務器拿著 abc 找匹配的web應用
4) 將 a.html 作為資源名, 告訴服務器我要訪問的 web 資源, 服務器拿著 a.html 去web.xml文件中找映射
虛擬目錄對應是一個web應用的目錄,所以虛擬目錄也被我們稱作web應用路徑(web應用的上下文contextpath)
?
?
總結
以上是生活随笔為你收集整理的tomcat虚拟目录和虚拟主机等相关配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 海尔集团股票代码
- 下一篇: 工行个人抵押贷款条件 抵押物可以是哪些