Как вызвать сервлет без отображения в web.в XML?
Как вызвать простой сервлет, используя следующий URL-адрес: http://localhost:8080/servlet/MyServlet
Я поместил его в папку: tomcatwebappsROOTWEB-INFclasses
Я читал, что нет необходимости упоминать сервлет в интернете.XML. Я сделал то же самое. И все же я не могу его вызвать.
3 ответов
Я читал, что нет необходимости упоминать сервлет в интернете.XML.
вы, вероятно, путаете с наследием Tomcat-builtin InvokerServlet
который присутствовал в более старых версиях Apache Tomcat (и все еще упоминается в бедных и устаревших учебниках/книгах). Это действительно позволило вызывать такие сервлеты без необходимости отображать что-либо. Однако позже было подтверждено, что это был дыра в безопасности и vulrenable в атаки. Он был отключен и устарел на Tomcat 5.0 и удален на Tomcat 7.0. В таком случае вам действительно нужно отобразить свой сервлет в web.xml
(и положите его в пакет!).
еще одним источником путаницы может быть новый сервлет 3.0 @WebServlet
Примечание. Когда вы уже используете контейнер сервлета 3.0, такой как Tomcat 7.0, вы можете использовать эту аннотацию для отображения сервлета без необходимости возиться с web.xml
.
package com.example;
@WebServlet("/MyServlet")
public class MyServlet extends HttpServlet {
// ...
}
тогда вы будете возможность доступа к нему так, как вы хотите.
Читайте также:
веб.xml-файл должен быть таким
<web-app>
<servlet>
<servlet-class>mypackage.myservlet</servlet-class>
<!-- the full name of your class -->
<servlet-name>name</servlet-name>
<!-- name has be the same in servlet and servlet-mapping -->
</servlet>
<servlet-mapping>
<servlet-name>name</servlet-name>
<url-pattern>/servlet/MyServlet</url-pattern>
</servlet-mapping>
вы можете достичь этого в интернете sphere.By включение сервлета Serve по свойству имени класса, для этого необходимо выполнить следующий шаг. 1.Перейти к WebSphere консоли администратора. 2.Щелкните правой кнопкой мыши WebSphere Server --> консоль администратора. 3.Выберите серверы --> типы серверов --> серверы приложений WebSphere --> имя_сервера (имя вашего сервера) --> параметры веб-контейнера --> веб-контейнер. 4. Задайте настраиваемое свойство com.ibm.ws.webcontainer.значение disallowServeServletsByClassname равно false.