日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Tomcat方面的知识点

發(fā)布時(shí)間:2024/9/27 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Tomcat方面的知识点 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、 WEB 服務(wù)器

1. 什么是 WEB 服務(wù)器?

?????? 就是一臺(tái)電腦,安裝了一個(gè)服務(wù)器軟件

2. 為什么需要安裝 WEB 服務(wù)器

??? 思考問題: 從一臺(tái)計(jì)算機(jī)的 IE 瀏覽器如何去訪問另一臺(tái)計(jì)算機(jī)中的文件

?2.1? 兩臺(tái)計(jì)算機(jī)是如何實(shí)現(xiàn)通訊的?

?????? IP地址(計(jì)算機(jī)的唯一標(biāo)識)

IPV4 4個(gè)字節(jié)的整數(shù),每個(gè)字節(jié)以 點(diǎn)號 隔開 127.1.12.222? 每個(gè)字節(jié)的取值 0~255

IPV6 16字節(jié)

回路ip地址? 127.0.0.1?

在計(jì)算機(jī)中程序會(huì)綁定在某一個(gè)端口? 0~65535? 盡量用 1024 以上的

連接一臺(tái)計(jì)算機(jī)就需要輸入 ip 地址和端口號

作為接收方, 應(yīng)該綁定ip,監(jiān)聽指定的端口

2.2?? 在本地寫程序添加一個(gè)服務(wù),供別人來訪問, 假設(shè)監(jiān)聽 8888 端口

2.3?? 編碼實(shí)現(xiàn)了一個(gè)本地服務(wù)器程序

?????? 作用: 管理本地的資源,只要將html頁面放到指定的目錄下,外界就可以訪問了

2.4?? 安裝服務(wù)器的目的: 開發(fā)好的web資源可以發(fā)布到服務(wù)器上,這樣外界就可以通過瀏覽器訪問了

?

源程序: MyServer.java

// ServerSocket 對象可以監(jiān)聽端口

ServerSocket serversocket = new ServerSocket(6666);

while(true) {

??? Socket socket = serversocket.accept(); // 等待客戶端的連接請求,一旦有請求過來,就結(jié)束阻塞,返回客戶端對象

???

??? // 一旦有客戶來訪問, 就另開一個(gè)新線程去提供服務(wù), main線程繼續(xù)等待下一個(gè)客戶的連接

??? new Thread(new MyService(socket)).start();

?

}

MyService.java

// 提供服務(wù)

InputStream in = socket.getInputStream();

Thread.sleep(200);

int len = in.available(); // 估計(jì)此流不受阻塞能讀取的字節(jié)數(shù)

byte[] buffer = new byte[len];

in.read(buffer);

String request = new String(buffer);

// 截取第一行

String firstLine = request.substring(0, request.indexOf("\n"));

String uriName = firstLine.split(" ")[1];

OutputStream out = socket.getOutputStream();

// 根據(jù)需要訪問的資源創(chuàng)建 File 對象

File file = new File("src" + uriName);

if(!file.exists()) {

??? out.write("對不起!您訪問的資源不存在!別瞎搞!!".getBytes());

??? out.close();

??? return ;

}

// 從文件讀, 往瀏覽器寫

FileInputStream fis = new FileInputStream(file);

?

buffer = new byte[1024];

while ((len = fis.read(buffer)) > 0) {

??? out.write(buffer, 0, len);

}

socket.close();

?

二、Tomcat 服務(wù)器的安裝和配置

1. 使用 tomcat6.0.20.rar 文件解壓即完成安裝

2. tomcat 就是一個(gè)java程序,一定會(huì)用到 jre

??? 所以需要配置環(huán)境變量 java_home 配置成jdk的安裝目錄 c:\jdk1.6

??? tomcat的啟動(dòng)是通過 startup.bat 文件, 實(shí)際上 startup.bat 中是去調(diào)用

??? catalina.bat 文件, 而且是通過 %catalina_home%\bin\catalina.bat 去找

??? 所以為了保證服務(wù)器啟動(dòng)正常, 需要配置 catalina_home 環(huán)境變量為 tomcat的安裝目錄

3. tomcat 的目錄結(jié)構(gòu)

?bin : 存放一些執(zhí)行文件

?conf : 存放服務(wù)器的配置文件

?lib : 存放tomcat 所依賴的 jar 文件

?logs: 存放日志文件

?temp:? 存放臨時(shí)文件

?webapps: web applications 存放所有的web應(yīng)用程序(web資源)

?work: tomcat 的工作目錄, jsp翻譯成的Servlet就在這個(gè)目錄下

4. web應(yīng)用

??? 多個(gè)web資源存放在一個(gè)目錄下即為一個(gè)web應(yīng)用(web應(yīng)用程序、web工程)

? ? web 應(yīng)用的目錄結(jié)構(gòu)

??? 靜態(tài)web資源直接放在目錄下

??? java 類放在classes目錄下

??? web.xml 文件負(fù)責(zé)管理web應(yīng)用下所有的web資源

??? 所有jar包放在lib目錄下

?

三、 WEB 應(yīng)用的映射

1. 虛擬目錄

??? 一個(gè)web應(yīng)用(服務(wù)器上一個(gè)目錄) 需要供外界訪問的路徑,需要映射虛擬目錄

??? 在 tomcat6 中,放在webapps下的web應(yīng)用,服務(wù)器會(huì)自動(dòng)做映射(將文件夾名稱作為虛擬路徑)

??? 對于 webapps 目錄外的web應(yīng)用需要手動(dòng)映射虛擬路徑

1.1. 在 server.xml 文件可以配置

??? <host>

?????? <Context path=”/itcast” docBase=”f:\itcast” />

??? </host>

?

1.2. 在 %tomcat目錄%\conf\catalina\localhost 下寫一個(gè) xml文件

??? 文件名就是 虛擬目錄

??? <Context docBase=”f:\itcast” />

??? 多級目錄配置? aaa#bbb.xml 對應(yīng) /aaa/bbb

??? 如果文件名 是 ROOT.xml 那就是配置了缺省的web應(yīng)用, 訪問時(shí)不需要輸入 虛擬目錄

?

2. web.xml

管理 web 應(yīng)用下所有的web資源

包括咱們后面學(xué)的Servlet jsp 都需要在這個(gè)文件中做映射

實(shí)驗(yàn): 配置web應(yīng)用的 首頁

在 web 應(yīng)用下新建目錄 WEB-INF ,在此目錄下 新建 web.xml 文件

<?xml version="1.0" encoding="ISO-8859-1"?>

?

<web-app xmlns="http://java.sun.com/xml/ns/javaee"

??? xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

??? xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://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. 域名解析

一個(gè)完整 url

http:\\www.sina.com:80\index.jsp

協(xié)議名?? 主機(jī)名???????? 端口號? 資源名

IE 訪問服務(wù)器的原理,

?在IE中輸入的地址中包含域名,域名就需要被翻譯成服務(wù)器的IP,才能訪問到服務(wù)器

? IE 瀏覽器

www.sina.com

?sina 服務(wù)器

windows 是否注冊了該

主機(jī)名

DNS服務(wù)器 (網(wǎng)絡(luò)服務(wù)商)

解析域名,獲得一個(gè) IP

C:\WINDOWS\system32\drivers\etc\hosts

?

4. web應(yīng)用映射的練習(xí):

新建一個(gè) web 應(yīng)用

配置成缺省的web應(yīng)用

配置首頁

配置tomcat監(jiān)聽端口為80

在 windows 中注冊主機(jī)名

C:\WINDOWS\system32\drivers\etc\hosts

?

在c盤下建一個(gè)文件夾 baidu 寫一個(gè)頁面 index.html

在 ie 輸入? http://www.baidu.com? 可以訪問該頁面

?

5. 虛擬主機(jī)

服務(wù)器允許在一個(gè)IP上配置多個(gè)主機(jī),即虛擬主機(jī)

http://www.sina.com:80/index.html

中的 www.sina.com 起了兩個(gè)作用:

找DNS服務(wù)器,作為域名被解析為IP

通過Host頭告訴服務(wù)器訪問的主機(jī)名

?

配置方式: 在 server.xml 文件中配置Host元素, 需要指定主機(jī)名、appBase(默認(rèn)web應(yīng)用存放目錄)

appBase目錄下所有的web應(yīng)用,tomcat會(huì)自動(dòng)映射虛擬路徑

<Host name="www.sohu.com"? appBase="F:\sohu\webapps" />

?

做實(shí)驗(yàn): 給新配置的虛擬主機(jī)配置缺省的web應(yīng)用

<Host name="www.sohu.com"? appBase="F:\sohu\webapps" >

??? <Context path="" docBase="F:\sohu\webapps\abc" />

</Host>

http://www.sohu.com/abc/a.html

訪問一個(gè) a.html 靜態(tài)web資源, IE 做了什么事

1) 將 www.sohu.com 作為域名發(fā)送給DNS , 解析成 IP 地址, 訪問一臺(tái)服務(wù)器

2) 發(fā)送 Host 頭(www.sohu.com),告訴服務(wù)器我要訪問的虛擬主機(jī) ,服務(wù)器拿著Host頭找匹配的Host元素

3) 將abc作為虛擬目錄,告訴服務(wù)器我要訪問的web應(yīng)用 ,服務(wù)器拿著 abc 找匹配的web應(yīng)用

4) 將 a.html 作為資源名, 告訴服務(wù)器我要訪問的 web 資源, 服務(wù)器拿著 a.html 去web.xml文件中找映射

虛擬目錄對應(yīng)是一個(gè)web應(yīng)用的目錄,所以虛擬目錄也被我們稱作web應(yīng)用路徑(web應(yīng)用的上下文contextpath)

?

?

總結(jié)

以上是生活随笔為你收集整理的Tomcat方面的知识点的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。