如何在web.xml中没有映射的情况下调用servlet?

Fai*_*sal 10 java tomcat servlets

如何使用以下URL调用简单的servlet: http:// localhost:8080/servlet/MyServlet

我把它放在文件夹中: tomcat\webapps\ROOT\WEB-INF\classes

我读过没有必要在web.xml中提到servlet.我做了同样的事.不过,我无法调用它.

Bal*_*usC 24

我读过没有必要在web.xml中提到servlet.

您可能会对InvokerServlet早期版本的Apache Tomcat中存在的旧版Tomcat内置程序感到困惑(并且仍然在较差和过时的教程/书籍中提到过).它确实允许调用这样的servlet而不需要映射任何东西.然而,后来证实这是一个安全漏洞并且可以攻击.它已在Tomcat 5.0上禁用和弃用,并在Tomcat 7.0上删除.在这种情况下,您确实需要将servlet映射到web.xml(并将其放入包中!).

混淆的另一个原因可能是新的Servlet 3.0 @WebServlet注释.当你已经使用像Tomcat 7.0这样的Servlet 3.0容器时,你可以使用这个注释来映射servlet而不需要操作web.xml.

package com.example;

@WebServlet("/MyServlet")
public class MyServlet extends HttpServlet {

    // ...

}
Run Code Online (Sandbox Code Playgroud)

然后,您将能够以您想要的方式访问它.

也可以看看: