Web后端開發-SpringBootWeb入門、Http協議、Tomcat

文章目錄

  • Web后端開發簡介
  • SpringBootWeb入門
  • HTTP協議
    • HTTP-概述
    • HTTP-請求協議
    • HTTP-響應協議
    • HTTP-協議解析
  • Web服務器-Tomcat
    • 簡介
    • 基本使用
    • SpringBootWeb入門程序解析

Web后端開發簡介

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

SpringBootWeb入門

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

package com.wuxuan.javaweb_wushuang.controller;import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;//請求處理類
@RestController
public class hello {@RequestMapping("/hello")public String hello(){System.out.println("Hello World~");return "Hello World~";}}
package com.wuxuan.javaweb_wushuang.controller;import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;//請求處理類
@RestController
public class hello {@RequestMapping("/hello")public String hello(){System.out.println("Hello World~");return "Hello World~";}}

HTTP協議

HTTP-概述

在這里插入圖片描述

HTTP-請求協議

在這里插入圖片描述

在這里插入圖片描述

HTTP-響應協議

在這里插入圖片描述

在這里插入圖片描述在這里插入圖片描述
在這里插入圖片描述

HTTP-協議解析

HTTP的解析和處理十分繁瑣,如果要寫代碼,要寫大量代碼!非常麻煩,而Web服務器為我們解決了這個問題。Web服務器可以為我們解析和處理HTTP,使我們只需關注業務邏輯的實現。

在這里插入圖片描述
在這里插入圖片描述

package com.wuxuan.javabase_homework;import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.nio.charset.StandardCharsets;/** 自定義web服務器*/
public class Server {public static void main(String[] args) throws IOException {ServerSocket ss = new ServerSocket(8080); // 監聽指定端口System.out.println("server is running...");while (true){Socket sock = ss.accept();System.out.println("connected from " + sock.getRemoteSocketAddress());//開啟線程處理請求Thread t = new Handler(sock);t.start();}}
}class Handler extends Thread {Socket sock;public Handler(Socket sock) {this.sock = sock;}@Overridepublic void run() {try (InputStream input = this.sock.getInputStream(); OutputStream output = this.sock.getOutputStream()) {handle(input, output);} catch (Exception e) {try {this.sock.close();} catch (IOException ioe) {}System.out.println("client disconnected.");}}private void handle(InputStream input, OutputStream output) throws IOException {BufferedReader reader = new BufferedReader(new InputStreamReader(input, StandardCharsets.UTF_8));BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(output, StandardCharsets.UTF_8));// 讀取HTTP請求:boolean requestOk = false;String first = reader.readLine();if (first.startsWith("GET / HTTP/1.")) {requestOk = true;}for (;;) {String header = reader.readLine();if (header.isEmpty()) { // 讀取到空行時, HTTP Header讀取完畢break;}System.out.println(header);}System.out.println(requestOk ? "Response OK" : "Response Error");if (!requestOk) {// 發送錯誤響應:writer.write("HTTP/1.0 404 Not Found\r\n");writer.write("Content-Length: 0\r\n");writer.write("\r\n");writer.flush();} else {  // 發送成功響應://讀取html文件,轉換為字符串InputStream is = Server.class.getClassLoader().getResourceAsStream("html/a.html");BufferedReader br = new BufferedReader(new InputStreamReader(is));StringBuilder data = new StringBuilder();String line = null;while ((line = br.readLine()) != null){data.append(line);}br.close();int length = data.toString().getBytes(StandardCharsets.UTF_8).length;writer.write("HTTP/1.1 200 OK\r\n");writer.write("Connection: keep-alive\r\n");writer.write("Content-Type: text/html\r\n");writer.write("Content-Length: " + length + "\r\n");writer.write("\r\n"); // 空行標識Header和Body的分隔writer.write(data.toString());writer.flush();}}
}

Web服務器-Tomcat

在這里插入圖片描述
在這里插入圖片描述

簡介

在這里插入圖片描述在這里插入圖片描述

基本使用

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

SpringBootWeb入門程序解析

在這里插入圖片描述

在這里插入圖片描述

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

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

相關文章

物聯網通信技術全景剖析:從LoRa到5G的深度對比與選型指南

物聯網通信技術全景剖析:從LoRa到5G的深度對比與選型指南在萬物互聯時代,選擇合適的通信技術如同為設備構建“神經網絡”。本文將深入解析七大主流物聯網通信技術,助您在技術選型中精準決策。一、低功耗廣域網(LPWAN)技…

俄羅斯方塊AI深度解析:從算法原理到實現細節

俄羅斯方塊AI深度解析:從算法原理到實現細節 前言 俄羅斯方塊,這個誕生于1984年的經典游戲,至今仍然是人工智能研究領域的熱門課題。當簡單的幾何形狀在網格中不斷下落時,看似簡單的規則背后卻隱藏著復雜的策略決策問題。本文將深入剖析一個基于Python實現的俄羅斯方塊AI…

Spring Boot 框架創建一個簡單的后端接口,并介紹如何使用 Apifox 連接該接口

目錄 一、配置 二、使用 IntelliJ IDEA 創建 Spring Boot 項目 1.打開 IntelliJ IDEA,選擇 File > New > Project 2.在左側面板選擇 Spring Initializr,項目名稱設置為HelloWorldAPI 3.點擊 Create 完成項目創建 三、創建控制器類 四、運行項…

CICD[導航]、docker+gitlab+harbor+jenkins從安裝到部署

一、安裝 CICD[軟件安裝]:docker安裝gitlab-CSDN博客 CICD[軟件安裝]:ubuntu安裝jenkins-CSDN博客 CICD[軟件安裝]:ubuntu安裝私有鏡像倉庫-Harbor-CSDN博客 CICD[軟件安裝]:ubuntu24安裝Docker-CSDN博客 二、鏡像執行 CICD[…

深度學習圖像分類數據集—蘑菇識別分類

該數據集為圖像分類數據集,適用于ResNet、VGG等卷積神經網絡,SENet、CBAM等注意力機制相關算法,Vision Transformer等Transformer相關算法。 數據集信息介紹:蘑菇識別分類:[Agaricus, Amanita, Boletus, Cortinarius, …

iOS 多線程導致接口亂序?抓包還原 + 請求調度優化實戰

在一次性能優化過程中,我們將 iOS App 內多處請求改為并行處理,以提高頁面加載速度。但上線后卻收到部分用戶反饋:進入頁面后數據加載錯亂,有時展示前一次頁面內容,有時同一個接口請求重復返回不同內容。 日志僅顯示正…

PDFBox 在 Linux 報 “No glyph for U+535A (博)” —— 一次子集化踩坑與完整排查清單

PDFBox 在 Linux 報 “No glyph for U535A (博)” —— 一次子集化踩坑與完整排查清單關鍵詞:PDFBox、PDType0Font、子集嵌入(subset embedding)、SimHei、思源黑體、字體回退1. 背景業務場景 后端使用 Apache PDFBox 填充含 AcroForm 的中文…

網安系列【8】之暴力破解入門

文章目錄 引用資料一 什么是暴力破解?二 暴力破解的工作原理三 暴力破解的類型3.1 傳統暴力破解3.2 字典攻擊3.3 混合攻擊3.4 彩虹表攻擊 四 暴力破解實戰演示4.1 環境和工具4.2 破解操作 五 防御暴力破解的策略六 暴力破解的相關法律七 延伸學習總結 引用資料 Bur…

使用tensorflow的線性回歸的例子(四)

與經典線性回歸比較 import matplotlib.pyplot as plt %matplotlib inline import tensorflow as tf import numpy as np from sklearn.linear_model import LinearRegression #from sklearn.datasets.samples_generator import make_regression Xdata np.array([4.0, …

服務器中故障轉移機制是指什么意思?

在企業服務器和數據中心當中,電源冗余機制和故障轉移機制是保障系統高可用性和穩定性的重要組成部分,電源故障轉移系統可以幫助企業有效減少服務器因為硬件故障導致業務中斷的情況,本文就來詳細了解一下服務器中故障轉移機制。服務器中的故障…

rook-ceph的osd沒有啟動rook-ceph-osd-prepare狀態異常處理

rook-ceph搭建好ceph之后,查看ceph集群狀態,發現三節點只有兩個osd狀態正常注:這里是已經恢復后的截圖。 使用kubectl get pod -n rook-ceph查看pod都是處于運行狀態 rook-ceph-osd-prepare也都是Completed沒問題,實際使用kubectl…

ubuntu手動編譯VTK9.3 Generating qmltypes file 失敗

?在Ubuntu上手動編譯VTK 9.3時,可能會遇到 Generating qmltypes file失敗的問題。這個問題通常與VTK在處理Qt依賴時發生的錯誤有關。以下是解決該問題的詳細步驟和相關解釋。一、確保系統依賴正確安裝在編譯VTK之前,需要確保所有依賴項已經正確安裝&…

計算機科學導論(1)哈佛架構

文章目錄一、哈佛架構的定義與起源二、哈佛架構的核心組成與工作原理1. **物理結構:獨立的存儲與總線**2. **工作流程:并行處理的實現**三、哈佛架構與馮諾依曼架構的對比四、哈佛架構的優缺點分析1. **優勢**2. **局限性**五、哈佛架構的實際應用場景1.…

VBScript 安裝使用教程

一、VBScript 簡介 VBScript(Visual Basic Scripting Edition)是微軟推出的一種輕量級腳本語言,語法類似于 Visual Basic,廣泛應用于系統管理、自動化腳本、網頁客戶端(IE 專屬)以及 Windows 批處理等場景…

RSTP 拓撲收斂機制

RSTP拓撲收斂觸發條件 RSTP中檢測到拓撲變化只有一個標準:以一個非邊緣端口遷移到Forwarding狀態 收斂過程 為本交換設備的所有非邊緣指定端口和根端口啟動TC While Timer,該計時器是Hello Time(默認2s)的兩倍,然后…

支持向量機(SVM)分類

支持向量機(Support Vector Machine,SVM)是一種經典的監督學習算法,主要用于分類任務,也可擴展到回歸問題(稱為支持向量回歸,SVR)。其核心思想是通過尋找一個最優超平面,…

Linux操作系統從入門到精通!第二天(命令行)

一、Linux的命令行 1.Linux介紹:剛出世的時候,沒有什么節目,所有的操作都是靠命令行來執行,后來Linux發展迅速,也出現了圖形界面,但是由于命令行的執行速度比圖形界面塊,所以也得到了…

使用Go高效對接印度金融市場數據:K線、新股與實時行情開發指南

使用Go高效對接印度金融市場數據:K線、新股與實時行情開發指南 印度國家交易所(NSE)日均交易額超79億美元,孟買交易所(BSE)覆蓋上市公司超5000家,雙交易所體系為投資者提供了豐富機會。本文基于…

【計算機網絡】補充

僅供參考 如果本地域名服務器無緩存,當采用遞歸方法解析另一網絡某主機域名時,用戶主機和本地域名服務器發送的域名請求條數分別為() A.1條 1條 B.1條 多條 C.多條 1條 D.多條 多條 A CSMA/CD的中文含義是(&#x…

最新PDF轉markdown軟件MonkeyOCR整合包,文檔圖片解析工具

MonkeyOCR是上個月剛發布的一款文檔解析工具,可以將PDF文檔或圖片識別轉換為markdown格式文件。官方測試顯示性能極佳。我基于當前最新版制作了免安裝一鍵啟動整合包,支持批量操作,并降低了顯卡要求。 MonkeyOCR官方介紹 MonkeyOCR 采用結構…