2016-04-17 18 views
-2

Ich bekomme einen Servlet nicht gefunden Fehler. Ich benutze WIldFly. Meine Verzeichnisstruktur sieht wie folgt aus:Servlet nicht gefunden Fehler

root -> app, converter.html, src

app -> WEB-INF

WEB-INF -> Klassen, lib, web.xml

src -> servlet.java

ich habe für eine Weile über sie gesucht und kann das Problem nicht Stift zeigen. Ich denke, ich habe die Zuordnung korrekt in der web.xml und die Formularaktion scheint auch an die richtige Stelle in der .html-Datei gesendet zu werden.

Servletklasse:

import java.io.IOException; 
import java.util.*; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

public class servlet extends HttpServlet{ 
    @Override 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException{ 
    String username = request.getParameter("username"); 
    String email = request.getParameter("email"); 
    response.getWriter().println("<html>"); 
    response.getWriter().println("<head>"); 
    response.getWriter().println("<title>Title</title>"); 
    response.getWriter().println("</head>"); 
    response.getWriter().println("<body>"); 
    response.getWriter().println("Convert. "); 
    response.getWriter().println("</body>"); 
    response.getWriter().println("</html>"); 
} 


} 

web.xml

<web-app xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" 
    version="2.4"> 

    <servlet> 
    <servlet-name>servlet</servlet-name> 
    <servlet-class>servlet</servlet-class> 
    </servlet> 

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

</web-app> 

converter.html

<!DOCTYPE html> 
<html> 
<head> 
     <title> Test form </title> 
</head> 
<body> 
    <form action="http://localhost:8080/root/src/servlet" method="get"> 
     Name: <input type="text" name="username"><br> 
     Email: <input type="text" name="email"><br> 
     <input type="submit" value="Submit"> 
    </form> 
</body> 
</html> 

Antwort

-3

Sie müssen die converter.html auf folgende Weise beheben:

  1. Ändern Sie die Aktion in action = "servlet"
  2. Ändern Sie die Methode von GET zu POST, da Sie Daten an den Server senden möchten. Die HTTP GET-Methode wird zum Abrufen von Daten vom Server verwendet.

Sie können mehr über diesen Link lesen unter: http://www.tutorialspoint.com/servlets/servlets-form-data.htm

+0

Er braucht die URL zu ändern, um ' "/ Servlet"' gemäß dem 'Servlet-mapping' Eintrag. Wenn er zu POST wechselt, muss er auch 'doGet()' in 'doPost()' ändern. – EJP

+0

In Asien entstandene Codesnippet-Scraping-Seiten voll mit Werbebannern, die sich selbst als "Tutorials" zeigen, müssen mit einer riesigen Tüte Salz (roseindia, tutorialspoint, javabeat, etc..etc ..) eingenommen werden. Sie tun das alles nur für Werbeeinnahmen. Bitte ignoriere und schreibe sie auf die schwarze Liste. Verlassen Sie sich stattdessen auf die eigenen Tutorials und maßgeblichen Bücher von Oracle (und natürlich auf stark überlegte Antworten auf Stack Overflow). – BalusC

+0

Wenn Sie sagen, ändern Sie die URL zu "/ servlet", beziehen Sie sich auf die Formularaktion? also