2017-10-22 9 views
0

Ich habe ein Formular, in dem ich Anfrage an ein Servlet namens registrationServlet senden möchte. Das Register Servlet befindet sich in einem Verzeichnis namens "Controller". Es kann jedoch nicht auf das Servlet zugreifen, nachdem das Formular gesendet wurde. Wie kann ich dieses Problem beheben? Ich erhalte den folgenden Fehler, nachdem das FormularKonnte nicht Servlet von Formularaktion aufrufen

HTTP-Status Absenden 404 -/ClassProject/Ansichten/RegisterServlet

Beschreibung: Die angeforderte Ressource ist nicht verfügbar.

Form: (Formular befindet sich in Login.jsp Seite unter Ansichten Verzeichnis)

<form action="RegisterServlet" class="register" method="POST" > 
     <fieldset> 
      <legend>Registration</legend> 
      Username : <input type="text" name="username" id="username"> 
      </br></br> 

      Password : <input type="password" name="password" id="password"> 
      </br></br> 
      Email : <input type="email" name="email" id="email"> 
      </br></br> 
      Date of Birth : <input type="date" name="date" id="date"> 
      </br></br> 
      <input type="submit" value="Submit"> 
     </fieldset> 
    </form> 

web.xml:

<servlet> 
    <servlet-name>RegisterServlet</servlet-name> 
    <servlet-class>Controller.RegisterServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>RegisterServlet</servlet-name> 
    <url-pattern>/RegisterServlet</url-pattern> 
</servlet-mapping> 

Hier ist meine Verzeichnisstruktur:

enter image description here

+0

Was ist der Fehler, den Sie bekommen? –

+0

editer die Post. Bitte überprüfen Sie –

+0

Das Problem ist, dass Sie relative Pfad in der Formularaktion verwenden, fügen Sie den Kontextstamm zu Ihrem Aktionswert hinzu. –

Antwort

1

Sie benötigen

<form action="RegisterServlet" class="register" method="POST" > 

zu

<form action="../RegisterServlet" class="register" method="POST" > 

zu ändern, weil Ihr Login.jsp unter Views Ordner befindet und Sie versuchen, RegisterServlet in demselben Pfad zuzugreifen. Und das ist, warum Anfrage zu gehen ist

/ClassProject/Views/RegisterServlet 

statt

/ClassProject/RegisterServlet 

Aber wie pro web.xml dieses Servlet an Projektstamm vorhanden ist.

+0

Dieses funktioniert, aber ich empfehle, nicht relativen Pfad zu verwenden. Verwenden Sie '

' auf diese Weise wird es funktionieren, sogar die JSP wurde von einem Servlet weitergeleitet. –

+0

@KarthikeyanVaithilingam Ich bin nicht sicher über '$ {pageContext.request.contextPath}' könntest du mir erklären, wie es die Anfrage verschiebt ?? Ich meine, woher weiß es, ob es zu "../../" oder "../" gehen muss. Stellen Sie sich vor, Sie haben '/ ClassProject/Views/RegisterServlet' und'/ClassProject/Views/something/RegisterServlet'. Dann ist Ihre 'login.jsp' bei'/ClassProject/Views/else/login.jsp'? – Ravi

+0

Überprüfen Sie diese https://stackoverflow.com/questions/3655316/browser-cant-access-find-relative-resources-like-css-images-and-links-when-cal/3658735#3658735 –

Verwandte Themen