2009-07-31 5 views
0

Je suis en train de suivre cette example , mais je ne peux pas comprendre cette partie:
Imagine also that the servlet's context path is myServer/myApp/servlets. The servlet container would direct a request with URL myServer/myApp/createUser.do myServlet to myServlet, because the request URL matches the pattern *.do. Servlet myServlet can extract the requested operation's name from the request URL.
Je ne comprends pas la demande, devrait-il pas myServer/myApp/myServlet/createUser.do? Et comment peut-on créer une telle demande? Puis-je simplement mettre myServlet/createUser.do dans l'action d'un formulaire?
Nous vous remercions de votre temps.
IuliaComment identifier l'opération à effectuer dans une servlet?

Répondre

0

Non, vous créez un mappage vers votre servlet pour myapp. Le nom du servlet lui-même n'apparaît généralement pas dans l'URL de la demande. Ainsi, chaque requête envoyée à myapp sera redirigée vers votre servlet si elle correspond. Cela signifie que votre cartographie

http://myserver/myapp/ * .do

redirige toutes les demandes avec un .Ne à votre servlet. Maintenant, la servlet doit gérer l'URL de la demande (par exemple, afficher la vue pour createUser)

+0

Nous vous remercions de votre réponse. J'ai joué avec et j'ai une question. J'essaye de faire l'écran de connexion. Par défaut, l'index.jsp s'ouvre: http: // localhost: 3818/MyApp. J'ai ajouté ceci: $ {pageContext.request.contextPath} /signin.do à l'action du formulaire et ce Dispatcher * .do à web.xml. Cela ne fonctionnera pas (fait un submit, passe à travers, des valeurs nulles). Toutefois, si l'application Web est ouverte avec http: // localhost: 3818/MyApp/signin.do, cela fonctionne. – Iulia

+0

Y at-il une explication logique à cela - autre que "un petit diable rouge est venu et foutu mon application" -? Comment puis-je faire de l'écran de connexion le même que les autres? Dois-je simplement ajouter le répartiteur comme /*? Cela suffira-t-il? Cela ne signifie-t-il pas que tout devra passer par là? Merci encore pour votre temps. – Iulia

+0

Je ne sais pas vraiment ce que vous voulez faire ... en fait, vous ne dites même pas quelle implémentation de servlet vous utilisez. Vous mappez juste que chaque appel de .do sera redirigé vers votre servlet. Il suffit donc d'appeler localhost: 3818/MyApp ne redirige simplement pas parce qu'il n'a pas une extension .do (localhost: 3818/MyApp/index.do fonctionnerait bien. – Daff