日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Servlet——Tomcat,初學(xué)Servlet程序-創(chuàng)新互聯(lián)
JavaEE傳送門

JavaEE

創(chuàng)新互聯(lián)建站長期為上1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為閩侯企業(yè)提供專業(yè)的網(wǎng)站制作、成都做網(wǎng)站,閩侯網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

HTTP —— HTTP 響應(yīng)詳解, 構(gòu)造 HTTP 請求

HTTPS —— HTTPS的加密方式


目錄
  • Tomcat
  • Servlet
    • hello world
    • 創(chuàng)建項(xiàng)目
    • 引入 Servlet 依賴
    • 創(chuàng)建目錄結(jié)構(gòu)
    • 編寫代碼
      • doGet
    • 打包程序
    • 部署程序
    • 驗(yàn)證程序


Tomcat

Tomcat 是一個(gè) HTTP 服務(wù)器

HTTP客戶端, 就是大家平時(shí)用到的瀏覽器.

HTTP服務(wù)器, 需要開發(fā)實(shí)現(xiàn)一個(gè)服務(wù)器, 搭建網(wǎng)站的 “后端部分”.

開發(fā)實(shí)現(xiàn)一個(gè)服務(wù)器, 本質(zhì)上就是寫個(gè)TCP socket服務(wù)器. 但是比較麻煩, 有很多重復(fù)性工作.

業(yè)界就有一些大佬實(shí)現(xiàn)了一些現(xiàn)成的 HTTP 服務(wù)器, 我們進(jìn)行開發(fā)網(wǎng)站, 就不必從頭去寫了, 只需要基于這些HTTP服務(wù)器, 進(jìn)行二次開發(fā)即可.

下載Tomcat

簡單介紹

webapps 中放的是我們想要部署的網(wǎng)站

就可以把前端和后端的代碼拷貝到這個(gè)目錄中.

每個(gè)目錄都可以視為是一個(gè)webapp(網(wǎng)站)

ROOT 目錄

ROOT 目錄里放的就是歡迎頁面

啟動(dòng) Tomcat, 雙擊 startup.bat

看到這個(gè)信息, 說明啟動(dòng)成功!

如果有問題, 可以把 bat 拖到 cmd 中運(yùn)行, 查看報(bào)錯(cuò)信息是什么.

在瀏覽器上輸入127.0.0.1:8080

如果出現(xiàn)這樣的頁面, 說明Tomcat啟動(dòng)正常 (Tomcat 默認(rèn)端口: 8080)

我們寫一個(gè) .html

Document
Gujiu ! !

將其移動(dòng)到 ROOT 中

在 127.0.0.1:8080 后面加上/gujiu.html

這個(gè)頁面就是通過Tomcat這個(gè) http 服務(wù)器來獲取到的.

既然都可以雙擊本地打開, 為什么還要通過 Tomcat 折騰一下?

  • 本地打開只能訪問你自己電腦的.

  • 使用Tomcat可以通過網(wǎng)絡(luò)訪問到別人電腦的網(wǎng)頁.

# 注意事項(xiàng) #

我們?nèi)绻阉形募贾苯臃诺?ROOT 里, 就會(huì)弄得很亂, 一般我們都會(huì)新建一個(gè)文件夾.

gujiu.html放到Gujiu下. 輸入如下地址.


Servlet

Servlet 就是 Tomcat 給程序員提供的進(jìn)行二次開發(fā)的 API, 學(xué)了這些 API 就可以比較方便的寫出一個(gè)網(wǎng)站的后端程序了.

動(dòng)態(tài)頁面 vs 靜態(tài)頁面

  • 靜態(tài)頁面: 頁面的內(nèi)容, 是固定 (以文件的形式, 靜靜的躺在你的硬盤的指定目錄中).

    無論什么時(shí)候, 無論誰來訪問,得到的頁面效果, 都一樣.

  • 動(dòng)態(tài)頁面: 不是一個(gè)真實(shí)的硬盤的文件, 而是通過代碼在內(nèi)存中構(gòu)造出一個(gè) “虛擬的資源”.

    就可以根據(jù)你訪問的時(shí)間的不同, 訪問的人的不同, 訪問時(shí)帶有的參數(shù)不同, 就可以構(gòu)造出不同的頁面來了.

  • 靜態(tài)頁面部分拷貝到webapps里就行; 動(dòng)態(tài)頁面就需要基于servlet.


hello world

寫一個(gè)Servlethello world

  1. 創(chuàng)建項(xiàng)目
  2. 引入 Servlet 依賴
  3. 創(chuàng)建,目錄結(jié)構(gòu)
  4. 編寫代碼
  5. 打包程序
  6. 部署程序
  7. 驗(yàn)證程序

這里和 JDBC 差不多, 都是固定套路


創(chuàng)建項(xiàng)目

創(chuàng)建一個(gè)maven項(xiàng)目

目錄結(jié)構(gòu)

小知識(shí):

maven 是一個(gè)構(gòu)建工具 (build,包括不限于: 編譯, 打包, 部署)

#之前寫代碼,都是直接在 idea 中, 點(diǎn)擊main方法前的 三角號, 就自動(dòng)編譯程序

#這種方式針對一些比較簡單的程序還好, 如果是一些更復(fù)雜的程序, 尤其是有多個(gè)模塊, 并且互相依賴. 這時(shí)我們直接點(diǎn)運(yùn)行就沒有那么容易了.

比如 A 依賴 B, B 依賴 C.

此時(shí)你要想編譯運(yùn)行 A, 就必須先編譯運(yùn)行 B, 要想編譯運(yùn)行 B, 就需要先編譯運(yùn)行 C.

#構(gòu)建工具, 就是為了解決這個(gè)問題, 使我們在開發(fā)比較復(fù)雜的項(xiàng)目的時(shí)候, 也可以比較方便的進(jìn)行編譯和打包操作

#我們這里使用 maven 主要就是借助maven進(jìn)行編譯, 打包, 管理依賴…


引入 Servlet 依賴

Servlet不是 Java 標(biāo)準(zhǔn)庫自帶的, 要想使用, 就需要額外的下載安裝, 并引入到項(xiàng)目中.

maven的一個(gè)核心功能, 就是能夠自動(dòng)的管理依賴, 就會(huì)把咱們使用的庫中依賴的東西, 自動(dòng)從中央倉庫中下載下來

中央倉庫鏈接

選擇3.1.0版本.

# 注意 #servlet 3.1.0 和 Tomcat 8.5 和 jdk 8 是配套的.

選擇 maven 把 maven 中的這段內(nèi)容復(fù)制出來, 然后粘貼到pom.xml

復(fù)制的內(nèi)容, 粘貼到\這個(gè)標(biāo)簽中

javax.servletjavax.servlet-api3.1.0provided

# 注意事項(xiàng) #

拷貝過來, 可能是標(biāo)紅的.

當(dāng)我們把他拷貝過來,idea就會(huì)自動(dòng)根據(jù)你這里寫的內(nèi)容, 從中央倉庫上下載依賴.

在這個(gè)依賴下載好之前, 這里都是標(biāo)紅的, 在下載過程中, 我們需要耐心等待.

如果等了很久, 還是標(biāo)紅的, 就可以嘗試手動(dòng)刷新一下. (在 idea 的最右側(cè)邊邊上, 有一個(gè) maven, 鼠標(biāo)點(diǎn)擊 maven )


創(chuàng)建目錄結(jié)構(gòu)

雖然maven已經(jīng)給我們創(chuàng)建出了一些目錄了, 但是還不夠

我們需要搞得是一個(gè) 符合 Tomcat 要求的目錄結(jié)果

我們還需要再web.xml中填入下面這段代碼

Archetype Created Web Application

# 注意事項(xiàng) #

webapp 目錄就是未來部署到 Tomcat 中的一個(gè)重要的目錄. 當(dāng)前我們可以往 webapp 中放一些靜態(tài)資源, 比如 html , css 等.

在這個(gè)目錄中還有一個(gè)重要的文件 web.xml. Tomcat 找到這個(gè)文件才能正確處理 webapp 中的動(dòng)態(tài)資源.

這里的作用: 驗(yàn)證 + 補(bǔ)全

這里標(biāo)紅, 只是影響到 idea 對于 web.xml 的驗(yàn)證和補(bǔ)全

可以alt + enter使其不再標(biāo)紅.


編寫代碼

#要把代碼放到 java 目錄下, 我們創(chuàng)建一個(gè)helloServlet

#我們先要extends HttpServlet這個(gè)類, 但是這里有時(shí)會(huì)標(biāo)紅.

這個(gè)類來自于, 剛才通過 maven 下載的那個(gè)servletjar包. 報(bào)紅的原因可能有:

  1. 之前下載的有問題
  2. 沒有正確的導(dǎo)入到

解決方法: 點(diǎn)擊刷新按鈕嘗試

doGet

#重寫doGet方法

public class helloServlet extends HttpServlet {@Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//注意, 自動(dòng)生成的這個(gè)調(diào)用父類方法的代碼, 一定一定要注釋掉, 不然會(huì)出問題!!
        //super.doGet(req, resp);
    }
}

doGet 方法 就是HttpServlet父類里已經(jīng)包含的方法了, 此處是需要 Overide 父類的方法

doGet表示: 當(dāng)前 Tomcat 在收到某些GET請求的時(shí)候, 會(huì)調(diào)用這個(gè) doGet 方法.

此處doGet做的工作, 就是 “根據(jù)請求, 計(jì)算響應(yīng)”.

doGet 就需要根據(jù) req 里的一些數(shù)據(jù) + 業(yè)務(wù)邏輯構(gòu)造生成一個(gè)完整的 resp 對象.

再進(jìn)一步,tomcat就把 resp 對象轉(zhuǎn)成一個(gè) HTTP 響應(yīng)報(bào)文.

典型的服務(wù)器要做三件事:

  1. 讀取請求并解析
  2. 根據(jù)請求計(jì)算響應(yīng)
  3. 把響應(yīng)結(jié)果返回給客戶端

1 和 3 都是固定的套路, 2 則是我們需要實(shí)現(xiàn)的業(yè)務(wù)邏輯 (可能比較簡單, 也可能非常復(fù)雜)

#編寫如下代碼

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {@Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 注意, 自動(dòng)生成的這個(gè)調(diào)用父類方法的代碼, 一定一定要注釋掉或刪掉
        // super.doGet(req, resp);

        // 是 Tomcat 這邊打印這個(gè)日志
        System.out.println("hello");
        // 還可以給客戶端返回這個(gè) hello
        resp.getWriter().write("hello");
    }
}

當(dāng)我們發(fā)送的請求是GET路徑是/hello.此時(shí) Tomcat 才會(huì)調(diào)用到這里的 doGet 方法.

Tomcat 可以讓你關(guān)聯(lián)上很多路徑.

可以給請求中的不同路徑, 關(guān)聯(lián)上不同的類, 也就是執(zhí)行了不同的方法了.

小知識(shí):

/hello 其實(shí)就是一個(gè) “虛擬的資源”.

硬盤上目錄中是沒有這個(gè) /hello 文件,瀏覽器訪問這個(gè)路徑的資源, 就通過 servlet 代碼, 直接返回了一個(gè) hello 字符串.


打包程序

當(dāng)前寫的 Servlet 代碼, 沒有 main 方法. 我們要想程序運(yùn)行, 就需要 打包 + 部署程序.

單擊右側(cè)的 maven, 雙擊package打包.

打包:

  1. 把缺失的依賴給下載好
  2. 然后編譯所有 .java 文件得到一堆 .class 文件
  3. 再把這些 .class 給打包到一個(gè)壓縮包中

當(dāng)我們看到BUILD SUCCESS這個(gè)提示, 就是打包成功了.

這時(shí)我們可以看到這里多了一個(gè) .jar 文件.

# 注意事項(xiàng) #

雖然我們打出來 jar 包, 但是Tomcat不認(rèn)! !

Tomcat 要求的壓縮包格式, 是 war 包

最主要的區(qū)別, war 包, 會(huì)把整個(gè) webapp 目錄都給打進(jìn)去, 包括web.xml,以及未來放的一些靜態(tài)html, css ...

這時(shí)我們需要修改 pom.xml , 在中寫入這樣一段代碼:

war// war 包的名字helloServlet

這時(shí)再次雙擊package, 打包完畢后, 我們再看左側(cè), 多了一個(gè)helloServlet.war文件

在這里插入圖片描述


部署程序

war包, 拷貝到 Tomcat 的webapps中.

重新啟動(dòng)Tomcat服務(wù)器. Tomcat 就會(huì)加載這里的war包.

我們看到這里多了一個(gè)helloServlet文件. 加載操作就是把這個(gè) war 解壓縮成目錄了.


驗(yàn)證程序

通過瀏覽器, 構(gòu)造一個(gè)HTTP 請求, 訪問 Tomcat 服務(wù)器.

我們打開一個(gè)瀏覽器, 在地址欄上輸入http://127.0.0.1:8080/helloServlet/hello

此時(shí)在瀏覽器的頁面上, 和 Tomcat 日志中, 都出現(xiàn)了 hello 這個(gè)字符串.

  • 第一級目錄來指定 webapps 中的目錄
  • 第二級目錄來指定 第一級目錄下的文件

瀏覽器發(fā)送一個(gè) HTTP 請求給 Tomcat 服務(wù)器. (GET /helloServlet/hello)

Tomcat服務(wù)器就會(huì)解析請求

  1. 獲取到 URL 中的第一級路徑,/helloServlet確定一個(gè)webapp

  2. Tomcat 找到 helloServlet 目錄之后, 就會(huì)加載里面的類, 尤其是重點(diǎn)去識(shí)別出@WebServlet注解修飾的類

    就會(huì)取出 URL 中的第二級路徑/hello.

    然后就在 @WebServlet 注釋中, 找到名字為 /hello 的類.

    找到類之后, 創(chuàng)建實(shí)例 (只會(huì)創(chuàng)建一次. 如果之前創(chuàng)建過了, 就直接復(fù)用上次的實(shí)例)

  3. 再解析出 HTTP 請求的方法 “GET”, 取出 GET 之后, 就可以根據(jù) HTTP 方法來調(diào)用對應(yīng)的 servlet 中的方法:

    GET請求就調(diào)用 doGet 方法

    POST請求就調(diào)用 doPost 方法

    PUT請求就調(diào)用 doPut 方法

    DELETE請求就調(diào)用 doDelete 方法 …

    同時(shí) Tomcat 還會(huì)構(gòu)造出HttpServletRequest對象和HttpServletResponse對象


🌷(( ???д??)???(??д??? ))🌷

以上就是今天要講的內(nèi)容了,希望對大家有所幫助,如果有問題歡迎評論指出,會(huì)積極改正!!

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

這里是Gujiu吖??!感謝你看到這里🌬
祝今天的你也
開心滿懷,笑容常在。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧


當(dāng)前名稱:Servlet——Tomcat,初學(xué)Servlet程序-創(chuàng)新互聯(lián)
URL標(biāo)題:http://www.dlmjj.cn/article/cedsee.html