一、Tomcat服務器(很熟悉)
1、Web開發概述
WEB,在英語中web即表示網頁的意思,它用於表示Internet主機上(服務器)供外界訪問的資源。
Internet上供外界訪問的Web資源分爲:
靜態web資源(如html、css、js頁面):指web頁面中供人們瀏覽的數據始終是不變。
動態web資源(如JSP、PHP、ASP):指web頁面中供人們瀏覽的數據是由程序產生的,不同時間點訪問web頁面看到的內容各不相同。
常用靜態web資源開發技術
html、css、js技術
常用動態web資源開發技術:
JSP/Servlet(JAVA)、ASP(微軟.net)、PHP等
在Java中,動態web資源開發技術統稱爲Javaweb,我們課程的重點也是教大家如何使用Java技術開發動態的web資源,即動態web頁面。
javaweb:使用java技術開發web頁面,供瀏覽器訪問的項目。 Web是一種分佈式應用架構,旨在共享分佈在網絡上的各個Web服務器中的所有相互鏈接信息。 Web採用客戶/服務器通信模式,客戶與服務器之間用HTTP協議通信。 Web使用超級文本技術(HTML)來鏈接網絡上的信息。信息存放在服務器端,客戶機通過瀏覽器(如IE、Chrome)就可以查找網絡中的各個Web服務器上的信息。 與Web相關的一個概念是WWW(World Wide Web)。WWW是指全球範圍內的Web,它以Internet爲網絡平臺,Internet是來自世界各地的衆多相互連接的計算機和其他設備的集合,而WWW則是Internet上的一種分佈式應用結構。 歸納起來,Web具有以下3個特徵: 1.用超級文本技術HTML來表達信息,以及建立信息與信息的鏈接。 2.用統一資源定位技術URL來實現網絡上信息的精確定位。 3.用網絡應用層協議HTTP來規範瀏覽器與Web服務器之間的通信過程。
javaSE:
javaEE:13種
javaME:
JavaEE規範: 指的是javaEE13種技術的總稱。如:Servlet/Jsp JDBC JNDI JTA ......
Tomcat:Servlet/Jsp容器,輕量級服務器。
常見的服務器:
1.WebLogic是BEA公司的產品,是目前應用最廣泛的Web服務器,支持JavaEE規範(接口),而且不斷的完善以適應新的開發要求。(重量級)
2.WebSphereAS是IBM公司的產品,支持JavaEE規範。(重量級)
3.大名鼎鼎的紅帽的產品,原來屬於開源組織JBossAS,後被紅帽收購。支持JavaEE規範,免費。(重量級)
4.在小型的應用系統或者有特殊需要的系統中,可以使用一個免費的Web服務器:Tomcat(短小精悍)該服務器支持JSP以及Servlet規範。(輕量級)
2、Tomcat下載
Tomcat是在SUN公司推出的小型Servlet/JSP調試工具的基礎上發展起來的一個優秀的Servlet容器(優秀的Java類的容器),Tomcat本身完全用Java語言編寫。
目前是Apache開源軟件組織的一個軟件項目,得到了廣大開源代碼志願者的大力支持,且可以和目前大部分的主流Web服務器(IIS()、Apache服務器)一起工作,它運行穩定、可靠且高效。
已成爲目前開發企業JavaWeb應用的最佳Servlet容器選擇之一。
我們後面的JavaWeb學習都是基於Tomcat服務器的。
Tomcat官方站點http://tomcat.apache.org
tar.gz文件是Linux操作系統下的安裝版本。
exe文件是Windows系統下的安裝版本x86/x64。
zip文件是Windows系統下的壓縮版本(綠色版)(推薦)。
3、Tomcat的安裝與配置
3.1、安裝
直接解壓到指定目錄即可。(注:目錄不要太深,目錄不要有中文或空格)
3.2、啓動服務器
啓動服務器的前提:
配置JAVA_HOME
配置CATALINA_HOME
startup.bat 啓動命令
shutdown.bat 停止命令
我的操作如下:
如果tomcat端口被佔用,解決辦法:
> 法一:修改F:\apache-tomcat-7.0.52\conf\server.xml
第70行: <Connector port="8081"/>
> 法二:關閉端口號對應的進程
cmd --> netstat -ano --> 找到PID --> 任務管理器 --> 顯示PID --> 關閉進程
3.3、測試服務器是否啓動成功
http://localhost:8080
如果出現如下界面,表示Tomcat啓動成功。
3.4、Tomcat的主要目錄結構(重要)
4、標準的JavaWeb應用的目錄結構(很重要,要記住)
應用:
MyApp
1.html
Css
myStyle.css
Js
My.js
WEB-INF 注意:固定寫法。此目錄下的文件不能被外部直接訪問,是由服務器負責調用。
|classes:我們編寫的程序代碼.class文件(換成Navigator視窗(導航視圖)可以看見)
|lib:應用需要用的jar文件(java類運行所需要的jar包)
|web.xml:當前應用的配置信息
(如果沒有該文件,右鍵項目,點擊java EE Tools 點擊其中 Genertate Deployment Descriptor Stub,這樣WEB-INF就會添加上web.xml了)
5、集成和部署應用到Tomcat服務器
>0、在MyEclipse中集成Tomcat步驟:
在MyEclipse10中:Window --> Preferences --> MyEclipse --> Servers --> Runtime Environments --> Add選項
在MyEclipse2017中:Window --> Preferences --> Servers --> Runtime Environments --> Add選項
>1、開放目錄部署方式(方式1:手動方式)
把應用WebRoot目錄下的所有文件直接複製粘貼到 F:\apache-tomcat-7.0.52\webapps 下。(該文件夾下需要新建一個文件夾來裝複製粘貼過來的文件,文件夾名字一般與項目名稱相同)
>2、把應用打成war包方式(方式2)
cmd進入項目目錄 day07_03_myApp1\WebRoo 中
打war包命令:jar -cvf day07_03_myApp1.war.
把war包直接複製到F:\apache-tomcat-7.0.52\webapps下,應用會自動解壓;若刪除該war包,則解壓的文件會自動刪除。
注:webapps目錄下有幾個目錄就代表有幾個應用。
Tomcat服務器與MyEclipse集成(一定要掌握)
1、Tomcat集成
2、創建web應用
3、部署
URL: 統一資源定位符(俗稱:網址)
URI: 統一資源標識符
http://localhost:8080/day07_03_myApp1/1.html
URL=協議 主機IP(端口號) URI(當前應用的資源路徑)
6、深入熟悉Tomcat服務器(瞭解)
配置虛擬目錄:
作用:把應用放到其他目錄,Tomcat也能管理。
方式一:(不建議使用,因爲需要重啓服務器)
例如:
應用真實目錄:d:\day07_03_myApp1
應用虛擬目錄:http://localhost:8080/myApp
虛擬目錄映射:
進入F:\apache-tomcat-7.0.52\conf 中,打開server.xml
<Context path="/myApp" docBase="d:\day07_03_myApp1"/>
docBase:代表的是應用的真實路徑。
path:網絡訪問的虛擬目錄名。
注:需要重啓服務器。
方式二:
新建myApp.xml文件,文件名就代表應用的虛擬目錄名。
將文件放在F:\apache-tomcat-7.0.52\conf\Catalina\localhost目錄下,myApp.xml文件內容如下:
<?xml version="1.0" encoding="utf-8"?>
<Context docBase="d:\day07_03_myApp1"/>
訪問:http://localhost:8080/myApp
注:腳本catalina用於啓動和關閉tomcat服務器,是最關鍵的腳本。在tomcat裏有此文件,寫這個腳本的人爲什麼命名爲catalina?
一開始我還以爲是其初戀女友,後來才知道原來是一個小島的名字。catalina(卡塔利娜)
常見的404錯誤截圖:
7、配置默認端口、默認應用、默認主頁
A、 配置默認端口
把server.xml中
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
因爲瀏覽器http默認端口:80
這樣訪問的時候,就不用再寫端口號了。例如:http://localhost/myApp/1.html
B、配置默認應用
默認應用:把配置的虛擬目錄的配置文件名改爲ROOT.xml即可。例如 http://localhost/1.html
C、配置默認主頁
修改當前應用web.xml,添加以下內容:例如 http://localhost/ 不用寫1.html了。
============================================================
二、HTTP協議
1、HTTP協議概述
> HTTP是HyperText Transfer Protocol(超文本傳輸協議)的簡寫,傳輸HTML文件。
> 用於定義WEB瀏覽器與WEB服務器之間交換數據的過程及數據本身的格式。
2、請求部分
1、請求消息行
GET /day07_03_myApp1/2.html?username=tom&pwd=123 HTTP/1.1 第一行是消息行。
請求方式:Get(默認) POST DELETE HEAD等
GET:明文傳輸,不安全,數據量有限,不超過1kb。(數據量根據瀏覽器的不同而略有區別)
例如:GET /day07_03_myApp1/2.html?username=tom&pwd=123 HTTP/1.1
POST: 暗文傳輸,安全,數據量沒有限制。
例如:POST /day08_02/1.html HTTP/1.1
URI:統一資源標識符。去協議和IP地址。
HTTP/1.1:協議/版本。
2、請求消息頭
從第2行到空行處,都叫消息頭。
Accept:瀏覽器可接受的MIME類型,告訴服務器客戶端能接收什麼樣類型的文件。
Accept-Charset:瀏覽器通過這個頭告訴服務器,它支持哪種字符集。
Accept-Encoding:瀏覽器能夠進行解碼的數據編碼方式,比如gzip。
Accept-Language:瀏覽器所希望的語言種類,當服務器能夠提供一種以上的語言版本時要用到。可以在瀏覽器中進行設置。
Host:初始URL中的主機和端口。
Referer:包含一個URL,用戶從該URL代表的頁面出發訪問當前請求的頁面。
Content-Type:內容類型,告訴服務器瀏覽器傳輸數據的MIME類型,文件傳輸的類型。例如:application/x-www-form-urlencoded(默認)
If-Modified-Since:Wed, 02 Feb 2011 12:04:56 GMT 利用這個頭與服務器的文件進行比對,如果一致,則從緩存中直接讀取文件。
User-Agent:瀏覽器類型。
Content-Length:表示請求消息正文的長度。
Connection:表示是否需要持久連接。如果服務器看到這裏的值爲“Keep-Alive”,或者看到請求使用的是HTTP 1.1(HTTP 1.1默認進行持久連接)。
Cookie:這是最重要的請求頭信息之一 (在講會話時解析)。
Date:Date: Mon, 22 Aug 2011 01:55:39 GMT請求時間GMT。
3、消息正文
當請求方式是POST方式時,才能看見消息正文。
例如:uName=tom&pwd=123
3、響應部分
1、響應消息行
第一行:
HTTP/1.1 200 OK
協議/版本 響應狀態碼 對響應碼的描述(一切正常)
響應狀態碼:常用的就40多個。
200(正常) 一切正常
302/307(臨時重定向)
304(未修改) 表示客戶機緩存的版本是最新的,客戶機可以繼續使用它,無需到服務器請求。
404(找不到) 服務器上不存在客戶機所請求的資源。
500(服務器內部錯誤)
2、響應消息頭
Location:http://www.it315.org/index.jsp 指示新的資源的位置通常和302/307一起使用,完成請求重定向
Server:apache tomcat 指示服務器的類型
Content-Encoding:gzip 服務器發送的數據採用的編碼類型
Content-Length:80 告訴瀏覽器正文的長度
Content-Language:zh-cn 服務發送的文本的語言
Content-Type:text/html; charset=GB2312 服務器發送內容的MIME類型,即告知瀏覽器,響應正文的MIME類型
Last-Modified:Tue, 11 Jul 2000 18:23:51 GMT文件的最後修改時間
Refresh:1;url=http://www.it315.org 指示客戶端刷新頻率,單位是秒
Content-Disposition:attachment; filename=aaa.zip 指示客戶端下載文件
Set-Cookie:SS=Q0=5Lb_nQ; path=/search 服務器端發送的Cookie
Expires:-1
Cache-Control:no-cache (1.1)
Pragma:no-cache (1.0) 表示告訴客戶端不要使用緩存
Connection:close/Keep-Alive
Date:Tue, 11 Jul 2000 18:23:51 GMT
3、響應正文
和網頁右鍵“查看源碼”看到的內容一樣。