JavaWeb_day01_HTTP_Servlet

来源:http://www.cnblogs.com/luogg/archive/2016/10/19/5978869.html
-Advertisement-
Play Games

JavaWeb_day01 HTTP協議 HTTP(HyperText Transfer Protocol)超文本傳輸協議,是TCP/IP的應用層協議,用於定義WEB瀏覽器與WEB伺服器之間交換數據的過程以及數據本身的格式. Http協議版本號 : HTTP/1.0 HTTP/1.1 交互步驟 : ...


JavaWeb_day01

HTTP協議

HTTP(HyperText Transfer Protocol)超文本傳輸協議,是TCP/IP的應用層協議,用於定義WEB瀏覽器與WEB伺服器之間交換數據的過程以及數據本身的格式.

Http協議版本號 : HTTP/1.0 HTTP/1.1

交互步驟 : 基於HTTP協議的客戶/伺服器模式的信息交換過程,它分四個過程,建立連接、發送請求信息、發送響應信息、關閉連接。

HTTP/1.1新特性 :

  1. 在一次TCP/IP連接上可以傳送多個HTTP請求和響應。
  2. 多個請求和響應過程可以重疊
  3. 增加了更多的請求頭和響應頭,比如Host等

HTTP請求組成:

這裡寫圖片描述

HTTP響應

這裡寫圖片描述

HTTP->post和get請求方式詳解

  • get把參數顯示在地址欄上,安全級別低,不支持大數據。
  • post把參數封裝請求體中,安全級別高,支持大數據。

HTTP常用狀態碼

200(正常) : 表示一切正常,返回的是正常請求結果

302/307(臨時重定向) : 指出被請求的文檔已被臨時移動到別處,此文檔的新的URL在Location響應頭中給出。

304(未修改) : 表示客戶機緩存的版本是最新的,客戶機可以繼續使用它,無需到伺服器請求。

404(找不到) : 伺服器上不存在客戶機所請求的資源。

500(伺服器內部錯誤) : 伺服器端的程式發生錯誤

TomCat的配置

Tomcat:實現了JSP/Servlet規範,輕量級的伺服器,Servlet容器。(雄貓)
1.解壓tomcat
2.配置JAVA_HOME: 伺服器需要,指向JDK的路徑
3.修改埠號 : 在TomCat->conf->server.xml中修改,修改埠是為了防止埠衝突,修改為http預設埠80
4.eclipse配置tomcat->windows->preferences->搜索server
5.創建server視圖

TomCat目錄結構

這裡寫圖片描述

URL(協議+主機:埠+資源地址)

這裡寫圖片描述

  • server 2.5版本練習

請求消息頭:(做好筆記,記住常用的頭)
作用:向伺服器端傳遞附加信息(暗號指令)

  • Accept:告知伺服器,客戶端可以接受的數據類型(MIME類型)
  • 文件系統:通過文件的擴展名區分不同的文件的。txt jpeg
  • MIME類型:大類型/小類型。
  • txt--->text/plain
  • html---->text/html
  • js---->text/javascript (具體對應關係:Tomcat\conf\web.xml)

  • Accept-Encoding:告知伺服器,客戶端可以接受的壓縮編碼。比如gzip
  • Accept-Language:告知伺服器,客戶端支持的語言。
  • Referer:告知伺服器,從哪個頁面過來的。

作用:統計廣告的投放效果;防止盜鏈。

  • Content-Type:告知伺服器,請求正文的MIME類型
  • 預設類型:application/x-www-form-urlencoded(表單enctype屬性的預設取值)
  • 具體體現:username=abc&password=123
  • 其他類型:multipart/form-data(文件上傳時用的)
  • If-Modified-Since:告知伺服器,當前訪問的資源,緩存中的文件的最後修改時間。
  • User-Agent:告知伺服器,瀏覽器的類型
  • Content-Length:請求正文的數據長度
  • Cookie:(*****重要)會話管理有關

Servlet

Servlet是一個運行在伺服器端的Java小程式,通過HTTP協議用於接收來自客戶端請求,併發出響應。

Servlet中的方法

public void service(ServletRequest req,ServletResponse res)
throws ServletException,java.io.IOException

ServletRequest req:代表著請求對象,該對象中有HTTP協議的請求部分的所有內容。它的實現類由伺服器提供的,封裝數據也是伺服器來做的。
ServletResponse res:代表著響應對象,該對象中由我們寫數據(HTTP協議的響應部分)進去。它的實現類也是由伺服器提供的。
service:由伺服器調用,每次請求都會調用一次。伺服器採用的是多線程機制。

Servlet執行過程

1.客戶端訪問Tomcat訪問地址:http://localhost:8080/firstServlet/hello
2.Tomcat解析客戶端的訪問地址
3.Tomcat找firstServlet應用。
4.找之間先搜索web.xml
5.接著就找到自己的類。
6.執行service
7.給用戶看到結果

Servlet生命周期

  1. 誕生:用戶第一次訪問時,由容器創建他的實例。
  2. 活著:一旦創建就駐留記憶體(單例)。每次用戶的訪問,容器都會調用sevice方法發出響應(多線程)
  3. 死亡:應用被卸載或者Tomcat關閉了

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 文檔目錄 本節內容: 配置ABP 替換內置服務 配置模塊 為一個模塊創建配置 替換內置服務 ABP在啟動時,提供基礎框架和模型來配置和模塊化。 置ABP 在預初始化事件中進行配置,示例: ABP進行了模塊化設計,不同的模塊都能配置ABP。例如,不同的模塊都能添加導航提供器把自己的菜單項加入到主菜單中 ...
  • 一、基本選擇器: ID選擇器:$("#id名稱") 例如:$("#div1").css("width","100px"); CLASS選擇器:$(".id名稱") 併列$("#id名稱,#id名稱") 後代$("#id名稱 名稱")二.過濾選擇器 第一個:$(".id名稱:first") 最後一個: ...
  • 《深入理解Java虛擬機》第二三章摘要 Java記憶體區域與記憶體溢出 Java虛擬機中的記憶體分配圖: 各個區域的特性總結如下表: 補充說明: 當多線程情形下,可能多個線程要在堆上分配記憶體,那麼可能出現記憶體分配的同步問題,解決方案有兩個,一個就是同步記憶體分配動作;另一個就是採用TLAB,即在Java堆中 ...
  • 英文文檔: Return a Boolean value, i.e. one of True or False. x is converted using the standard truth testing procedure. If x is false or omitted, this ret ...
  • 一.在java中提供的一些修飾符,這些修飾符可以修飾類、變數和方法,在java中常見的修飾符有:abstract(抽象的)、static(靜態的)、public(公共的)、protected(受保護的)、private(私有的)、synchronized(同步的)、native(本地的)、trans ...
  • 首先,說明一下多線程的應用場景:當python處理多個任務時,這些任務本質是非同步的,需要有多個併發事務,各個事務的運行順序可以是不確定的、隨機的、不可預測的。計算密集型的任務可以順序執行分隔成的多個子任務,也可以用多線程的方式處理。但I/O密集型的任務就不好以單線程方式處理了,如果不用多線程,只能用 ...
  • 在現實生活中,記錄日誌非常重要。銀行轉賬時會有轉賬記錄;飛機飛行過程中,會有黑盒子(飛行數據記錄器)記錄飛行過程中的一切。如果有出現什麼問題,人們可以通過日誌數據來搞清楚到底發生了什麼。對於系統開發、調試以及運行,記錄日誌都是同樣的重要。如果沒有日誌記錄,程式崩潰時你幾乎就沒辦法弄明白到底發生了什麼 ...
  • 內置對象:不需要預先聲明就可以在腳本代碼和表達式中隨意使用,有以下特點 1.由JSP規範提供,不用編寫者實例化 2.提供Web容器實現和管理 3.所有JSP頁面均可用 4.只有在腳本元素的表達式或者代碼中才可使用(<%=使用內置對象%>或<%使用內置對象%>) 輸入輸出對象:request,resp ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...