如何使用以下 URL 调用一个简单的 servlet: http://localhost:8080/servlet/MyServlet
我放在文件夹中:tomcat\webapps\ROOT\WEB-INF\classes
我读过没有必要在 web.xml 中提及 servlet。我也这样做了。不过,我无法调用它。
最佳答案
I've read there is no need to mention the servlet in web.xml.
您可能对遗留的 Tomcat 内置 InvokerServlet
感到困惑它出现在旧版本的 Apache Tomcat 中(并且仍然在糟糕和过时的教程/书籍中提到)。它确实允许像这样调用 servlet 而无需映射任何东西。不过后来证实是security hole and vulrenable to attacks .它在 Tomcat 5.0 上被禁用和弃用,并在 Tomcat 7.0 上被删除。在这种情况下,您确实需要在 web.xml
中映射您的 servlet(并将其放在一个包中!)。
另一个混淆来源可能是新的 Servlet 3.0 @WebServlet
注解。当您已经在使用 Servlet 3.0 容器(如 Tomcat 7.0)时,您可以使用此注释来映射 servlet,而无需摆弄 web.xml
。
package com.example;
@WebServlet("/MyServlet")
public class MyServlet extends HttpServlet {
// ...
}
然后您将能够以您想要的方式访问它。
另见:
关于java - 如何在不映射 web.xml 的情况下调用 servlet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5031018/