国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【JavaEE初階】Tomcat安裝與使用及初識Servlet

這篇具有很好參考價值的文章主要介紹了【JavaEE初階】Tomcat安裝與使用及初識Servlet。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1. Tomcat的安裝與使用

1.1 Tomcat安裝

在瀏覽器中搜索Tomcat,打開官方網頁.Tomcat官網
【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
點擊下載Tomcat8.
【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
點擊下載壓縮包.
【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
下載好后解壓縮.
解壓縮后得到的目錄:
【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
下面對上述關鍵文件做部分解釋:

  • bin:可執(zhí)行的程序/腳本.啟動Tomcat就在這里.
  • conf:配置,用xml格式表示服務器的配置,比如像修改tomcat的綁定的端口號就需要修改這里的內容.
  • lib:tomcat依賴的一些庫.(暫時不考慮)
  • logs(重要):日志,tomcat運行的日志都在這里.如果程序出問題了,如何排查?就看這個日志.
  • webapps:每個webapp都是一個"網站",一個tomcat上可以部署多個網站,此處就叫做"webapps". 這里包含很多目錄,每個目錄都視為一個獨立的網站,后面我們所學習的代碼也是部署到這個webapps里的.

1.2 Tomcat的啟動

Tomcat的啟動:
【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
啟動后,我們可以看到:
【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
Server startup in xxx ms即為啟動成功.

1.3 Tomcat部署前端頁面

新建網頁標簽頁,輸入127.0.0.1:8080進入Tomcat歡迎頁面.(此時Tomcat必須處于運行狀態(tài))
【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
8080是Tomcat默認的端口號.就像MySQL的默認端口號是3306一樣.
接下來我們嘗試在Tomcat中部署前端代碼:
以我們前面學習過的博客系統(tǒng)代碼為例:
將blog系統(tǒng)拷貝至webapps這個文件夾中(部署):
【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
在導航欄中輸入http://127.0.0.1:8080/blog/blog_list.html通過網絡來訪問.
第一級路徑(blog),也起了個名字,叫做application path/context path
【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
這個頁面和之前的不同,這個是通過網絡來訪問的.而之前的頁面則是通過文件路徑來訪問的.
【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
通過網絡訪問可以跨主機訪問,通過路徑只可以訪問自己主機上的頁面.

2. Servlet

2.1 Servlet是什么

Servlet: 是一種實現(xiàn)動態(tài)頁面的技術.是Tomcat給java提供的原生的進行web開發(fā)的api.
網頁分為兩類:
靜態(tài)頁面:頁面內容始終是固定不變的.(百度主頁)
【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
動態(tài)頁面:頁面內容隨著輸入參數(shù)不同而改變.(百度結構頁)
【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet

2.2 第一個Servlet程序

我們先寫一個hello world程序:預期寫一個Servlet程序 部署到Tomcat上,通過瀏覽器訪問,得到hello world字符串.

一共有七個步驟:

  1. 創(chuàng)建項目
  2. 引入依賴
  3. 創(chuàng)建目錄結構
  4. 編寫代碼
  5. 打包程序
  6. 部署程序
  7. 驗證
  1. 創(chuàng)建項目
    此處需要創(chuàng)建一個maven項目.

maven是個"工程管理"工具.它可以:

  1. 規(guī)范目錄結構
  2. 管理依賴
  3. 構建
  4. 打包
  5. 測試

打開idea:
【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
注意:首次使用maven,項目創(chuàng)建好之后,會在下面讀條,從中央倉庫加載一些maven的依賴.時間較久.
【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
注意此處的目錄:
【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
2. 引入依賴
打開maven中央倉庫,搜索Servlet.
【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
此處選擇3.1.0版本.
【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
拷貝maven代碼至pom.xml中.
【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
注意添加 標簽!如果有多個依賴,都往里面拷貝即可.
【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
如果長時間標紅,刷新:
【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
3. 創(chuàng)建目錄結構
雖然maven已經幫我們自動創(chuàng)建了一些目錄,但是還不夠.此處是需要使用maven開發(fā)一個web程序,還需要別的目錄.
(1) 在main目錄下,創(chuàng)建一個webapp目錄
(2)在webapp下創(chuàng)建一個WEB-INF目錄
(3)在WEB-INF下創(chuàng)建一個web.xml文件
【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
(4)給web.xml中寫以下代碼進去.

<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
</web-app>

【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
我們寫的Servlet程序就相當于是車廂.Tomcat相當于是車頭.我們把寫好的Servlet程序放到webapps 目錄下,就相當于把車廂掛到車頭上.Tomcat如何識別webapps目錄下哪些是需要拉著跑的車廂,哪些不是. 就需要靠我們復制粘貼的代碼來識別.(WEN-INF/web.xml).
相當于投名狀.

  1. 編寫代碼
    【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet

(1)HttpServlet 是Servlet api里提供的現(xiàn)成的類.寫Servlet代碼一般都是繼承這個HttpServlet.
(2)重寫doGet方法

【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
我們寫的doGet方法,不需要我們手動調用,而是交給Tomcat來調用.Tomcat收到get請求,就會觸發(fā)doGet方法.Tomcat會構造好兩個參數(shù),reqresp. 其中req就是TCP socket 中讀出來的字符串,按照HTTP協(xié)議解析得到的對象. 其中resp是個空對象(程序猿在doGet,根據請求req,結合業(yè)務邏輯構造出resp) resp是輸出型參數(shù).
doGet:根據請求計算響應.
super.doGet();父類的這個方法只是返回一個錯誤頁面,需要刪掉.

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

//注解是java中特殊的類,Java專門定義了一種"語法糖"來實現(xiàn)注解
//注解的作用,針對一個類/方法,進行額外的"解釋說明"
//賦予了這個類.方法額外的功能/含義
//Tomcat實現(xiàn)的
//此處 @WebServlet("/hello") 的作用是:
//把當前的類,和一個HTTP請求的路徑關聯(lián)起來
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //在服務器的控制臺里打印
        System.out.println("hello world");
        //將helloworld返回到客戶端.
        //getWriter()會創(chuàng)建一個 write 對象
        //此處的 write 操作其實是往resp的body部分進行寫入.
        //等resp對象整個構造好了,tomcat會統(tǒng)一轉成 HTTP 相應的格式再寫 socket
        resp.getWriter().write("hello world");
    }
}

doGet 是 Tomcat 收到Get 請求的時候就會調用,具體要不要低啊用doGet,還得看當前GET請求的路徑是什么.不同的路徑可以觸發(fā)不同的代碼.(關聯(lián)到不同的類上)
一個Servlet程序中,可以有很多Servlet類,每個Servlet類都可以關聯(lián)到不同的路徑(對應到不同的資源).因此此處的多個Servlet就實現(xiàn)了不同的功能.

  1. 打包程序
    把程序編譯好,得到一些.class文件,再將這些.class打成壓縮包.
    jar包就是.class構成的壓縮包,但是此處要打war包.jar包只是一個普通的java程序.而war包是tomcat專屬的來描述webapp的程序.一個war包就是一個webapp.
    【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
    雙擊package打包:
    【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
    默認情況下maven打的是jar包,需要微調代碼:
    【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
    重新打包:
    【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
  2. 部署程序
    把打包好的war拷貝到tomcatwebapps中即可.
    啟動Tomcat.
    【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
  3. 驗證
    在地址欄中輸入:http://127.0.0.1:8080/hello_servlet/hello
    【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet

小結:在瀏覽器中輸入url之后,瀏覽器就構造了一個對應的HTTP GET請求,發(fā)送給tomcat. tomcat就根據第一級路徑,確定了具體的webapp,根據第二級路徑,確定了調用哪個類. 再然后通過GET/POSE方法確定調用HelloServlet的哪個方法(doGET,doPost)

在上述過程中,5打包,6部署程序兩個過程可以使用IDEA的Tomcat插件把Tomcat 集成到IDEA中.就省去了我們手動打包的過程.手動部署的過程,只需要按一下運行,就可以自動打包部署.

基于tomcat插件自動打包部署,適用于開發(fā)階段,頻繁修改代碼驗證. 手動打包部署,適用于上線階段,發(fā)布程序.

使用tomcat插件:
插件:功能的擴展.IDEA提供了一些API,可以讓程序員開發(fā)插件,對IDEA現(xiàn)有功能進行擴展.

【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
首次使用smart tomcat需要配置一下.
【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
設置tomcat所在路徑
【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
但是我們可以看到,啟動失敗了.
【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
8080端口被占用.可以打開cmd輸入以下:可以看到
【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet

此時我們只需要關閉Tomcat即可.
【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
重新啟動成功.
【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet

smart tomcat工作原理:
不是自動拷貝war包(webapps中不變),是通過另一種方式來啟動tomcat的.tomcat支持啟動的時候顯示指定一個特定的webapp目錄,相當于是讓tomcat 加載單個的webapp運行.
【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
IDEA直接調用tomcat,讓tomcat加載當前項目中的目錄.

http://127.0.0.1:8080/后面跟的是context path
如果是直接拷貝war包的方式部署,context path就是war包名(目錄名)
如果是smart tomcat的方式部署,此時這里是可以配置的.默認是項目名.

這兩種部署,其實是兩種tomcat的運行方式,對于context path的理解不同,在使用時需要特別注意.

2.3 常見錯誤

  1. 常見錯誤1: 404
    404 表示用戶訪問的資源不存在, 大概率是 URL 的路徑寫的不正確.
    【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
    或者是你的webapp沒有正確被部署: web.xml 寫錯了, 文件名錯了, 文件路徑錯了, 文件位置錯了…
  2. 常見錯誤2: 405
    405 表示對應的 HTTP 請求方法沒有實現(xiàn), 比如我們在瀏覽器發(fā)了個GET請求, 但是代碼里沒寫doGet, 此時就會出現(xiàn)405.
    【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
    還有可能就是重寫的方法中沒有去掉默認調用的父類方法, 如super.doGet
    【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
  3. 常見錯誤3:500
    往往是Servlet代碼中拋出異常導致的, 這個問題最好解決, 因為500的時候頁面日志中會明確告訴你異常調用棧, 告訴你是哪一行代碼出的異常
    比如我們給代碼來一個空指針異常.
    【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet

【JavaEE初階】Tomcat安裝與使用及初識Servlet,JavaEE初階,java-ee,tomcat,servlet
4. 常見錯誤4: 出現(xiàn)空白頁面
方法中邏輯沒有寫類似resp.getWriter().write()這樣的代碼文章來源地址http://www.zghlxwxcb.cn/news/detail-613761.html

  1. 常見錯誤5: 頁面無法訪問
    最常見的原因就是Tomcat沒有啟動或者崩潰, 我們把Tomcat關了, 就會出現(xiàn)頁面無法訪問的情況, Tomcat無法啟動, 很可能是端口沖突了.

到了這里,關于【JavaEE初階】Tomcat安裝與使用及初識Servlet的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【JavaEE初階】Servlet (三)MessageWall

    【JavaEE初階】Servlet (三)MessageWall

    在我們之前博客中寫到的留言墻頁面,有很嚴重的問題:(留言墻博客) 如果刷新頁面/關閉頁面重開,之前輸入的消息就不見了. 如果一個機器上輸入了數(shù)據,第二個機器上是看不到的. 針對以上問題,我們的解決思如如下: 讓服務器來存儲用戶提交的數(shù)據,由服務器保存. 當有新的瀏覽

    2024年02月14日
    瀏覽(22)
  • 【JavaEE初階】——第七節(jié).Servlet入門學習筆記

    【JavaEE初階】——第七節(jié).Servlet入門學習筆記

    作者簡介:大家好,我是未央; 博客首頁: 未央.303 系列專欄:JavaEE進階 每日一句:人的一生,可以有所作為的時機只有一次,那就是現(xiàn)在?。?! 文章目錄 前言 一、前置知識:Maven 1.1???初識Maven 1.2 ??Maven的使用 ?二、Servlet 第一個Servlet程序:hello world 方法步驟: 2.1 創(chuàng)

    2024年02月15日
    瀏覽(23)
  • [JAVAee]Tomcat - Servlet

    [JAVAee]Tomcat - Servlet

    目錄 Tomcat Servlet的工作 創(chuàng)建Servlet ①項目 ②依賴? ③目錄? ④代碼 ⑤打包 ⑥部署 ⑦驗證 Servlet的運行原理 Servlet API HttpServlet 方法 處理Get/POST請求? HttpServletRequest 方法 獲取請求中的信息? 獲取GET請求中的參數(shù) 獲取POST請求中的參數(shù) FORM表格形式 JSON形式 方法一: 方法二: Http

    2024年02月12日
    瀏覽(48)
  • 初識網絡(JavaEE初階系列9)

    初識網絡(JavaEE初階系列9)

    目錄 前言: 1.網絡的發(fā)展史 1.1獨立模式 1.2網絡互聯(lián) 1.3局域網LAN 1.4廣域網WAN 2.網絡通信基礎 2.1IP地址 2.2端口號 3.認識協(xié)議 3.1協(xié)議分層 3.2分層的作用 3.3TCP/IP五層(或四層)模型 3.4OSI七層模型 3.5網絡設備所在分層 4.封裝和分用 結束語: 網絡的主要發(fā)展大體可以分為這四個階

    2024年02月14日
    瀏覽(20)
  • 【JavaEE初階系列】——網絡初識—TCP/IP五層網絡模型

    【JavaEE初階系列】——網絡初識—TCP/IP五層網絡模型

    目錄 ??網絡的發(fā)展史 ??局域網LAN? ??廣域網WAN ??網絡通信基礎 ??IP地址 ??端口號 ??協(xié)議類型? ??五元組 ??協(xié)議分層? ??什么是協(xié)議分層 ??協(xié)議分層的好處 ??OSI七層網絡模型 ??TCP/IP五層網絡模型 ??物理層 ??數(shù)據鏈路層 ??網絡層 ??傳輸層? ??應用層 ??網絡

    2024年04月15日
    瀏覽(16)
  • Tomcat的安裝與使用,Maven與Servlet的使用

    Tomcat的安裝與使用,Maven與Servlet的使用

    Tomcat是Apache軟件基金會(Apache Software Foundation)的Jakarta項目中的一個核心項目, 由Apache, Sun和其他一些公司及個人共同開發(fā)而成, 由于有了Sun的參與和支持, 最新的Servlet和JSP規(guī)范總是能在Tomcat中得到體現(xiàn), Tomcat5支持最新的Servlet 2.4和JSP 2.0規(guī)范. 因為Tomcat技術先進, 性能穩(wěn)定, 而且免

    2024年02月08日
    瀏覽(22)
  • Tomcat的安裝與Maven依賴Servlet的使用

    Tomcat的安裝與Maven依賴Servlet的使用

    Tomcat 是一個 HTTP 服務器. 前面我們已經學習了 HTTP 協(xié)議, 知道了 HTTP 協(xié)議就是 HTTP 客戶端和 HTTP 服務器之間的交互數(shù)據的格式. 同時也通過 ajax 和 Java Socket 分別構造了 HTTP 客戶端. HTTP 服務器我們也同樣可以通過 Java Socket 來實現(xiàn). 而 Tomcat 就是基于 Java 實現(xiàn)的一個開源免費,也是

    2024年02月06日
    瀏覽(30)
  • Java后端01(初識servlet)

    添加依賴坐標(maven) ?所有請求都會固定攜帶一個參數(shù)(method)代表請求的方式(GET,POST,PUT,DELETE,OPTION) 一個post請求的全流程 瀏覽器地址欄輸入地址訪問 通過超鏈接點擊發(fā)送的請求方式 form表單的默認提交方式 ajax指定get方式發(fā)送的請求 form表單指定post方式提交 aj

    2024年02月16日
    瀏覽(31)
  • JavaEE初階:Java線程的狀態(tài)

    JavaEE初階:Java線程的狀態(tài)

    目錄 獲取當前線程引用 休眠當前線程 ?線程的狀態(tài) 1.NEW? ? ? ? ? ?? ? 2.TERMINATED? 3.RUNNABLE 4.WAITING 5.TIMED_WAITING 6.BLOCKED 多線程的意義 單線程 ?多線程 這個方法返回當前線程的引用。但是我們會對static有疑惑,這其實是一個靜態(tài)方法,更好的說法是這是一個 類方法, 調用這

    2024年02月11日
    瀏覽(24)
  • 【JavaEE初階】 認識文件與Java中操作文件

    【JavaEE初階】 認識文件與Java中操作文件

    我們先來認識狹義上的文件(file)。針對硬盤這種持久化存儲的I/O設備,當我們想要進行數(shù)據保存時,往往不是保存成一個整體,而是獨立成一個個的單位進行保存,這個獨立的單位就被抽象成文件的概念,就類似辦公桌上的一份份真實的文件一般。 文件除了有數(shù)據內容之外,

    2024年02月07日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包