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