Saltar al contenido

¿Cómo invocar un servlet sin mapeo en web.xml?

Solución:

He leído que no es necesario mencionar el servlet en web.xml.

Probablemente se esté confundiendo con el Tomcat-incorporado heredado InvokerServlet que estaba presente en versiones anteriores de Apache Tomcat (y aún se menciona en tutoriales / libros deficientes y desactualizados). De hecho, permitió invocar servlets como ese sin la necesidad de mapear nada. Sin embargo, más tarde se confirmó que se trataba de un agujero de seguridad y vulnerable a los ataques. Fue deshabilitado y obsoleto en Tomcat 5.0 y eliminado en Tomcat 7.0. En tal caso, realmente necesita mapear su servlet en web.xml (¡y ponlo en un paquete!).

Otra fuente de confusión puede ser el nuevo Servlet 3.0 @WebServlet anotación. Cuando ya está usando un contenedor Servlet 3.0 como Tomcat 7.0, entonces puede usar esta anotación para mapear el servlet sin la necesidad de jugar con web.xml.

package com.example;

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

    // ...

}

Entonces podrás acceder a él de la forma que quieras.

Ver también:

  • Nuestra página wiki de Servlets

su archivo web.xml tiene que ser así

<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>

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *