從網(wǎng)上下了一個(gè)小項(xiàng)目,其中一段代碼不刪除或者注釋掉,服務(wù)器就會啟動失敗。如圖所示:
注釋之後,服務(wù)器能正常啟動,但是jsp跳轉(zhuǎn)失敗。
具體代碼和配置如下:
form
xml
項(xiàng)目結(jié)構(gòu)
哪裏有錯(cuò)誤呢?
先解決問題,你的jsp跳轉(zhuǎn)失敗原因確實(shí)如伊森所說,form 中的 action 指定的 url 與 web.xml 配置的Servlet 不匹配,寫為 "/ServletLearningChapter1_3/LoginServlet"
就好了
另外拓展來說,之所以你在網(wǎng)路上看到的程式碼會把 action
值寫做 "/LoginServlet"
是因?yàn)?@WebServlet
是Servlet3.0規(guī)范所支持的一種簡化配置,他和你在 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)槲覀儊K不掌握你的環(huán)境信息,也沒法猜出具體問題。
嗯,就是這樣了,祝好:D
有兩個(gè)問題:
LoginServlet
上的註解應(yīng)該是某種框架的寫法,在缺少框架jar包或配置不正確的情況下,註解就會報(bào)錯(cuò)導(dǎo)致啟動失敗
表單action
中指定的url 與 web.xml
中配置的Servlet
不匹配,按照web.xml
中配置,你的action應(yīng)該寫成這樣
<form action="/ServletLearningChapter1_3/LoginServlet" ...>