Java tomcat手動配置servlet詳解

1.準備工作

如下圖,先按照要求創建好各個文件

在這裡插入圖片描述

在這裡插入圖片描述

這時候如果你覺得能運行,那就錯瞭(我一開始卡在這瞭)

idea的項目結構

在這裡插入圖片描述

如果學習過用idea創建servlet應用,你肯定會發現,這裡提供的web.xml根本不完整
請用以下代碼囊括上述的servlet標簽

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
		//在這裡加入上面說過的servlet標簽代碼
</web-app>

2.編譯文件

編碼出問題

在這裡插入圖片描述

如上,剛開始我想編譯,但報錯瞭

這裡的原因是,javac會根據你的操作系統編碼讀取源文件代碼,而我的電腦是默認GBK的,但這些源碼我們都是在記事本寫下的,而記事本默認使用UTF-8保存,於是相當於javac用GBK讀取UTF-8的內容,遂報錯

因此我們要指定讀取源碼的編碼格式為UTF-8

在這裡插入圖片描述

學習類加載器

這時候報的錯是正常顯示的中文瞭,找不到servlet,意思就是你用瞭這個類,但沒找到,根據雙親委派,我們知道找一個類,會先從system class loader類加載器的緩存開始找,沒有就找他的父加載器即extension class loader的緩存,沒有就再找extension class loader的父加載器bootstrap class loader的緩存,還是沒有就開始向下,先找bootstrap class loader的指定路徑下的jar包是否含有我們要的類,從下圖可知,跟類加載器加載核心jar包,一些基本的類都在裡面,路徑是jdk下的jre下的lib

在這裡插入圖片描述

這時候還沒有找到,就去擴展類加載器的指定路徑找,我的電腦是以下路徑

在這裡插入圖片描述

如果還沒有找到,那就在系統類加載器指定路徑,即耳熟能詳的classpath,你平時在配置path的時候應該也遇到過,

那麼-cp命令後面跟上classpath就是告訴系統如果一套下來沒找到就去我這找,-cp全稱就是-classpath兩種寫法都能運行

處理編譯結果

當你通過在文件管理器輸入cmd進行javac時,默認產生class文件在當前目錄,可這裡有個重點,你寫的java源文件有package這條命令,那麼我們必須按照包名逐級創建文件夾(運行的時候才能找到你導入的自己寫的源文件),

-d 就是放class的位置,-d .可以在當前目錄下幫我們自動創建包文件夾很方便,不用手動創建

總結

本篇文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!

推薦閱讀: