最近學到了Java Web項目,使用Idea和Maven創建Java Web的時候遇到了諸多問題,最多的還是404問題。現在記錄一下解決方案。
一、使用maven創建一個web項目,這一步網上都有,下圖是創建好之后的界面。maven會自動下載一些東西。可以看到,我的webapp下面有一個WEB-INF的文件夾,這個文件夾就是以后我們的web項目發布的文件夾,拷貝這個WEB-INF文件夾放到服務器上就可以運行了。
講一下,WEB_INF文件夾下面有三個東東是必備的
- classes文件夾,這個是放項目編譯后的字節碼的
- lib文件夾,這個是放項目所依賴的jar包的
- web.xml文件,這個就是一個配置文件
可以看到,上圖的WEB-INF文件夾下已經有了web.xml這個文件了(這個是你們404的罪魁禍首,我們會在下面刪了它重建),3個必要元素已經有了一個,還差兩個文件夾,這個我們自己創建一個,創建好之后如圖:
二、第二步就是配置了,我們需要配置一下發布的字節碼路徑是classes,發布的依賴的jar包路徑是lib啥的,貌似Eclipse直接在web.xml配置就可以,Idea的我目前只知道這種
打開 Project Structure
第一個Project項目,不需要改什么東西,我畫紅線的地方意思是,發布后的文件夾,這個不要動他了,不要改
第二個模塊Modules這里,先配置Sources,沒有的文件夾自己建上去,可能會有疑問,為什么有out和target兩個文件夾?答案是
out文件夾是你的項目的輸出的路徑,里面只保存了類的classes文件
target文件夾里面有你的類的classes和你的web項目,這個是為你的Tomcat准備的
Paths面板配置需要把我們剛才建立的classes和lib文件夾配置上去,這個地方選哪個都行,因為我目前只有一個Modules,所以我可以使用Project的路徑,多個的話自己配吧,一定是out下面的某個文件
Dependercies面板這樣配置
第三個Libraries,這樣配置,選java
還是選我們創建的lib文件夾
Facets這里,最最最重要!因為我們啥都是自己配置的,這個默認的web.xml就是導致出現404錯誤的原因,我們需要點擊刪除上面的web.xml,然后自己新建一個就完事了
刪完之后,點擊+號,點web.xml,路徑選對,選我們的WEB-INF下面。完事。
最后一個Artifacts,這個可以說是非常非常非常重要了,我錯了那么多就是因為這個,我們新建一個Exploded,Form我們上面配置的模塊Modules。配置完之后如下圖。
這里要設置target下面的class,這個是我們發布后的web文件的所在地
至此,我們的Idea配置就完成了。接下來,配置一下Tomcat,寫一個jsp試試看。
配置Tomcat,網上都是教程,這里我只強調一點,就是Deployment頁面,一定要選擇我們剛才創建的Artifact!!!
如圖
最后的最后,我們新建一個jsp文件來測試一下我們上面的IDea配置和Tomcat配置。
在webapp下面新建一個jsp,名字叫index,index是默認訪問的名字,隨便寫點東西
上面的綠色的運行小三角。大功告成