小白之旅24

一. Servlet

server appletweb

1.1 概念:

運行在服務器的Java程序數據庫

Servlet是一個接口,定義了Java類被tomcat識別的規則瀏覽器

1.2 Servlet的實現步驟

一、建立類實現Servlet接口tomcat

二、重寫方法安全

三、配置Servlet的映射,在WebContent -> WEB-INF -> web.xml服務器

具體實現:app

一、implements Servletpost

二、init()、service()、destroy()url

三、code

<servlet>

​   <servlet-name>標識</servlet-name>

​   <servlet-class>全類名</servlet-class>

</servlet>

<servlet-mapping>

​   <servlet-name>標識</servlet-name>

​   <url-pattern>/資源</url-pattern>

</servlet-mapping>

執行原理:

一、當服務器接收到客戶端的請求後,會解析地址欄中請求的資源,獲取訪問的Servlet的路徑

二、它會自動查找web.xml文件,是否有一個url-pattern與請求的資源對應

三、若是有,則找到對應的servlet-class中的指定類

四、tomcat會將這個對應的Servlet類編譯成字節碼文件,放在WEB-INF -> classes下,

而後會將這個字節碼文件加載進內存,並建立這個Servlet的對象

五、調用它的方法

二.Servlet的生命週期

2.1 init

Servlet被建立時執行,而且只執行一次

Servlet什麼時候被建立?

一、默認狀況下,是在第一次被訪問時候執行

二、能夠在web.xml中的某個servlet標籤下配置<load-on-startup>n</load-on-startup>,讓該Servlet在服務器啓動時就建立

n:

  • 負整數,仍然是默認是第一次被訪問時建立
  • 0:當服務器啓動時就建立
  • 正整數:同上
  • n越小,越先執行

2.2 service

每次Servlet被訪問都會執行

2.3 destroy

Servlet被銷燬時執行,只執行一次

destroy方法在Servlet被釋放前執行,用於釋放資源

只有服務器正常關閉時,纔會執行destroy方法

三. HttpServlet

Servlet 接口

GenericServlet 抽象類

HttpServlet 抽象類

實際開發中,咱們採用繼承HttpServlet的方式來建立Servlet

步驟:

一、建立類繼承HttpServlet

二、重寫doGet()和doPost()方法

四. (練習)使用Servlet結合數據庫完成註冊功能

4.1 頁面

一、兩個輸入框,一個提交按鈕

二、action的提交位置

4.2 數據庫

一、建庫,建表

二、導入3個包:connector、c3p0、dbutils

三、c3p0-config.xml

四、獲取鏈接池

五、定義註冊方法

4.3 服務器

一、經過鍵獲取對應的值

二、調用註冊功能

五. url-pattern的配置

一、徹底匹配

請求的資源與url的配置徹底一致

二、目錄匹配

格式:/ 目錄 / *

表示:只要目錄一致,目錄後能夠寫任意內容來訪問

三、擴展名匹配

格式:*.擴展名

表示:只要擴展名一致,文件名能夠是任意的

注:目錄匹配和擴展名匹配不能混用

四、缺省匹配

格式:/ 或 /*

表示:請求的資源不存在時就有該url對應的Servlet來處理

六. HTTP

概念:超文本傳輸協議

Hypertext Transfer Protocol

做用:定義客戶端與服務器端通訊時須要遵循的規則,它定義的數據的格式

特色:

  • 它是基於TCP / IP 的高級傳輸協議
  • 它是基於 請求響應對的 ,一次請求對應一次響應
  • 它是無狀態的:每次請求都相互獨立,不能有數據的通訊、交互

版本:

  • HTTP 1.0:每次請求都會建立新的鏈接,在響應後都會斷開鏈接。
  • HTTP 1.1:請求後建立的鏈接會被下次請求重複使用

請求消息的數據格式:

  • 請求行:請求方式 請求地址 請求協議
    • 請求方式:一共有7種,最經常使用的是get和post
      • get:
        • 請求的參數在地址後
        • 相對不安全
        • 提交的長度有限
      • post:
        • 請求的參數在請求體中
        • 相對安全
        • 提交的長度沒有限制
    • 請求地址:http://localhost:8080/day24_4url/request
    • 請求協議:HTTP/1.1
  • 請求頭:客戶端告知服務器的信息
    • Accept:容許接收的資源
    • Referer:告知服務器當前的請求從哪一個url來,通常用於防盜鏈
    • User-Agent:告知服務器,所使用瀏覽器的版本
  • 請求體:封裝請求的參數
    • get請求沒有請求體,get請求的參數在url上
    • 只有post有請求體
相關文章
相關標籤/搜索