java - jsp跳轉(zhuǎn)到servlet,出現(xiàn)404
問題描述
從網(wǎng)上下了一個(gè)小項(xiàng)目,其中一段代碼不刪除或者注釋掉,服務(wù)器就會(huì)啟動(dòng)失敗。如圖所示:
注釋之后,服務(wù)器能正常啟動(dòng),但是jsp跳轉(zhuǎn)失敗。
具體代碼和配置如下:
form
xml
項(xiàng)目結(jié)構(gòu)
哪里有錯(cuò)誤呢?
問題解答
回答1:先解決問題,你的jsp跳轉(zhuǎn)失敗原因確實(shí)如伊森所說,form 中的 action 指定的 url 與 web.xml 配置的Servlet 不匹配,寫為 '/ServletLearningChapter1_3/LoginServlet' 就好了
另外拓展來說,之所以你在網(wǎng)上看到的代碼會(huì)把 action 值寫做 '/LoginServlet' 是因?yàn)?@WebServlet是Servlet3.0規(guī)范所支持的一種簡(jiǎn)化配置,他和你在 web.xml 中配置 <servlet><url-pattern>/LoginServlet</url-pattern></servlet>是一個(gè)作用。
所以當(dāng)你注釋掉@webServlet的時(shí)候,url映射的值就應(yīng)該以web.xml為準(zhǔn)。
最后,報(bào)錯(cuò)的話希望下次你能把報(bào)錯(cuò)具體信息打出來,不然因?yàn)槲覀儾⒉徽莆漳愕沫h(huán)境信息,也沒法猜出具體問題。
嗯,就是這樣了,祝好:D
回答2:有兩個(gè)問題:
LoginServlet上的注解應(yīng)該是某種框架的寫法,在缺少框架jar包或配置不正確的情況下,注解就會(huì)報(bào)錯(cuò)導(dǎo)致啟動(dòng)失敗
表單action中指定的url 與 web.xml中配置的Servlet 不匹配,按照web.xml中配置,你的action應(yīng)該寫成這樣
<form action='/ServletLearningChapter1_3/LoginServlet' ...>回答3:
樓主問了兩個(gè)問題 粗略的看了一下 目測(cè):?jiǎn)栴}一:定義重復(fù)?問題二:項(xiàng)目路徑缺失?未必正確
相關(guān)文章:
1. nginx反向代理 使用多個(gè)location url 匹配到不同主機(jī)的不同服務(wù),出現(xiàn)404問題2. java - springmvc 請(qǐng)求無法到達(dá)controller,出現(xiàn)404錯(cuò)誤3. Java Jersey Rest:找不到提供程序類。(訪問URL時(shí)出現(xiàn)404錯(cuò)誤)4. Java Jersey Rest:找不到提供程序類(訪問URL時(shí)出現(xiàn)404錯(cuò)誤)5. apache - ubuntu環(huán)境下安裝bugzilla,執(zhí)行成功,但是訪問時(shí)候出現(xiàn)404 not found6. java - 圖片上傳后,立即訪問出現(xiàn)404,重新部署項(xiàng)目后正常可以訪問
