从网上下了一个小项目,其中一段代码不删除或者注释掉,服务器就会启动失败。如图所示:
注释之后,服务器能正常启动,但是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应该写成这样楼主问了两个问题 粗略的看了一下 目测:
问题一:定义重复?
问题二:项目路径缺失?
未必正确