從網上下了一個小項目,其中一段代碼不刪除或者注釋掉,服務器就會啟動失敗。如圖所示:
注釋之後,服務器能正常啟動,但是jsp跳轉失敗。
具體代碼和配置如下:
form
xml
項目結構
哪裏有錯誤呢?
先解決問題,你的jsp跳轉失敗原因確實如伊森所說,form 中的 action 指定的 url 與 web.xml 配置的Servlet 不匹配,寫為 "/ServletLearningChapter1_3/LoginServlet" 就好了
"/ServletLearningChapter1_3/LoginServlet"
另外拓展來說,之所以你在網路上看到的程式碼會把 action 值写做 "/LoginServlet" 是因为 @WebServlet是Servlet3.0规范所支持的一种简化配置,他和你在 web.xml 中配置 <servlet><url-pattern>/LoginServlet</url-pattern></servlet>是一個作用。
action
"/LoginServlet"
@WebServlet
<servlet><url-pattern>/LoginServlet</url-pattern></servlet>
所以當你註解掉@webServlet的時候,url映射的值就應該以web.xml為準。
@webServlet
最後,報錯的話希望下次你能把報錯具體信息打出來,不然因為我們並不掌握你的環境信息,也沒法猜出具體問題。
嗯,就是這樣了,祝好:D
有兩個問題:
LoginServlet上的註解應該是某種框架的寫法,在缺少框架jar包或配置不正確的情況下,註解就會報錯導致啟動失敗
LoginServlet
表單action中指定的url 与 web.xml中配置的Servlet 不匹配,按照web.xml中配置,你的action應該寫成這樣
web.xml
Servlet
<form action="/ServletLearningChapter1_3/LoginServlet" ...>
樓主問了兩個問題 粗略的看了一下 目測:問題一:定義重複? 問題二:專案路徑缺失? 未必正確
先解決問題,你的jsp跳轉失敗原因確實如伊森所說,form 中的 action 指定的 url 與 web.xml 配置的Servlet 不匹配,寫為
"/ServletLearningChapter1_3/LoginServlet"
就好了另外拓展來說,之所以你在網路上看到的程式碼會把
action
值写做"/LoginServlet"
是因为@WebServlet
是Servlet3.0规范所支持的一种简化配置,他和你在 web.xml 中配置<servlet><url-pattern>/LoginServlet</url-pattern></servlet>
是一個作用。所以當你註解掉
@webServlet
的時候,url映射的值就應該以web.xml為準。最後,報錯的話希望下次你能把報錯具體信息打出來,不然因為我們並不掌握你的環境信息,也沒法猜出具體問題。
嗯,就是這樣了,祝好:D
有兩個問題:
LoginServlet
上的註解應該是某種框架的寫法,在缺少框架jar包或配置不正確的情況下,註解就會報錯導致啟動失敗表單
action
中指定的url 与web.xml
中配置的Servlet
不匹配,按照web.xml
中配置,你的action應該寫成這樣樓主問了兩個問題 粗略的看了一下 目測:
問題一:定義重複?
問題二:專案路徑缺失?
未必正確