我的WebContent/jsps
文件夹中的一个JSp文件中有一个HTML表单。我在src
文件夹的默认包中有一个Servlet类servlet.java
。在我的web.xml
中,它被Map为/servlet
。
我在HTML表单的action
属性中尝试了几个URL:
<form action="/servlet">
<form action="/servlet.java">
<form action="/src/servlet.java">
<form action="../servlet.java">
但这些都不管用。在Tomcat 6/7/8中,它们都一直返回如下所示的HTTP404错误:
HTTP状态404--/Servlet
- 说明*:请求的资源(/Servlet)不可用。
或在Tomcat 8.5/9中如下所示:
HTTP状态404-未找到
Message*:/Servlet
Description*:源站没有找到目标资源的当前表示,或者不愿意透露存在
或者在Tomcat 10中如下所示:
HTTP状态404-未找到
类型*:状态报告
消息*:请求的资源(/Servlet)不可用
Description*:源站没有找到目标资源的当前表示,或者不愿意透露存在
为什么它不起作用?
19条答案
按热度按时间2admgd5916#
NetBeans IDE中
HTTP Status 404
的解决方案:右键单击您的项目并转到您的项目属性,然后单击Run,然后输入您的项目相对URL,如index.jsp
。1.项目->属性
1.点击Run
1.相对URL:/index.jsp(选择您的项目根URL)
kqhtkvqz17#
如果你使用的是IntelliJ,以下是为我修复的方法:
转到Tomcat配置:
配置>部署选项卡
向下滚动并将
/
添加到应用程序上下文下拉菜单ma8fv8wu18#
检查您是否输入了Web.xml中指定的正确URLMap
例如:
在web.xml中,您的Servlet声明可能是:
这段代码的作用是
<url-pattern>/theController</url-pattern>
将设置将用于通过URL从前端(例如:Form)调用Servlet的名称。因此,当您在前端引用Servlet时,为了确保请求到达Servlet“ControllerA”,它应该从表单引用指定的URL模式“theControlerA”。例如:
eqzww0vc19#
场景#1:在Tomcat已经运行时,您意外地从命令行重新部署。
**简答:**停止Tomcat,删除目标文件夹,MVN包,然后重新部署
**场景#2:**request.getRequestDispatcher(“MIS_SPELLED_FILE_NAME.jsp”)
简短回答:检查文件名拼写,确保大小写正确。
场景#3:类未发现异常(答案放在此处是因为:问题#17982240)(java.lang.ClassNotFoundException for servlet in tomcat with eclipse)(被标记为重复,并将我定向到此处)
简单回答#3.1:web.xml在Servlet类标记中有错误的包路径。
简单回答#3.2:Java文件有错误的导入语句。
以下是场景1的详细信息:
第一集:阻止汤姆猫
2:删除目标文件夹。(MVN CLEAN在这里帮不上忙)
3:MVN套餐
4:您的部署命令_此处
(我的:Java-jar目标/依赖关系/webapp-runner.jar--端口5190目标/*.war)
后卫故事:
意外地打开了一个新的git-bash窗口,并试图通过以下方式为我的Heroku项目部署.war文件:
Java-jar目标/依赖关系/webapp-runner.jar--端口5190目标/*.war
在一次部署失败后,我意识到我打开了两个git-bash窗口,并且没有使用ctlr+C停止之前的部署。
我遇到了这样一个人:
HTTP状态404-未找到类型状态报告
Message/If-Student-Test.jsp
描述源服务器没有找到目标资源的当前表示形式,或者不愿意透露存在一个表示形式。
ApacheTomcat/8.5.31
以下是场景#3的更多详细信息:
场景3.1:您的web.xml文件中的Servlet类包路径错误。
它应该与Java Servlet类顶部的Package语句匹配。
文件:My_Stuff/MyClass.java:
文件:PRJ_ROOT/src/main/webapp/WEB-INF/web.xml
场景3.2:
您在myClass.java文件的顶部放置了错误的“Package”语句。
例如:
文件位于:“/My_Stuff”文件夹中
你错误地写下了:
这很棘手,因为:
1:maven版本(MVN包)不会在这里报告任何错误。
2:web.xml中的Servlet类行可以有正确的包路径。例如:
使用的堆栈:记事本+++GitBash+Maven+Heroku Web App Runner+Tomcat9+Windows10: