JavaWeb筆記03-Servlet

今日內容

  1. Servlet
  2. HTTP協議
  3. Request

Servlet

概念

步驟

執行原理

生命周期

Servlet3.0注解配置

Servlet的體系結構

  • Servlet – 接口
    • GenericServlet – 抽象類:將Servlet接口中其他方法做了默認空實現,只將service()方法作為抽象
      • 將來定義Servlet類時候,可以繼承GenericServlet,實現service()方法即可
    • HTTPServlet – 抽象類:對http協議的一種封裝,簡化操作
      1. 定義類繼承httpservlet方法
      2. 腹瀉doGet/doPost方法

Servlet相關配置

  1. urlpattern:Servlet訪問路徑
    • 一個Servlet可以定義多個訪問路徑:@WebServlet({"/d4","/dd4","/ddd4"})
    • 路徑定義規則:
      1. /xxx
      2. /xxx/xxx
      3. *.do*說白了就是通配符,這里注意前面不要加/

HTTP:

概念:Hyper Text Transfer Protocol 超文本傳輸協議

  • 傳輸協議: 定義了,客戶端和服務器端通信時,發送數據的格式
  • 特點:
    1. 基于TCP/IP 的高級協議
    2. 默認端口:80
    3. 基于請求/響應模型的:一次請求對應一次響應
    4. 無狀態的:每次請求之間相互獨立,不能交互數據
  • 歷史版本:
    • 1.0: 每一次請求響應都會建立新的鏈接
    • 1.1: 復用

請求消息數據格式:

  1. 請求行
    • 請求方式 請求url 請求協議/版本 GET/login.html HTTP/1.1
    • 請求方式:
      • HTTP協議有7種請求方式,常用的有2種
        • GET:
          1. 請求參數在請求行中,在url后
          2. 請求的url長度有限制的
          3. 不太安全
        • POST:
          1. 請求參數在請求體中
          2. 請求的url長度沒有限制的
          3. 相對的安全(其實對于有心人來說,都是能看到的)
  2. 請求頭(客戶端告訴服務器的一些信息,頭是固定的,值是不一樣的)
    • 請求頭名稱:請求頭值
    • 常見的請求頭:
      1. User-Agent: 瀏覽器告訴服務器,我訪問你使用的瀏覽器版本信息
        • 可以在服務端獲取該頭的信息,解決瀏覽器的兼容性問題
      2. Referer:http://localhost/login.html
        • 告訴服務器,我(當前的請求)從哪里來?
          • 作用:
            1. 防盜鏈:
            2. 統計工作
  3. 請求空行
    • 空行,用于分割POST的請求頭和請求體的
  4. 請求體(正文)
    • 封裝POST請求消息的請求體的
    • get方式的沒有請求體的
    • post方式的請求體是帶了一些參數username=zhangsan

響應消息數據格式:

登錄

請求和響應的過程

  1. tomcat服務器會根據請求url的資源路徑,創建對應的ServletDemo1對象
  2. tomcat服務器,會創建request和response對象,request對象中封裝請求消息數據
  3. tomcat將request和response兩個對象傳遞給service方法,并且調用service方法.
  4. 程序員(我們),可以通過request對象獲取請求消息數據,通過通過response對象設置響應消息數據
  5. 服務器在給瀏覽器做出響應之前,會從response對象中拿程序員

request:

  1. request對象和response對象的原理
    1. request和response對象是有服務器創建的,我們來使用它們
    2. request對象是來獲取請求消息的response是來設置響應消息
  2. request對象繼承體系結構
ServletRequest -- 接口    | 繼承
HTTPServletRequest -- 接口| 實現
org.apache.catalina.connector.RequestFacade類(tomcat)
  1. request:功能
    1. 獲取請求消息數據
      1. 獲取請求行數據
        • GET/day14/demo1?name=zhangsan HTTP/1.1
        • 方法:
          1. 獲取請求方式:GET
            • String getMethod();
          2. 獲取虛擬目錄:day14
            • String getContextPath()
          3. 獲取Servlet路徑:/demo1
            • Stirng getServletPath
          4. 獲取get方式請求參數:name = zhangsan
            • String getQueryString()
          5. 獲取請求URI:/day14/demo1
            • String getRequestURI()
            • StringBuffer getRequestURL():http://loaclhost/day14/demo1
            • url:統一資源定位符:http://loaclhost/day14/demo1(中華人民共和國)
            • uri:統一資源標識符:/day14/demo1(共和國)
              我現在要說的是,uri比url大,同意吧,就像上面的比喻
          6. 獲取協議版本:HTTP/1.1
            • String getProtocol()
          7. 獲取客戶機的IP地址
            • String getRemoteAddr()
      2. 獲取請求頭數據
      3. 獲取請求體數據
    2. 其他功能

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/455381.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/455381.shtml
英文地址,請注明出處:http://en.pswp.cn/news/455381.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Android開發中無處不在的設計模式——動態代理模式

繼續更新設計模式系列。寫這個模式的主要原因是近期看到了動態代理的代碼。 先來回想一下前5個模式: - Android開發中無處不在的設計模式——單例模式 - Android開發中無處不在的設計模式——Builder模式 - Android開發中無處不在的設計模式——觀察者模式 - A…

用于MPEG-4視聽流的RTP負載格式

MPEG-4的rtp協議封裝英文原版 RFC 3016:http://www.rfc-editor.org/rfc/rfc3016.txt中文翻譯:組織:中國互動出版網(http://www.china-pub.com/)RFC文檔中文翻譯計劃(http://www.china-pub.com/compters/emo…

pycharm python 模板配置_windows下pycharm安裝、創建文件、配置默認模板

本文為大家分享了windows下pycharm安裝、創建文件、配置默認模板的具體步驟,供大家參考,具體內容如下步驟:下包 —->安裝——>創建文件—->定制模板一、下包官方地址這里有企業版和社區版,老司機都知道社區版是免費的&am…

JavaWeb筆記02-Tomcat

今日內容 web相關概念回顧web服務器軟件:TomcatServlet入門學習 web相關概念回顧 軟件架構 C/S: 客戶端/服務器端B/S: 瀏覽器/服務器端 資源分類 靜態資源: 所有用戶訪問后,得到的結果都是一樣的,成為靜態資源,靜態資源可以直接被瀏覽器解析 如:html, css ,JavaScript 動態資…

網上的畫板代碼收集和整理

修改后的代碼[1]為,少了一個} package com.example.administrator.myapplication;import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; import android.graphics.Canvas; import an…

如何寫年終總結(轉)

很多人不重視年終總結,覺得是一個非常令人厭煩的任務,往往是應付了事,短短幾百字,對目前工作中存在的問題發現不夠,思考不足,對自己一年的評價和未來一年的定位沒有說明。造成的后果就是公司得不到來自基層…

cad移動時捕捉不到基點_CAD入門必備(一)移動和復制新手必看

cad也瘋狂前言:CAD繪圖之所以能夠取代手工繪圖,很大的一部分原因是因為它可以很方便的修改和重復利用,例如外參可以節省很大部分時間。而我們在使用CAD中,用得最頻繁的功能就是移動和復制了,當然這也是新手必備的其中一…

H.264軟件解碼器在PXA270平臺上的優化

羅 嶸,何 苦 時間:2009年04月24日摘 要: 研究了嵌入式系統中H.264 Baseline軟件解碼器設計和優化的問題,提出了四種有效的優化方法,并在PXA270平臺上進行了測試。測試結果顯示,綜合使用提出的四種方法,H.26…

JavaWeb筆記04-解決GET與POST亂碼問題

解決GET與POST亂碼問題: 請求的亂碼問題 GET:tomcat8版本之前,get請求會亂碼 正常文字 --> UTF-8編碼 --> 字節數組 --> ISO-8859-1 編碼 --> 亂碼文字 正常文字 <-- UTF-8編碼 <-- 字節數組 <-- ISO-8859-1 編碼 <-- 亂碼文字解決亂碼的兩種格式: …

EF架構~codeFirst從初始化到數據庫遷移

一些介紹 CodeFirst是EntityFrameworks的一種開發模式&#xff0c;即代碼優先&#xff0c;它以業務代碼為主&#xff0c;通過代碼來生成數據庫&#xff0c;并且加上migration的強大數據表比對功能來生成數據庫版本&#xff0c;讓程序開發人員不用維護數據庫的變更&#xff0c;而…

Ubuntu用戶Steam控制器不工作的解決辦法

Steam 控制器已開始送貨到世界各地游戲玩家手中&#xff0c;不過有朋友遇到 Steam 控制器在 Ubuntu 中無法正常工作&#xff0c;本文我們來介紹一下解決辦法。該解決辦法并非 Ubuntu 官方提出的最佳解決方案&#xff0c;不過還是可以臨時解決 Ubuntu 用戶 Steam 控制器不工作的…

lisp 車位塊自動編號_機械車位做產權登記,真的適合嗎?

為了更好地把握停車市場發展動向&#xff0c;給停車行業從業者提供一個發表觀點、各抒己見的平臺&#xff0c;共同促進停車行業的發展&#xff0c;《城市停車》開設熱點版塊&#xff0c;每期針對1-2個行業熱點&#xff0c;廣泛征集業內人士觀點和看法。HOT TOPIC本期熱點今年兩…

JavaWeb筆記05-解決線程安全問題

線程安全問題: Servlet的service方法,每次被請求是,調用. 這個調用很特殊,是在新的子線程中調用的,當service方法執行完畢,子線程死亡了. 可以簡單的理解為:service方法每次執行都是一個新的線程. package cn.xdl.demo1;import javax.servlet.ServletException; import jav…

Java并發編程實戰 第14章 構建自定義的同步工具

狀態依賴性 定義&#xff1a;只有滿足特定的狀態才能繼續執行某些操作&#xff08;這些操作依賴于固定的狀態&#xff0c;這些狀態需要等待別的線程來滿足&#xff09;。 FutureTask&#xff0c;Semaphroe&#xff0c;BlockingQueue等&#xff0c;都是狀態依賴性的類。 條件隊列…

webserver接口_SpringBoot內置源碼解析WebServer初始化過程

WebServer 初始化過程在上一節中 Spring Boot 初始化了 WebServer 對應的工廠類。同時&#xff0c;我們也知道對應 Web容器的WebServer實現類有:TomcatWebServer、JettyWebServer和UndertowWebServer。這節重點講解這些 WebServer 是如何被初始化&#xff0c;又如何啟動的。Web…

提升應用程序彈性:保障工作負載正常運行

通過集群化、復制、快照、微服務和應用程序設計來提高企業工作負載的應用程序彈性和可用性。 應用程序的彈性和可用性是現代企業工作負載的關鍵屬性。應用程序需要在硬件故障發生后&#xff0c;扛過服務故障(例如負載平衡器和域名系統錯誤)保持工作狀態&#xff0c;并且可以忍受…

JDBC筆記01-JDBC,Connection,Statement,ResultSet,PreparedStatement,Properties

學習目標 理解JDBC原理 掌握Connection接口的使用 掌握Statement接口的使用 掌握ResultSet接口的使用 掌握PreparedStatement接口的使用 掌握Properties類與配置文件的使用 JDBC 概念 JDBC (Java DataBase Connectivity) Java數據庫連接技術的簡稱&#xff0c;提供連接各種常…

NVDKC6416平臺H.264算法優化

本文轉載自&#xff1a;http://blog.csdn.net/embedesign/archive/2009/09/15/4556486.aspx&#xff0c;版權歸原作者&#xff0c;編輯&#xff1a;小乙哥 多媒體通信終端設備具有廣泛的應用前景&#xff0c;可以應用于視頻會議、可視電話、PDA、數字電視等各個領域&#xff0…

攔截器及 Spring MVC 整合

一、實驗介紹 1.1 實驗內容 本節課程主要利用 Spring MVC 框架實現攔截器以及 Spring MVC 框架的整合。 1.2 實驗知識點 Spring MVC 框架攔截器1.3 實驗環境 JDK1.8Eclipse JavaEE二、實驗步驟 2.1 攔截器實現 在項目 hrms 的目錄 src/main/java 下新建包 com.shiyanlou.interc…

高德地圖軌跡回放_高德地圖上線了一個新功能….

文、路人甲TM德地圖這兩天剛上線了一個叫做「家人地圖」的功能&#xff0c;所謂家人地圖顧名思義&#xff0c;就是你可以通過高德地圖組建一個家人圈&#xff0c;在這個圈子里面你可以看到你的家人在什么位置&#xff0c;當你的家人到達什么位置的時候自動發送通知或者警告&…