Java Web 筆記(1)


JavaWeb

學習筆記,狂神說java,鏈接:https://www.bilibili.com/video/av68833391

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:網關錯誤


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM