day08
1、上節內容回顧
* jdk 5.0新特性
2、WEB內容的概述
* web:網頁,javaweb是使用java開發網頁(動態網頁),
* 使用什麼技術開發動態網頁:sun公司提供了兩種技術 jsp servlet
* web(網站)的結構:
- c s: client server
* 常見的應用 qq 迅雷 :需要安裝在本地硬盤
* 優點:把一些程序放在本地運行,可以減輕服務器的壓力
* 缺點:服務器如果更新了,客戶端軟件跟着更新
- b s: broswer server
* 常見的應用 網銀 支付寶
* 優點:如果服務器更新了,瀏覽器直接訪問
* 缺點:服務器的壓力大
** 提供一種技術 ajax,使用js,js代碼也是放在客戶端瀏覽器運行,也可以減輕服務器的一些壓力
*** 要學習是使用java開發b s結構的動態網站
* 靜態網站:使用 html css js
* 動態網站:
- sun公司提供: jsp servlet
- php: phpcms
- asp
........
*** 如果單純的開發網站,java沒有任何的優勢
* java適合做什麼?
- 適合實現一些大型的程序(企業級的應用) oa erp crm
3、web服務器的通信和常見的web服務器
* 比如瀏覽器 http://www.baidu.com 可以顯示出來百度的頁面
* 過程:使用ip+端口號,進行訪問
* 默認的端口號:80 - 不需要寫(可以省略)
* 在你的瀏覽器裏面,輸入一個地址,可以訪問我的本地文件夾裏面的一個文件
* 使用socket網絡編程
* 服務器:
1、硬件:一臺電腦
2、軟件:在電腦安裝了一個服務器軟件,這個時候,這個電腦就可以作爲服務器了。
* 常見的web服務器:
1、tomcat服務器:
- apache組織提供的,免費開源的服務器
2、weblogic服務器
- bea公司提供的,收費的
3、websphere服務器
- ibm提供的,收費的
4、tomcat服務器的安裝(*)
* 安裝tomcat之前,必須要安裝jdk,同時配置JAVA_HOME環境變量
- JAVA_HOME: C:\Program Files\Java\jdk1.7.0_72
** 第一種使用安裝文件 .exe文件
** 第二種,使用壓縮文件(一般使用這種方式進行安裝)
**** 解壓的時候,解壓到的目錄中不能帶中文和空格
** 啓動服務器:
- 找到tomcat文件夾下的一個目錄 bin,有一個文件.bat,文件名稱 startup.bat
- 點擊之後,出現一個提示框,當看到裏面沒有exception,在下面有ms,這個時候表示tomcat啓動成功了。
- 測試服務器是否啓動成功
- tomcat的默認端口號是 8080
** 直接在地址欄輸入 http://ip:8080 回車,如果出現一個貓的頁面,表示啓動成功了
*** 因爲現在訪問的是本地,ip可以使用 localhost 或者 127.0.0.1
*** http://192.168.33.26:8080/
** webapps文件裏面 創建一個文件夾 aa ,在aa裏面創建html頁面,如果頁面可以正常訪問,tomcat啓動成功
*** http://192.168.33.26:8080/aa/1.html
- 關閉服務器
** 直接把啓動窗口關閉
** 在bin目錄下 shutdown.bat,點擊這個文件,也可以關閉
5、tomcat服務器常見的問題(**)
(1)安裝tomcat之前,必須要安裝jdk,同時要配置JAVA_HOME環境變量
* 提示出錯:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program
(2)tomcat的端口衝突
* 系統中可能啓動了多個tomcat,這個時候出現端口衝突的問題
** 兩種解決方式:
1、找到tomcat端口是8080的進程,結束掉
* 在cmd窗口下,使用doc命令 netstat -ano
* 列出當前所有啓動的端口
* 找到8080端口的PID
* 啓動任務管理器,找到pi對應的值,結束掉
2、修改要啓動的tomcat端口
* 找到tomcat目錄下的conf目錄,找到文件server.xml
* <Connector port="8088" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
* 重新啓動服務器,才能生效
** 如果端口修改爲80,不需要寫端口號,直接通過ip就可以進行訪問了
6、tomcat的目錄結構(**)
* bin(*): 裏面放啓動和關閉tomcat的文件
* conf(**):tomcat一些相關的配置文件 server.xml web.xml
* lib: 放入的是tomcat運行需要的jar包,tomcat支持功能的jar
* logs:放入一些日誌信息
* temp:臨時文件(緩存文件)
* webapps(*):放入開發項目,直接通過ip+端口號+文件名+文件就可以訪問
* work:jsp編譯成servlet的class文件的地方
7、動態網站的目錄結構(*)
* 靜態網站:html css js 目錄結構 aa/1.html 把他放入到webapps下就可以直接訪問
* 動態網站的目錄結構
website
- html,css ,js,jsp
-(必須要有的部分)
- WEB-INF
– web.xml
--(可選部分,要麼不寫,如果寫必須按照下面的名稱命名)
** classes: java編譯成class文件存放目錄
** lib:放入一些額外的jar包
** 把webstie放入到webapps下面的
8、myeclipse中集成tomcat(*)
* 爲什麼要集成:提高開發效果
* 集成過程
* 發佈過程
* 會把項目發佈到tomcat的webapps目錄下
* 並不是把所有的內容都放進去,至是放入webroot目錄下的內容
* webroot目錄沒有了,webroot目錄變成了,部署到tomcat的項目名稱了
9、tomcat的Manager管理(瞭解)
* 客戶來使用的功能
10、tomcat中一些細節的問題(**)
*創建web項目時候,最上面有 project name:這個名稱是放到工作空間中的名稱
* 最下面有一個content url,有一個名稱,這個名稱是 放到tomcat下面的項目的名稱
** 如果想要訪問這個項目,使用下面這個名稱 (放到tomcat下面的項目的名稱)
* 可以在myeclipse中修改部署到tomcat的項目名稱
* 右鍵 屬性 -- > 搜索 web ,進行修改
11、tomcat中虛擬路徑的配置(**)
* 把項目按照目錄結構 放入到webapps下面就可以訪問
通過配置虛擬路徑的方式
* 第一種配置:使用Context來配置(*****)
** 找到tomcat的配置文件 在conf下面server.xml
** 在</Host>之前配置
** <Context docBase="c:\bb" path="/demo"></Context>
- docBase: 本地的文件夾路徑
- path:通過什麼地址訪問 http://127.0.0.1/demo/2.html
** 找到tomcat配置文件中,在conf下面web.xml
** 找到名稱是listings 把裏面值設置成true: 列出文件夾下面的所有文件(通過列表來展現)
*第二種配置:(****)
** 到conf下面的server.xml中 [enginename]/[hostname]/ directory.
** [enginename] <Engine name="Catalina"
** [hostname] <Host name="localhost"
** 在這個路徑下面,創建一個xml文件 haha.xml
** haha.xml: 文件內容,<Context docBase="c:\haha"></Context>
** 訪問:直接使用xml的文件名進行訪問 http://127.0.0.1/haha
12、訪問網站的全過程分析(瞭解,作爲擴展)
** 畫圖分析過程
13、tomcat虛擬主機(瞭解,擴展)
* hosts文件路徑 C:\Windows\System32\drivers\etc
* 如何仿百度的效果
1、下載百度的頁面
2、配置hosts文件 127.0.0.1 www.baidu.com
3、在conf目錄下面的server.xml進行配置,
- <Host name="www.baidu.com" appBase="I:\baidu"
unpackWARs="true" autoDeploy="true">
<Context docBase="\website" path="/"></Context>
</Host>
** name:改成想要訪問的域名地址
** appBase:頁面所在的本地路徑
** 配置 Context docBase="\website" path="/"
** 修改tomcat的端口號 80
** 設置首頁面 在tomcat裏面conf下面的web.xml中
- 在下面的 <welcome-file-list>裏面 增加 <welcome-file>baidu.htm</welcome-file>
**** 最終可以通過www.baidu.com來訪問本地百度的頁面
** 可以配置多個虛擬主機
** 但是必須要有一個默認的虛擬主機(直接通過ip的訪問的)
** 不是默認的虛擬主機不能直接通過ip訪問的
14、http協議快速入門(**)
* 什麼是http協議
** 協議:雙方可以達成的共同的目標
** http:網絡中發送請求和接受請求數據格式
- 請求和響應要遵循一定的格式,才能完成網絡的操作
*http協議的特點:
1、默認的端口 80
2、基於tcp的傳輸協議
3、請求和響應是成對出現(先有請求後有響應)
* 使用doc命令 telnet來模擬http協議的操作
** 首先打開cmd窗口
** 直接輸入命令 telnet localhost 端口號 80
** 會有中文亂碼問題,解決 ctrl+],直接點擊回車
**
請求:
GET /aa/1.html HTTP/1.1
host:localhost
服務器響應:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Accept-Ranges: bytes
ETag: W/"21-1426298016838"
Last-Modified: Sat, 14 Mar 2015 01:53:36 GMT
Content-Type: text/html
Content-Length: 21
Date: Sat, 14 Mar 2015 07:07:46 GMT
<h1>hello world!</h1>
* 推薦多個工具
** httpwatch:這個工具只能在ie上使用,其他瀏覽器目前是不支持的
- 安裝完成之後,在ie的工具裏面自帶添加進去
- 如果找不到,可以通過快捷鍵 shift+f2可以打開
** ie自帶工具
- 點擊 f12 點擊網絡,開始捕獲 ,可以看到當前請求和響應的信息
** 火狐自帶工具
- 需要安裝一個firebug工具,也可以看到當前請求和響應的信息
** 谷歌自帶工具
- 點擊f12,可以看到當前請求和響應的信息
15、http請求操作(*)
* 實現一個表單使用get和post提交
** 請求的內容
-
GET /day082/request/form01.html HTTP/1.1
Accept: text/html,image/*
Accept-Charset: ISO-8859-1
Accept-Encoding: gzip
Accept-Language:zh-cn
Host: www.itcast.com:80
If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT
Referer: http://www.itcast.com/index.jsp
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
Connection: close/Keep-Alive
Date: Tue, 11 Jul 2000 18:23:51 GMT
** http請求的組成(***)
1、http請求行 :提交方式 訪問的地址 http的版本
2、http請求頭:使用key-value形式,一個key可以有一個value,也可以有多個value
3、http請求體:通過post提交的數據 比如: username=zhangsan&password=aaaaaaaa
** http重要的請求頭
1、Referer:可以防盜鏈(得到當前訪問的路徑)
* 演示防盜鏈的效果 - 使用 servlet來實現
** 所有的內容,只允許my文件夾下面的html纔可以訪問
** 如果不是從my文件夾下面訪問的html文件,都不可以訪問
2、User-Agent: 可以獲取當前使用的瀏覽器
- ie瀏覽器: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; MAAU)
- 火狐瀏覽器:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0
3、If-Modified-Since: 經常和響應裏面的Last-Modified一起使用,用做本地緩存
16、HTTP/1.1和HTTP/1.0區別(面試題目)
GET /aa/1.html HTTP/1.1
host:localhost
GET /aa/1.html HTTP/1.0
host:localhost
* HTTP/1.1請求之後不會馬上斷開
* HTTP/1.0請求之後回馬上斷開
17、http的響應(**)
* HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Accept-Ranges: bytes
ETag: W/”625-1426321060991”
Last-Modified: Sat, 14 Mar 2015 08:17:40 GMT
Content-Type: text/html
Content-Length: 625
Date: Sat, 14 Mar 2015 08:18:15 GMT
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
.................
* 有三部分組成
1、響應行
- http版本 狀態碼 狀態碼描述
- 狀態碼:(****)
** 常用的狀態碼
1、200 表示請求成功
2、302:重定向
3、304:查詢本地緩存
4、404:資源找不到
5、500:服務器內部(代碼錯誤)
2、響應頭
- 採用key-value形式顯示,一個key可以有一個value,也可以有多個value
** Refersh
- 使用這個頭可以實現頁面的定時跳轉(刷新)
** Location
- 使用這個頭可以和302完成重定向
** Last-Modified和請求裏面 If-Modified-Since
- 在請求頭信息裏面有一個If-Modified-Since,查找本地緩存
** 禁用緩存的頭(如果想要所有瀏覽器都能禁用緩存,這三個頭都要設置)
Expires: -1
Cache-Control: no-cache
Pragma: no-cache
** (瞭解) Content-Disposition:
** 可以使用這個頭實現文件的下載操作
3、響應體
** 顯示在頁面上的內容
- 響應頭和響應體直接有空格(格式)
** 如何處理緩存問題(開發心得)
1、清除ie的緩存文件
2、修改ip地址(可以使用localhost或者127。0.0.1)
3、訪問一個錯誤的頁面,然後再訪問正確的頁面
4、在地址後面加一個隨機數 比如 http://127.0.0.1/day08/my/my.html?id=1
5、把項目移除,然後再部署
6、到tomcat目錄下面 I:\tomcat\apache-tomcat-7.0.53\work
把work裏面的所有內容都刪除
** URL和URI區別(擴展)
** URI範圍大於URL
** URL:網絡地址 比如:http://www.sina.com http://www.itcast.com.cn
**URI地址包含網絡地址,同時包含類似 [email protected] thunder://1111 ed2k://qqqqq