11
votes

Comment invoquer un servlet sans mappage dans web.xml?

Comment invoquer un servlet simple à l'aide de l'URL suivante: http: // localhost: 8080 / servlet / myservlet

Je l'ai placé dans le dossier: tomcat \ webapps \ root \ web-inf \ classes

J'ai lu qu'il n'y a pas besoin de mentionner le servlet dans web.xml. J'ai fait la même chose. Néanmoins, je ne peux pas l'invoquer.


0 commentaires

3 Réponses :


2
votes

Votre fichier web.xml doit être comme celui-ci xxx


1 commentaires

Je sais comment faire avec web.xml! Je lis, il n'est pas nécessaire de mentionner le mappage de servlet lorsqu'ils sont placés à la racine.



26
votes

j'ai lu qu'il n'est pas nécessaire de mentionner le servlet dans web.xml.

Vous êtes probablement déroutant avec le héritage Tomcat-intégré invoquesservlet qui était présent dans les versions plus anciennes d'Apache Tomcat (et toujours mentionné dans des tutoriels / livres pauvres et obsolètes). Il a en effet permis d'invoquer des servlets comme celui-là sans la nécessité de cartographier. Cependant, il a ensuite été confirmé que c'était un trou de sécurité et sont ventilables aux attaques . C'était handicapé et obsolète sur Tomcat 5.0 et enlevé sur Tomcat 7.0. Dans ce cas, vous avez vraiment besoin de cartographier votre servlet dans web.xml (et mettez-le dans un package!).

Une autre source de confusion peut être le nouveau servlet 3.0 < href = "https://jakarta.ee/specifications/platform/8/apidocs/javax/servlet/annotation/webservlet" rel = "nofollow noreferrer"> @wewservlet annotation. Lorsque vous utilisez déjà un conteneur de servlet 3.0 tel que TOMCAT 7.0, vous pouvez utiliser cette annotation pour mapper le servlet sans avoir besoin de violon avec web.xml . xxx < / Pré>

Ensuite, vous pourrez y accéder comme vous le souhaitez.

Voir aussi:


5 commentaires

Absolument! Merci beaucoup de Balusc !! C'était ma deuxième question et les deux questions ont été répondues par vous. Merci beaucoup encore !!


UHM, je ne vois pas une autre question dans Votre profil ? Votre compte semble être non enregistré. Je recommanderais chaleureusement à enregistrer votre compte, puis à demander à l'équipe SO Modérateur de fusionner votre autre compte non enregistré. De cette façon, vous pourrez utiliser un seul et même compte d'utilisateur de partout.


@Ballusc - Voici ma autre question: Stackoverflow .com / questions / 4737011 / ... Comment relier cette question avec mon compte? Merci d'avance!


Vous pouvez le faire en signalant la question pour l'attention du modérateur. Je l'ai déjà fait pour vous. L'autre compte sera fusionné bientôt :)


Trouvez "Qu'est-ce que Serlet Invoker?" Dans cette page: Javapapers.com/servlet/what-is-servlet-mapping



0
votes

Vous pouvez y parvenir dans Web Sphere.BLA en valise le serveur serveur par une propriété de nom de classe, vous devez suivre en dessous de l'étape pour le faire.

  1. Allez à WebSphere Admin Console.
  2. Cliquez avec le bouton droit de la souris sur le serveur WebSphere -> Console d'administration.
  3. Cliquez sur Serveurs -> Types de serveurs -> Serveurs d'applications WebSphere -> Nom_serveur (nom de votre nom de serveur) -> Paramètres du conteneur Web -> Conteneur Web.
  4. Définissez la propriété personnalisée com.ibm.ws.webContainer.DisallowserServletsByClassName Valeur comme False.

3 commentaires

Sérieusement? Le sujet concerne Tomcat.


Eh bien, la question est liée à J2ee il ne mentionne pas le serveur, donc je post la base de réponse sur WebSphere Server


Ok si vous pensez que son fil incorrect, je supprimerai la réponse