Java Servlet地址不正确
我正在尝试创建一个servlet,我正在使用Tomcat7。 我在webapps文件夹中为我的应用程序添加了一个文件夹,看起来如下所示:Java Servlet地址不正确,java,tomcat,servlets,Java,Tomcat,Servlets,我正在尝试创建一个servlet,我正在使用Tomcat7。 我在webapps文件夹中为我的应用程序添加了一个文件夹,看起来如下所示: --[webapps] --[agtel] --[web-inf] --[classes] --add.class --web.xml --index.html web.xml包含: <servlet> <servle
--[webapps]
--[agtel]
--[web-inf]
--[classes]
--add.class
--web.xml
--index.html
web.xml包含:
<servlet>
<servlet-name>add</servlet-name>
<servlet-class>add</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>add</servlet-name>
<url-pattern>/add</url-pattern>
</servlet-mapping>
<FORM METHOD=GET ACTION="/add">
这将导致404错误。但是如果我把它改成
http://localhost:8080/agtel/add
当然,它会执行小程序
因此,我尝试将html文件中的URL更改为
<FORM METHOD=GET ACTION="agtel/add">
为什么现在要加两次这个名字?这非常令人困惑,让我发疯。这就是所谓的“上下文”路径。如果您在同一个Tomcat(或任何应用服务器)上运行多个应用程序,则会区分对它们的访问。
当您将路径从“/add”更改为“add”(无前导斜杠)时,它应该可以正常工作 在HTML中使用URL时,不带前导/它们是相对于当前URL的。与领先/他们是绝对的:
<FORM METHOD=GET ACTION="/agtel/add">
或
我会做你想做的
我建议您在操作路径中添加上下文,例如(在JSP中):
有了它,您将永远不必更改路径,例如,如果您移动文件或复制代码。当然,您需要一个index.jsp。您是否尝试过
ACTION=“add”
,或者ACTION=“/agtel/add”
?ACTION=“add”
,并且由于servlet上下文根是/agtel
,所以url是/agtel/add
。就是这样!我在一个例子中看到了斜杠(它起作用了),我想应该是这样的。非常感谢你!
http://localhost:8080/agtel/agtel/add
<FORM METHOD=GET ACTION="/agtel/add">
<FORM METHOD=GET ACTION="add">
<FORM METHOD=GET ACTION="${pageContext.request.contextPath}/add">