Я читал, что нет необходимости упоминать сервлет в web.xml.
Вы, вероятно, путаете со старым встроенным Tomcat InvokerServlet
, который присутствовал в более старых версиях Apache Tomcat (и все еще упоминается в плохих и устаревших руководствах / книгах). Это действительно позволяет вызывать такие сервлеты без необходимости что-либо отображать. Однако позже было подтверждено, что это была дыра в безопасности и уязвимая для атак . Он был отключен и объявлен устаревшим в Tomcat 5.0 и удален в Tomcat 7.0. В таком случае вам действительно нужно отобразить свой сервлет в web.xml
(и поместить его в пакет!).
Другим источником путаницы может быть новая аннотация Servlet 3.0 @WebServlet
. Когда вы уже используете контейнер Servlet 3.0, такой как Tomcat 7.0, вы можете использовать эту аннотацию для отображения сервлета без необходимости возиться с web.xml
.
package com.example;
@WebServlet("/MyServlet")
public class MyServlet extends HttpServlet {
// ...
}
Тогда вы сможете получить к нему доступ так, как хотите.
Смотри также: