Hallo computerschrat,
ich bin jetzt seit letzten Mittwoch bald am verzweifeln, denn eigentlich mache ich es so (allerdings mit Java), wie es alle schreiben, aber es funktioniert trotzdem nicht. Ich vermute, dass if (isset($_POST["Button1"])) PHP ist, aber ich muss es mit Java machen.
Das Ablaufschema ist folgendes:
TestServlet_01.java
- macht erstmal gar nichts außer
- ruft TestJSP_01.jsp mit Hilfe von
RequestDispatcher requestDispatcher = request.getRequestDispatcher("TestJSP_01.jsp");
requestDispatcher.forward(request, response);
=> das funktioniert
TestJSP_01.jsp enthält ein Formular mit
-
method="post" - "get" oder "post" sollte egal sein, aber später für
<input name="file" type="file"> wird "post" benötigt
- entweder
enctype="multipart/form-data" - ich will mit diesem Formular mal einen Datei-Upload machen
- oder
enctype="text/plain" - um rauszukriegen, ob es am enctype liegt
-
action="TestServlet_02" - ruft also als nächstes (in jedem Fall) das Servlet "TestServlet_02.java" auf
- einem Input-Text-Feld und
- 3 Submit-Buttons
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>TestJSP_01</title>
</head>
<body>
<form method="post" enctype="multipart/form-data" action="TestServlet_02">
Text: <input type="text" name="text1"><br>
Sbm1: <input type="submit" name="submit11" value="s11"><br>
Sbm2: <input type="submit" name="submit12" value="s12"><br>
Sbm3: <input type="submit" name="submit13" value="s13"><br>
</form>
</body>
</html>
=> funktioniert, d. h. mit jedem der 3 Submit-Buttons kann ich das Formular/den Request abschicken und das "TestServlet_02.java" wird aufgerufen
TestServlet_02.java
- soll alle 4 Parameter des Requests auswerten: text1, submit11, submit12 und submit13
- soll den übermittelten text1 anzeigen
- soll mit einer Fallunterscheidung ermitteln, welcher Submit-Button gedrückt wurde, und ein entsprechendes Servlet aufrufen
=> die Auswertung aller 4 Request-Parameter funktioniert offenbar nicht (ergibt 'null')
=> auch für "text1" wird 'null' ermittelt, obwohl ein Text eingegeben wurde
=> deswegen kommt in der Fallunterscheidung immer nur der Fehlerfall heraus
= und es wird immer nur das "TestServlet_05" aufgerufen (d. h. der nächste Aufruf funktioniert wie gewohnt)
package ServletExamples;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
// Fortsetzung folgt ...