Java Web 筆記(1)

来源:https://www.cnblogs.com/xjtu-lyh/archive/2020/02/17/12324000.html
-Advertisement-
Play Games

JavaWeb Java Web 1、基本概念 1.1、前言 web開發: web,網頁的意思 , www.baidu.com 靜態web html,css 提供給所有人看的數據始終不會發生變化! 動態web 淘寶,幾乎是所有的網站; 提供給所有人看的數據始終會發生變化,每個人在不同的時間,不同的地 ...


JavaWeb

Java Web

1、基本概念

1.1、前言

web開發:

  • web,網頁的意思 , www.baidu.com
  • 靜態web
    • html,css
    • 提供給所有人看的數據始終不會發生變化!
  • 動態web
    • 淘寶,幾乎是所有的網站;
    • 提供給所有人看的數據始終會發生變化,每個人在不同的時間,不同的地點看到的信息各不相同!
    • 技術棧:Servlet/JSP,ASP,PHP

在Java中,動態web資源開發的技術統稱為JavaWeb;

1.2、web應用程式

web應用程式:可以提供瀏覽器訪問的程式;

  • a.html、b.html......多個web資源,這些web資源可以被外界訪問,對外界提供服務;
  • 你們能訪問到的任何一個頁面或者資源,都存在於這個世界的某一個角落的電腦上。
  • URL
  • 這個統一的web資源會被放在同一個文件夾下,web應用程式-->Tomcat:伺服器
  • 一個web應用由多部分組成 (靜態web,動態web)
    • html,css,js
    • jsp,servlet
    • Java程式
    • jar包
    • 配置文件 (Properties)

web應用程式編寫完畢後,若想提供給外界訪問:需要一個伺服器來統一管理;

1.3、靜態web

  • .htm, .html,這些都是網頁的尾碼,如果伺服器上一直存在這些東西,我們就可以直接進行讀取。通絡;

  • 靜態web存在的缺點
    • Web頁面無法動態更新,所有用戶看到都是同一個頁面
      • 輪播圖,點擊特效:偽動態
      • JavaScript [實際開發中,它用的最多]
      • VBScript
    • 它無法和資料庫交互(數據無法持久化,用戶無法交互)

1.4、動態web

頁面會動態展示: “Web的頁面展示的效果因人而異”;

缺點:

  • 加入伺服器的動態web資源出現了錯誤,我們需要重新編寫我們的後臺程式,重新發佈;
    • 停機維護

優點:

  • Web頁面可以動態更新,所有用戶看到都不是同一個頁面
  • 它可以與資料庫交互 (數據持久化:註冊,商品信息,用戶信息........)

新手村:--魔鬼訓練(分析原理,看源碼)--> PK場

2、web伺服器

2.1、技術講解

ASP:

  • 微軟:國內最早流行的就是ASP;

  • 在HTML中嵌入了VB的腳本, ASP + COM;

  • 在ASP開發中,基本一個頁面都有幾千行的業務代碼,頁面極其換亂

  • 維護成本高!

  • C#

  • IIS

    <h1>
        <h1><h1>
            <h1>
                <h1>
                    <h1>
            <h1>
                <%
                System.out.println("hello")
                %>
                <h1>
                    <h1>
       <h1><h1>
    <h1>

php:

  • PHP開發速度很快,功能很強大,跨平臺,代碼很簡單 (70% , WP)
  • 無法承載大訪問量的情況(局限性)

JSP/Servlet :

B/S:瀏覽和伺服器

C/S: 客戶端和伺服器

  • sun公司主推的B/S架構
  • 基於Java語言的 (所有的大公司,或者一些開源的組件,都是用Java寫的)
  • 可以承載三高問題帶來的影響;
  • 語法像ASP , ASP-->JSP , 加強市場強度;

.....

2.2、web伺服器

伺服器是一種被動的操作,用來處理用戶的一些請求和給用戶一些響應信息;

IIS

微軟的; ASP...,Windows中自帶的

Tomcat

面向百度編程;

Tomcat是Apache 軟體基金會(Apache Software Foundation)的Jakarta 項目中的一個核心項目,最新的Servlet 和JSP 規範總是能在Tomcat 中得到體現,因為Tomcat 技術先進、性能穩定,而且免費,因而深受Java 愛好者的喜愛並得到了部分軟體開發商的認可,成為目前比較流行的Web 應用伺服器。

Tomcat 伺服器是一個免費的開放源代碼的Web 應用伺服器,屬於輕量級應用伺服器,在中小型系統和併發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP 程式的首選。對於一個Java初學web的人來說,它是最佳的選擇

Tomcat 實際上運行JSP 頁面和Servlet。Tomcat最新版本為9.0。

....

工作3-5年之後,可以嘗試手寫Tomcat伺服器;

下載tomcat:

  1. 安裝 or 解壓
  2. 瞭解配置文件及目錄結構
  3. 這個東西的作用

3、Tomcat

3.1、 安裝tomcat

tomcat官網:http://tomcat.apache.org/

3.2、Tomcat啟動和配置

文件夾作用:

啟動。關閉Tomcat

訪問測試:http://localhost:8080/

可能遇到的問題:

  1. Java環境變數沒有配置
  2. 閃退問題:需要配置相容性
  3. 亂碼問題:配置文件中設置

3.3、配置

可以配置啟動的埠號

  • tomcat的預設埠號為:8080
  • mysql:3306
  • http:80
  • https:443
<Connector port="8081" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />

可以配置主機的名稱

  • 預設的主機名為:localhost->127.0.0.1
  • 預設網站應用存放的位置為:webapps
  <Host name="www.qinjiang.com"  appBase="webapps"
        unpackWARs="true" autoDeploy="true">

高難度面試題:

請你談談網站是如何進行訪問的!

  1. 輸入一個功能變數名稱;回車

  2. 檢查本機的 C:\Windows\System32\drivers\etc\hosts配置文件下有沒有這個功能變數名稱映射;

    1. 有:直接返回對應的ip地址,這個地址中,有我們需要訪問的web程式,可以直接訪問

      127.0.0.1       www.qinjiang.com
    2. 沒有:去DNS伺服器找,找到的話就返回,找不到就返回找不到;

  1. 可以配置一下環境變數(可選性)

3.4、發佈一個web網站

不會就先模仿

  • 將自己寫的網站,放到伺服器(Tomcat)中指定的web應用的文件夾(webapps)下,就可以訪問了

網站應該有的結構

--webapps :Tomcat伺服器的web目錄
    -ROOT
    -kuangstudy :網站的目錄名
        - WEB-INF
            -classes : java程式
            -lib:web應用所依賴的jar包
            -web.xml :網站配置文件
        - index.html 預設的首頁
        - static 
            -css
                -style.css
            -js
            -img
         -.....

HTTP協議 : 面試

Maven:構建工具

  • Maven安裝包

Servlet 入門

  • HelloWorld!
  • Servlet配置
  • 原理

4、Http

4.1、什麼是HTTP

HTTP(超文本傳輸協議)是一個簡單的請求-響應協議,它通常運行在TCP之上。

  • 文本:html,字元串,~ ….
  • 超文本:圖片,音樂,視頻,定位,地圖…….
  • 80

Https:安全的

  • 443

4.2、兩個時代

  • http1.0

    • HTTP/1.0:客戶端可以與web伺服器連接後,只能獲得一個web資源,斷開連接
  • http2.0

    • HTTP/1.1:客戶端可以與web伺服器連接後,可以獲得多個web資源。‘

4.3、Http請求

  • 客戶端---發請求(Request)---伺服器

百度:

Request URL:https://www.baidu.com/   請求地址
Request Method:GET    get方法/post方法
Status Code:200 OK    狀態碼:200
Remote(遠程) Address:14.215.177.39:443
Accept:text/html  
Accept-Encoding:gzip, deflate, br
Accept-Language:zh-CN,zh;q=0.9    語言
Cache-Control:max-age=0
Connection:keep-alive

1、請求行

  • 請求行中的請求方式:GET
  • 請求方式:Get,Post,HEAD,DELETE,PUT,TRACT…
    • get:請求能夠攜帶的參數比較少,大小有限制,會在瀏覽器的URL地址欄顯示數據內容,不安全,但高效
    • post:請求能夠攜帶的參數沒有限制,大小沒有限制,不會在瀏覽器的URL地址欄顯示數據內容,安全,但不高效。

2、消息頭

Accept:告訴瀏覽器,它所支持的數據類型
Accept-Encoding:支持哪種編碼格式  GBK   UTF-8   GB2312  ISO8859-1
Accept-Language:告訴瀏覽器,它的語言環境
Cache-Control:緩存控制
Connection:告訴瀏覽器,請求完成是斷開還是保持連接
HOST:主機..../.

4.4、Http響應

  • 伺服器---響應-----客戶端

百度:

Cache-Control:private    緩存控制
Connection:Keep-Alive    連接
Content-Encoding:gzip    編碼
Content-Type:text/html   類型

1.響應體

Accept:告訴瀏覽器,它所支持的數據類型
Accept-Encoding:支持哪種編碼格式  GBK   UTF-8   GB2312  ISO8859-1
Accept-Language:告訴瀏覽器,它的語言環境
Cache-Control:緩存控制
Connection:告訴瀏覽器,請求完成是斷開還是保持連接
HOST:主機..../.
Refresh:告訴客戶端,多久刷新一次;
Location:讓網頁重新定位;

2、響應狀態碼

200:請求響應成功 200

3xx:請求重定向

  • 重定向:你重新到我給你新位置去;

4xx:找不到資源 404

  • 資源不存在;

5xx:伺服器代碼錯誤 500 502:網關錯誤


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

-Advertisement-
Play Games
更多相關文章
  • 準備 1、官⽹地址:http://tomcat.apache.org下載。 2、解壓文件,並放到指定路徑,給該文件授權。 3、啟動和停止 Tomcat部署Java項目的3種方式: 部署方式1: 生成war包= webapps = 執行tomcat idea打包成war https://blog.cs ...
  • 一、JS加密 1.有的反爬蟲策略採用js對需要傳輸的數據進行加密處理。 2.經過加密,傳輸的就是密文 3.加密函數或者過程一定是在瀏覽器完成,也就是一定會把代碼(js代碼)暴露給使用者 4.通多閱讀加密演算法,就可以模擬出加密過程,從而達到破解。 5.舉一個案例 """ 破解有道詞典 """ from ...
  • 下麵的代碼主要用於使用python語言調用NASA官方的MODIS處理工具HEG進行投影坐標轉換與重採樣批量處理 主要參考 1. HEG的用戶手冊:https://newsroom.gsfc.nasa.gov/sdptoolkit/HEG/HEG215/EED2 TP 030_Rev01_HEG_U ...
  • 內部類的訪問規則 + 內部類可以直接訪問外部類中的成員,包括私有成員。 因為內部類中持有了一個外部類的引用,格式為:外部類名.this + 外部類要訪問內部類,必須要建立內部對象。 運行結果: 訪問 1. 當內部類定義在外部類的成員位置上,而且非私有,可以在外部其他類中直接建立內部類對象。 格式: ...
  • 消費者和消費者組 如何創建消費者 如何消費消息 消費者配置 提交和偏移量 再均衡 結束消費 ...
  • 一、正面回答 潛移默化中改變 二、日常成長 關心造輪子和用輪子,對於程式員而言,任何一件需要重覆做兩次的事情,就可以考慮通過寫程式把它自動化處理,所以程式員們不太能夠忍受重覆性高的工作。以Java為例,先後有ssh、ssm、spring boot、spring cloud、dubbo等,相關的一些任 ...
  • 1、什麼是樹? 什麼是樹?就是又數據組成的一種數據結構,按照平面展示出來就像一顆倒過來的樹。 2、樹的基本概念 1、樹的節點稱呼:節點、根節點(只有一個,就是第一個)、父節點、子節點、兄弟節點(兄弟節點只能是從同一個父節點的才能稱之為兄弟節點)。 2、一顆樹可以沒有任何節點,稱之為空樹。 3、一棵樹 ...
  • user 資料庫用戶名,用於連接資料庫……轉載自https://blog.csdn.net/wfanking/article/details/95504879 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...