JavaWeb之Servlet01

劉意老師整理


Servlet

概念

步驟

package cn.itcast.web.servlet;

import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;


@WebServlet("/demo1")
public class ServletDemo1 implements Servlet {


    @Override
    public void init(ServletConfig servletConfig) throws ServletException {

    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("demo1....");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {

    }


}

執行原理

生命週期

Servlet3.0 註解配置

Servlet的體系結構    

Servlet -- 接口
    |
GenericServlet -- 抽象類
    |
HttpServlet  -- 抽象類

GenericServlet -- 抽象類

  • GenericServlet:將Servlet接口中其他的方法做了默認空實現,只將service()方法作爲抽象
  • 將來定義Servlet類時,可以繼承GenericServlet,實現service()方法即可

HttpServlet:對http協議的一種封裝,簡化操作

  • 定義類繼承HttpServlet
  • 複寫doGet/doPost方法

Servlet相關配置

urlpartten:Servlet訪問路徑

  1. 一個Servlet可以定義多個訪問路徑 : @WebServlet({"/d4","/dd4","/ddd4"})
  2. 路徑定義規則:
    /xxx:路徑匹配
    /xxx/xxx:多層路徑,目錄結構
    *.do:擴展名匹配

 

HTTP

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

傳輸協議:定義了,客戶端和服務器端通信時,發送數據的格式

特點:

  1. 基於TCP/IP的高級協議
  2. 默認端口號:80
  3. 基於請求/響應模型的:一次請求對應一次響應
  4. 無狀態的:每次請求之間相互獨立,不能交互數據

歷史版本:

  • 1.0:每一次請求響應都會建立新的連接
  • 1.1:複用連接

請求消息數據格式

請求行

請求方式    請求url        請求協議/版本
GET        /login.html    HTTP/1.1

請求方式:

  • HTTP協議有7中請求方式,常用的有2種

GET:

  1. 請求參數在請求行中,在url後。
  2. 請求的url長度有限制的
  3. 不太安全

POST:

  1. 請求參數在請求體中
  2. 請求的url長度沒有限制的
  3. 相對安全

請求頭:客戶端瀏覽器告訴服務器一些信息

請求頭名稱: 請求頭值

常見的請求頭:

User-Agent:瀏覽器告訴服務器,我訪問你使用的瀏覽器版本信息

  • 可以在服務器端獲取該頭的信息,解決瀏覽器的兼容性問題

Referer:http://localhost/login.html

  • 告訴服務器,我(當前請求)從哪裏來?

作用:

  • 防盜鏈:
  • 統計工作:
  • 請求空行

空行,就是用於分割POST請求的請求頭,和請求體的。

請求體(正文):

  • 封裝POST請求消息的請求參數的

字符串格式:

POST /login.html    HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Referer: http://localhost/login.html
Connection: keep-alive
Upgrade-Insecure-Requests: 1

username=zhangsan    

 

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章