versuche ich, Eingaben vom Endbenutzer über ein Formular zu erhalten. Ich habe das Formular mit jsp
erstellt.HTTP-Status 405 - Die HTTP-Methode GET wird von dieser URL nicht unterstützt. Bei der Verwendung von Jsp
welcome.jsp
<!DOCTYPE html>
<html lang="en">
<head>
<title>Welcome</title>
</head>
<body>
<form action="welcome" method="post">
<input type="text" value="username" />
<input type="text" value="password" />
<input type="submit" value="login" />
</form>
</body>
</html>
Die Informationen, die der Benutzer eingeben, wird dann an ein Servlet gehen, wo es an die Konsole ausgedruckt werden.
MyApp.java
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/welcome")
public class MyApp extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.getRequestDispatcher("/WEB-INF/welcome.jsp").forward(req, resp);
String username = req.getParameter("username");
String password = req.getParameter("password");
System.out.println("Name: " + name);
System.out.println("Password: " + password);
}
}
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1"
>
<servlet>
<servlet-name>MyApp</servlet-name>
<servlet-class>main.com.myfirstapp.MyApp</servlet-class>
</servlet>
</web-app>
begegne ich mein Problem, wenn ich mein Programm auf dem Server auszuführen. Dies ist der Fehler, den ich
bin immerHTTP Status 405 - HTTP method GET is not supported by this URL
type: Status report
message: HTTP method GET is not supported by this URL
description: The specified HTTP method is not allowed for the requested resource.
* "Wenn ich mein Programm auf dem Server ausführen" * Dies ist eine wirklich seltsame Beschreibung des Öffnens einer JSP-Seite in einem Webbrowser. Oder hast du etwas wie * rightclick servlet class in meiner IDE gemacht, wähle Option run on server * orso? Wie genau ist die URL in der Adresszeile des Browsers? Ist es das der JSP, das das HTML-Formular enthält, oder ist es das des Servlets, das überhaupt keine 'doGet()' -Methode hat? Haben Sie zum Beispiel http://stackoverflow.com/q/2349633 gelesen, das im Duplikat Ihrer vorherigen Frage verlinkt ist? – BalusC
in der Form und speziell in der Aktion starten Sie es nicht mit "/" nur lassen Sie es "Willkommen" sein, weil die Annotation bereits einen Schrägstrich hatte – PacMan
@BalusC Ja, ich habe rechts auf MyApp.java -> auf dem Server laufen . Die URL im Browser lautet "http: // localhost: 8080/MyFirstApp/welcome". Ich habe diese Frage auch gelesen und meine Frage aktualisiert. Ich bekomme immer noch den gleichen Fehler, obwohl ich es noch nicht verstanden habe. – TheRealRave