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
  • 概述:在C#中,++i和i++都是自增運算符,其中++i先增加值再返回,而i++先返回值再增加。應用場景根據需求選擇,首碼適合先增後用,尾碼適合先用後增。詳細示例提供清晰的代碼演示這兩者的操作時機和實際應用。 在C#中,++i 和 i++ 都是自增運算符,但它們在操作上有細微的差異,主要體現在操作的 ...
  • 上次發佈了:Taurus.MVC 性能壓力測試(ap 壓測 和 linux 下wrk 壓測):.NET Core 版本,今天計劃準備壓測一下 .NET 版本,來測試並記錄一下 Taurus.MVC 框架在 .NET 版本的性能,以便後續持續優化改進。 為了方便對比,本文章的電腦環境和測試思路,儘量和... ...
  • .NET WebAPI作為一種構建RESTful服務的強大工具,為開發者提供了便捷的方式來定義、處理HTTP請求並返迴響應。在設計API介面時,正確地接收和解析客戶端發送的數據至關重要。.NET WebAPI提供了一系列特性,如[FromRoute]、[FromQuery]和[FromBody],用 ...
  • 原因:我之所以想做這個項目,是因為在之前查找關於C#/WPF相關資料時,我發現講解圖像濾鏡的資源非常稀缺。此外,我註意到許多現有的開源庫主要基於CPU進行圖像渲染。這種方式在處理大量圖像時,會導致CPU的渲染負擔過重。因此,我將在下文中介紹如何通過GPU渲染來有效實現圖像的各種濾鏡效果。 生成的效果 ...
  • 引言 上一章我們介紹了在xUnit單元測試中用xUnit.DependencyInject來使用依賴註入,上一章我們的Sample.Repository倉儲層有一個批量註入的介面沒有做單元測試,今天用這個示例來演示一下如何用Bogus創建模擬數據 ,和 EFCore 的種子數據生成 Bogus 的優 ...
  • 一、前言 在自己的項目中,涉及到實時心率曲線的繪製,項目上的曲線繪製,一般很難找到能直接用的第三方庫,而且有些還是定製化的功能,所以還是自己繪製比較方便。很多人一聽到自己畫就害怕,感覺很難,今天就分享一個完整的實時心率數據繪製心率曲線圖的例子;之前的博客也分享給DrawingVisual繪製曲線的方 ...
  • 如果你在自定義的 Main 方法中直接使用 App 類並啟動應用程式,但發現 App.xaml 中定義的資源沒有被正確載入,那麼問題可能在於如何正確配置 App.xaml 與你的 App 類的交互。 確保 App.xaml 文件中的 x:Class 屬性正確指向你的 App 類。這樣,當你創建 Ap ...
  • 一:背景 1. 講故事 上個月有個朋友在微信上找到我,說他們的軟體在客戶那邊隔幾天就要崩潰一次,一直都沒有找到原因,讓我幫忙看下怎麼回事,確實工控類的軟體環境複雜難搞,朋友手上有一個崩潰的dump,剛好丟給我來分析一下。 二:WinDbg分析 1. 程式為什麼會崩潰 windbg 有一個厲害之處在於 ...
  • 前言 .NET生態中有許多依賴註入容器。在大多數情況下,微軟提供的內置容器在易用性和性能方面都非常優秀。外加ASP.NET Core預設使用內置容器,使用很方便。 但是筆者在使用中一直有一個頭疼的問題:服務工廠無法提供請求的服務類型相關的信息。這在一般情況下並沒有影響,但是內置容器支持註冊開放泛型服 ...
  • 一、前言 在項目開發過程中,DataGrid是經常使用到的一個數據展示控制項,而通常表格的最後一列是作為操作列存在,比如會有編輯、刪除等功能按鈕。但WPF的原始DataGrid中,預設只支持固定左側列,這跟大家習慣性操作列放最後不符,今天就來介紹一種簡單的方式實現固定右側列。(這裡的實現方式參考的大佬 ...