編輯:關於Android編程
靜態web資源:內容是靜態的,不同的人在不同的時間來訪問時都是相同的內容。HTML、CSS、JS
動態web資源:內容是由程序生成的,不同的人在不同的時間訪問的內容很可能是不同的。
常見的動態web資源開發技術:
ASP、PHP、JSP/Servlet
C/S B/S之爭
雲、移動互聯網、html5、物聯網
下載地址:http://tomcat.apache.org/
安裝目錄不能包含中文和空格
JAVA_HOME環境變量指定Tomcat運行時所要用的jdk所在的位置,注意,配到目錄就行了,不用指定到bin
端口占用問題:netstat -ano命令查看端口占用信息
Catalina_Home環境變量:startup.bat啟動哪個tomcat由此環境變量指定,如果不配置則啟動當前tomcat,推薦不要配置此環境變量
tomcat5要求jdk1.4以上
tomcat6要求jdk1.5以上
tomcat7要求jdk1.6以上
JAVA_HOME環境變量:指定tomcat啟動時使用的jdk所在的位置
Catalina_Home環境變量:指定tomcat在啟動時啟動哪個tomcat,一般不推薦配置
bin ---- 啟動和關閉需要的bat文件所在的目錄
conf --- 配置目錄
lib --- tomcat運行時需要的jar包所在的目錄
logs --- 日志文件所在的目錄
temp --- tomcat運行時產生的臨時文件存放的目錄,不需要我們管理
webapps --- 開發中最常用的目錄,web應用放置到此目錄下浏覽器可以直接訪問
work --- 工作目錄,tomcat運行時產生的工作文件存放在這個目錄中
虛擬主機:
一個tomcat可以認為是一台真實主機.在一台真實主機中可以配置多個站點,這些站點在訪問者看來訪問他們就像在訪問各自獨立的主機一樣,所以我們可以認為這些站點都運行在tomcat這台真實主機當中的各自的虛擬主機當中.一個網站就可以認為是一個虛擬主機.
web應用:
一個虛擬主機中會有很多的web資源,但是web資源不能直接交給虛擬主機管理,需要按照一定方式組織成web應用虛擬主機才能使用.一般來說我們會按照功能將某一功能相關的所有的web資源組織成一個web應用後再交給虛擬主機.
為虛擬主機配置web應用:
(1)在Server.xml的
(2)在tomcat/conf/[Engin]/[Host]/在這個目錄下寫一個xml文件,其中xml文件的名字就是虛擬路徑,在這個xml中可以配置
(3)直接將web應用放置到虛擬主機管理的目錄下,虛擬主機就可以找到這個web應用,從而管理這個web應用,只要將web應用文件夾的名稱改為ROOT,這個web應用就是缺省web應用
*web應用的虛擬路徑映射 --就是為web應用的真實存在的路徑配置一個浏覽器訪問的虛擬路徑
*配置缺省web應用-- 默認的web應用,當不寫web應用名時就訪問這個web應用
web應用目錄結構:如果目錄結構不合法可能會出現各種奇葩的問題.
news
|
|--靜態資源和JSP文件都可以直接放置在web應用的目錄下,直接放在web應用下的內容,浏覽器可以直接訪問到
|
|--WEB-INF -- 可以沒有,但是最好有,如果有則一定要保證他的目錄結構是完整的.放置在WEB-INF目錄下的所有資源浏覽器沒有辦法直接進行訪問
|--classes -- 動態web資源運行時的class文件要放在這個目錄下
|--lib -- 動態web資源運行時所依賴的jar包要放在這個目錄下
|--web.xml -- 整個web應用的配置文件,配置主頁/Servlet的映射/過濾器監聽器的配置都需要依賴這個文件進行
在conf/server.xml中
name -- 指定虛擬主機的名稱,浏覽器通過這個名稱訪問虛擬主機
appBase -- 虛擬主機管理的目錄,放置在這個目錄下的web應用當前虛擬主機可以自動加載
*由於浏覽器訪問地址時,需要將地址翻譯成對應的ip才能找到服務器,這其中翻譯的過程是由dns服務器來實現的.我們在做實驗的時候沒有辦法去修改dns服務器,此時可以使用hosts文件模擬dns的功能,從而完成實驗.
*缺省虛擬主機:如果來訪者是通過ip來訪問,這個時候服務器無法辨別當前要訪問的是哪台虛擬主機中的資源,此時訪問缺省虛擬主機.缺省虛擬主機可以在server.xml中engin標簽上通過defaultHost屬性進行配置.
打war包,減少web應用的體積方便傳輸,並且在虛擬主機管理的目錄下,war默認可以自動解壓
Jar -xvf test.war *
或者壓縮為zip文件後,改名為war.
通用Context配置、通用web.xml配置
Tomcat服務器的管理平台
(1)打war包:方式一:jar -cvf news.war *方式二:直接用壓縮工具壓縮為zip包,該後綴為.war
(2)通用context和通用web.xml,所有的
(3)reloadable讓tomcat自動加載更新後的web應用,當java程序修改後不用重啟,服務器自動從新加載,開發時設為true方便開發,發布時設為false,提高性能
(4)Tomcat管理平台,可以在conf/tomcat-users.xml下配置用戶名密碼及權限
規定客戶端和服務器如何進行交互
基於TCP/IP協議的應用層協議
HTTP協議基於請求響應模型
一次請求對應一次響應
請求只能由客戶端發出,服務器只能被動的等待請求做出響應
1.0和1.1的區別
telnet/httpwatche
HTTP請求
請求行
GET /books/java.html HTTP/1.1
請求方式
七種請求方式: POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT
真正使用的時候:POST/GET
GET請求方式和POST請求區別在於請求參數在傳遞的過程中方式不同
如果是GET提交,請求參數將會附加在請求的URL後面作為請求地址的一部分帶到服務器端,可以傳輸的數據大小有限制一般不允許超過1K.
如果是POST提交,請求參數將會在http請求的實體內容中進行傳輸,這種方式傳輸的數據沒有大小限制.
利用form表單提交數據時,form表明明確的聲明要用POST提交,這是請求參數就是POST提交
除此以外所有方式的請求參數都是GET提交
請求的資源部分的名稱
所遵循的協議版本
若干請求頭
Accept: text/html,image/* 客戶端可以接受的數據類型
Accept-Charset: ISO-8859-1 客戶端接受數據需要使用的字符集編碼
Accept-Encoding: gzip,compress 客戶端可以接受的數據壓縮格式
Accept-Language: en-us,zh-cn 可接受的語言環境
Host: www.it315.org:80 想要訪問的虛擬主機名
If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT 這是和緩存相關的一個頭,帶著緩存資源的最後獲取時間
Referer: http://www.it315.org/index.jsp 這個頭表示當前的請求來自哪個鏈接,這個頭和防盜鏈的功能相關
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) 客戶端的一些基本信息
Cookie 會在後面講會話技術的時候單講
Connection: close/Keep-Alive 指定是否繼續保持連接
Date: Tue, 11 Jul 2000 18:23:51 GMT 當前時間
實體內容
HTTP響應
狀態行
HTTP/1.1 200 OK
格式: HTTP版本號 狀態碼 原因敘述
狀態碼:
200:請求處理成功
302:請求重定向
304、307:服務器通知浏覽器使用緩存
404:資源未找到
500:服務器端錯誤
若干響應頭
Location: http://www.it315.org/index.jsp 配合302實現請求重定向
Server:apache tomcat 服務器的基本信息
Content-Encoding: gzip 服務器發送數據時使用的壓縮格式
Content-Length: 80 發送數據的大小
Content-Language: zh-cn 發送的數據使用的語言環境
Content-Type: text/html; charset=GB2312 當前所發送的數據的基本信息,(數據的類型,所使用的編碼)
Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT 緩存相關的頭
Refresh: 1;url=http://www.it315.org 通知浏覽器進行定時刷新,此值可以是一個數字指定多長時間以後刷新當前頁面,這個數字之後也可以接一個分號後跟一個URL地址指定多長時間後刷新到哪個URL
Content-Disposition: attachment;filename=aaa.zip 與下載相關的頭
Transfer-Encoding: chunked 傳輸類型,如果是此值是一個chunked說明當前的數據是一塊一塊傳輸的
Set-Cookie:SS=Q0=5Lb_nQ; path=/search 和cookie相關的頭,後面課程單講
ETag: W/"83794-1208174400000" 和緩存機制相關的頭
Expires: -1 指定資源緩存的時間,如果取值為0或-1浏覽就不緩存資源
Cache-Control: no-cache 緩存相關的頭,如果為no-cache則通知浏覽器不緩存
Pragma: no-cache 緩存相關的頭,如果為no-cache則不緩存
以上三個頭都是用來控制緩存的,是因為歷史原因造成的,不同的浏覽器認識不同的頭,我們通常三個一起使用保證通用性。
Connection: close/Keep-Alive 是否保持連接
Date: Tue, 11 Jul 2000 18:23:51 GMT 當前時間
獲取網絡信息需要在AndroidManifest.xml文件中加入相應的權限。 1)判斷是否有網絡連接,沒有則進入網絡設置/***檢測網絡是否連接*@retur
博主這段時間工作實在是太忙了,全天無尿點……博客一直沒更新,實在對不住大家……這篇就給大家講setShader的另
Android為我們提供了兩種HTTP交互的方式:HttpURLConnection 和 Apache HTTP Client,雖然兩者都支持HTTPS,流的上傳和下載,
(一).前言:今天我們的項目繼續更新,今天我們主要講解MVP開發模式以及具體實例。 (二).簡介:MVP(Model ViewPrese