2016-05-13 3 views
0

Ich habe diese Form Erklärung in meiner JSP-Seite:Wie ein Formular in einer JSP-Seite zu einem Servlet enthalten senden richtig

<form name="login" method="post" action="loginServlet"> 

wird angenommen, dass das Servlet in geeigneter Weise in der Datei web.xml deklariert wird; mit diesem Muster <url-pattern>/loginServlet</url-pattern>;

Diese servlet enthält eine doPost-Methode.

Aber was passiert, ist, dass, wenn ich die Schaltfläche zum Login-Formular drücken, beschwert sich der Server, dass dieses Servlet nicht gefunden wird. Welche Art von Pfad sollte ich verwenden, um es zum Laufen zu bringen?

Dies ist die Ordnerstruktur meines Projektes:

-Project0 
    -jsppages 
     login.jsp 
    +htmlpages 
    -WEB-INF 
     -classes 
      LogIn.class 

Ich denke, ein Problem mit dem Weg gibt. Wie könnte ich das beheben? Vielen Dank!

Edit: die web.xml enthält genau diese genannten mein Servlet:

<servlet> 
     <servlet-name>LogInServlet</servlet-name> 
     <servlet-class>LogIn.class</servlet-class> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>LogInServlet</servlet-name> 
     <url-pattern>/loginServlet</url-pattern> 
    </servlet-mapping> 

GELÖST:

Wenn die an die Form Releted Aktion nennen, war es notwendig, aus dem JSP-Ordner zu gehen in meinem Projektordner mit dem Pfad ../loginsServlet, so wird es so.

<form name="login" method="post" action="../loginServlet"> 
+0

Ist es ein Tippfehler, oder ist es wirklich geschrieben in der Datei? – MedAl

+0

https://docs.oracle.com/cd/E13222_01/wls/docs92/webapp/configureservlet.html Sehen Sie sich das auch an. Ihre web.xml-Datei ist unvollständig, wenn Sie nur die in Ihrer Frage angegebene Zeile verwenden – MedAl

+0

'/loginServlet' <- Dies ist nicht gültig XML – gfelisberto

Antwort

0

überprüfen Sie Ihre web.xml, die in WEB-INF Verzeichnis vorhanden ist

unten Probe

<web-app> 
<display-name>HelloWorld Application</display-name> 
<servlet> 
    <servlet-name>HelloServlet</servlet-name> 
    <servlet-class>SERVLET CLASS NAME WITH PACKE</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>HelloServlet</servlet-name> 
    <url-pattern>/loginServlet</url-pattern> 
</servlet-mapping> 

und Ihren Wert Aktion ändern

<form name="login" method="post" action="./loginServlet"> 
0

fügen Sie dies zu Ihrer web.xml Datei hinzu. Ihre Seite wird Servlet

<servlet> 
    <servlet-name>loginservlet</servlet-name> 
    <servlet-class>package.LogIn</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>loginservlet</servlet-name> 
    <url-pattern>/loginServlet</url-pattern> 

Hinweis auf Ihren Karte: - Setzen Sie bitte die vollständigen Paketnamen (zB com.login.ClassName) vor Ihren Klassennamen.

Danke