JavaWeb踩坑記錄之項(xiàng)目訪問不到html文件
踩坑問題和原因
踩坑問題
由于博主的JavaWeb是速成所以對一些知識點(diǎn)掌握的不是很熟,所以也就出現(xiàn)了今天這個問題——Tomcat訪問不到html文件。
在運(yùn)行是總是會出現(xiàn)404。每次出現(xiàn)這個就很煩,讓人摸不著頭腦。雖然這個問題其實(shí)對一些項(xiàng)目沒有很大的影響,但是他會讓我的項(xiàng)目目錄會很雜亂??偟膩碚f該問題就是不解決它,就會出現(xiàn)一堆靜態(tài)資源都在一個文件夾。這可能會導(dǎo)致后期找一些項(xiàng)目的文件就得找半天。
踩坑原因
由于粗心的我把一些html文件都放在WEB-INF下面。因?yàn)閃EB-INF下的資源不能直接訪問(WEB-INF是Java的web應(yīng)用安全目錄,只對服務(wù)端開放,對客戶端是不可見的。),只能通過請求和轉(zhuǎn)發(fā)過去。所以在瀏覽器上面是訪問不到的(重定向也是不可以的)。
解決辦法
在上述中也說了,直接訪問是訪問不到的。但是我們能通過轉(zhuǎn)發(fā)和請求來對html文件進(jìn)行訪問。而在本次項(xiàng)目中,博主是采用的請求訪問。也就是說,先是前端發(fā)送信號到后端——表示我需要請求某個網(wǎng)頁。然后后端相對應(yīng)的做出反應(yīng)然后返回跳轉(zhuǎn)到相對應(yīng)的界面。
public class regist extends ssm.ViewBaseServlet{//繼承了一個類,這個類就是用來解析html時(shí)用的。 @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { super.processTemplate("/user/regist",req,resp);//調(diào)用了類的方法,其實(shí)這個地方可以選擇轉(zhuǎn)發(fā)更方便! }
web.xml的配置:
<servlet-name>jump</servlet-name> <servlet-class>database.jump</servlet-class> </servlet> <servlet-mapping> <servlet-name>jump</servlet-name> <url-pattern>/jump</url-pattern> </servlet-mapping>
或者在Java文件中加一個@WebServlet("/login")。
當(dāng)然我們也可以把靜態(tài)資源給放在WEB-INF外面和static同級別,一般放在外面則需要使用`攔截器/過濾器,來完成權(quán)限驗(yàn)證判斷合法用戶。
踩坑總結(jié)
總的來說還是博主知識掌握不牢而導(dǎo)致的一個簡單的錯誤,但是人不就是在錯誤中成長。在錯誤中提升自己的不足!
到此這篇關(guān)于JavaWeb踩坑記錄之項(xiàng)目訪問不到html文件的文章就介紹到這了,更多相關(guān)JavaWeb項(xiàng)目訪問不到html內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mybatis中批量更新多個字段的2種實(shí)現(xiàn)方法
當(dāng)我們使用mybatis的時(shí)候,可能經(jīng)常會碰到一批數(shù)據(jù)的批量更新問題,因?yàn)槿绻粭l數(shù)據(jù)一更新,那每一條數(shù)據(jù)就需要涉及到一次數(shù)據(jù)庫的操作,本文主要介紹了mybatis中批量更新多個字段的2種實(shí)現(xiàn)方法,感興趣的可以了解一下2023-09-09Spring Boot Actuator監(jiān)控端點(diǎn)小結(jié)
這篇文章主要介紹了Spring Boot Actuator監(jiān)控端點(diǎn)小結(jié),需要的朋友可以參考下2017-06-06Java動態(tài)代理實(shí)現(xiàn)方法小結(jié)
這篇文章主要介紹了Java動態(tài)代理實(shí)現(xiàn)方法,結(jié)合實(shí)例形式總結(jié)分析了java基于JDK、CGLIB及CGLIB實(shí)現(xiàn)動態(tài)代理的相關(guān)操作技巧,需要的朋友可以參考下2019-02-02SpringBoot詳解整合MyBatis過程中可能遇到的問題
因?yàn)镾pring Boot框架開發(fā)的便利性,所以實(shí)現(xiàn)Spring Boot與數(shù)據(jù)訪問層框架(例如MyBatis)的整合非常簡單,主要是引入對應(yīng)的依賴啟動器,并進(jìn)行數(shù)據(jù)庫相關(guān)參數(shù)設(shè)置即可2022-07-07Java?多線程并發(fā)?ReentrantReadWriteLock詳情
這篇文章主要介紹了Java多線程并發(fā)ReentrantReadWriteLock詳情,ReentrantReadWriteLock可重入讀寫鎖。實(shí)際使用場景中,我們需要處理的操作本質(zhì)上是讀與寫,更多相關(guān)資料,感興趣的小伙伴可以參考一下下面文章內(nèi)容2022-06-06