關(guān)于idea中Java Web項目的訪問路徑問題
說明
這里只以 servlet 為例,沒有涉及到框架,但其實路徑的基本原理和框架的關(guān)系不大,所以學(xué)了框架的同學(xué)如果對路徑有疑惑的也可以閱讀此文
項目結(jié)構(gòu)
在 idea 中新建一個 Java Web 項目,項目的初始結(jié)構(gòu)如下 ( 不同版本的 idea 可能略有區(qū)別 ) :
默認訪問路徑
- 當(dāng)我們將項目的基本配置設(shè)置好后,啟動 Tomcat,會發(fā)現(xiàn)直接出現(xiàn)的是 index.jsp 頁面,此時瀏覽器的地址欄顯示的是:
localhost:8080
,也就是說項目默認跳轉(zhuǎn)到了 index.jsp 頁面,而且打開 web.xml 文件后,我們發(fā)現(xiàn)這里并沒有配置 index.jsp 為首頁,這點要注意 - 非常重要的一點:做開發(fā)測試時,如果用了 index.jsp 這個頁面做測試,一定要分清楚項目是啟動的時候直接就跳轉(zhuǎn)到了這個頁面,還是經(jīng)過了其它的路徑才跳轉(zhuǎn)到了這個頁面,如果沒有這個意識的話,很可能在實際開發(fā)中會出現(xiàn)問題,所以一般不推薦用 index.jsp 作為測試頁面
- 還是之前的設(shè)置不變,當(dāng)我們在瀏覽器輸入
localhost:8080/index.jsp
時,會發(fā)現(xiàn)顯示的仍然是 index.jsp 頁面,也就是說,jsp 頁面的訪問路徑是直接從項目的 web 目錄的下一級目錄開始的,我們這里的 index.jsp 由于就是直接處于 web 目錄的下一級,所以直接在 localhost:8080/ 后面加上文件名即可
jsp頁面的訪問路徑
由之前的分析可知,如果我們在 web 目錄下新建一個名為 jsps 的目錄,然后里面有一個名為 demo.jsp 的文件,那么我們要想訪問到這個文件,在瀏覽器地址欄中輸入的就是 localhost:8080/jsps/demo.jsp
,此時項目結(jié)構(gòu)如下:
說明: 這里并沒有嚴格按照 Java Web 項目的結(jié)構(gòu)那樣建立 classes 和 lib 文件夾,然后進行配置,但對于這里要說明的問題而言并沒有影響
servlet文件的訪問路徑
在 src 目錄下新建一個名為 com.lwx.servlet 的包,然后在這個包下新建一個名為 DemoServelt 的 servlet 類,此時項目結(jié)構(gòu)如下:
- servlet 文件的訪問路徑我們可以在 web.xml 中自己配置(使用的是 url-pattern 標(biāo)簽),或者是使用注解的形式(使用的是 urlPatterns 屬性),不管采用哪種形式,其對應(yīng)的值都和我們的訪問路徑有關(guān)(如果兩種形式同時采用,實測只有 web.xml 中的配置生效,也就是說此時如果以注解中配置的路徑來訪問 servlet 是會報 404 的)
- 對于 idea 來說,servlet 的訪問路徑比較簡單,直接在 localhost:8080 后面加上我們自己配置的值即可
- 如果我們在 web.xml 中對其所做配置如下,則訪問路徑為
localhost:8080/DemoServlet
特別注意:如果這里的 url-pattern 的值寫的是 /*
,那么當(dāng)我們在瀏覽器的地址欄輸入 localhost:8080
甚至是 localhost:8080/index.jsp
或者是 localhost:8080 后面跟上任何合法的字符串,訪問的都是 DemoServlet 這個 servlet 類(細心的同學(xué)就會發(fā)現(xiàn)這里雖然輸入了 localhost:8080/index.jsp
,但訪問的并不是 index.jsp 這個文件,而是 DemoServlet 類)
如果我們使用注解的方式對其所做配置如下,則訪問路徑為 localhost:8080/DemoServlet
特別注意:name 屬性的值需要和對應(yīng)的類名一致
idea中獨有的路徑配置
打開 Run
—> Edit Configurations
—> Deployment
,在右側(cè)有個 Application context
,這里的值也是和路徑有關(guān)的
Application context
中填寫的值會直接加到 localhost:8080
的后面,以之前的例子來說,本來 DemoServlet 這個 servlet 類的訪問路徑是 localhost:8080/DemoServlet
,如果在 Application context
中填寫的是 /haha
,那么其訪問路徑就變成了 localhost:8080/haha/DemoServlet
,對于 jsp 頁面的訪問路徑也是同樣的道理
到此這篇關(guān)于idea中Java Web項目的訪問路徑問題的文章就介紹到這了,更多相關(guān)idea javaweb訪問路徑內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java獲取指定父節(jié)點、子節(jié)點的方法實現(xiàn)
在Java中,要獲取指定節(jié)點的父節(jié)點和子節(jié)點,通常需要使用 DOM,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-02-02java線程并發(fā)cyclicbarrier類使用示例
CyclicBarrier類似于CountDownLatch也是個計數(shù)器,不同的是CyclicBarrier數(shù)的是調(diào)用了CyclicBarrier.await()進入等待的線程數(shù),當(dāng)線程數(shù)達到了CyclicBarrier初始時規(guī)定的數(shù)目時,所有進入等待狀態(tài)的線程被喚醒并繼續(xù),下面使用示例學(xué)習(xí)他的使用方法2014-01-01教你如何使用Java8實現(xiàn)菜單樹形數(shù)據(jù)
今天給大家?guī)淼氖顷P(guān)于JAVA的相關(guān)知識,文中圍繞著如何使用Java8實現(xiàn)菜單樹形數(shù)據(jù)展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下2021-06-06spring?cloud?配置阿里數(shù)據(jù)庫連接池?druid的示例代碼
這篇文章主要介紹了spring?cloud?配置阿里數(shù)據(jù)庫連接池?druid,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03