Warum wird nach doPost(...) automatisch doGet(...) aufgerufen?

stockhausen

Grünschnabel
Hallo Zusammen,

ich habe ein sehr interessantes bzw. abartiges Problem.

Die Problematik hat damit angefangen, dass ich auf die Idee gekommen bin, ein <a href="..."/> via POST an ein Servlet zu versenden.
Das Versenden via POST wird per JavaScript bzw. JQuery erledigt. Wie gewünscht wird auch die doPost(...) Methode des Servlets aufgerufen. (Kann ich beim debuggen beobachten)

Was jetzt passiert raff ich beim besten willen nicht! Nach Aufruf der doPost(...) Methode des Servlets wird anschließend die doGet(...) Methode des Servlets durch Geisterhand aufgerufen?!

Wie kann das sein?! *magic*



Etwas detailierter:


Die index.jsp beinhaltet den Link.


index.jsp

Code:
<a href="MyServlet?name=tata" name="myLink" id="myLink">send via post!</a>


Beim clicken des Links wird die JavaScript Methode aufgerufen.
Die Methode ruft daraufhin das Servlet auf. Der POST-Aufruf wurde via Firebug angezeigt.

default.js

Code:
$(document).ready(function() {
	
	$("#myLink").click(function() { 
		$.ajax({
			url: $("#myLink").attr("href"),
			type: "POST",
			async: false,
			data: {},
			success: function () {}	
		});
	});

});


Innerhalb des Servlets wird wie erwartet die doPost(...) Methode aufgerufen.
Anschließend wird völlig unerwartet die doGet(...) Methode aufgerufen! Hier wird der doGet(...) Aufruf NICHT via Firebug angezeigt.
Anscheinend wird doGet(...) irgendwie intern aufgerufen!

MyServlet.java

Code:
@WebServlet("/MyServlet")
public class MyServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
    public MyServlet() {
        super();
    }
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setAttribute("method", "GET");
		getServletConfig().getServletContext().getRequestDispatcher("/index.jsp").forward(request,response);
	}
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setAttribute("method", "POST");
		getServletConfig().getServletContext().getRequestDispatcher("/index.jsp").forward(request,response);
	}
}

Alsooo.. warum wird nach der doPost(...) Methode die doGet(...) Methode aufgerufen?


Grüße,
Michael
 
Zurück