Ist es möglich die Request paramter auf "null" zu setzen?

Hast du es denn erstmal ganz einfach versucht? SChreib in doGet irgendwas ins Log und in doPost irgendwas anderes... dann machst in doPost nen redirect auf das gleiche servlet. Du kannst dir mit getHeader die Headerdaten holen und die "method" auf GET setzen...

Wenn das tut, baust das halt nach und nach aus.

REINHAUN!
 
also die Header des Request sehen z.B. so aus, aber eine Method Get ist nicht dabei, die ich verändern könnte:

accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*
referer: http://localhost/IM2/a7.html
accept-language: de
accept-encoding: gzip, deflate
user-agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 1.1.4322; .NET CLR 1.0.3705)
host: localhost
connection: Keep-Alive

der Code der die Header anzeigt:
Code:
 import java.io.IOException;
import java.util.Enumeration;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class A7 extends HttpServlet{
	public void doPost (HttpServletRequest req, HttpServletResponse res)	
						throws IOException,ServletException {
		
		doPost (req,res);
	}
	public void doGet (HttpServletRequest req, HttpServletResponse res)	
	throws IOException,ServletException {
		res.setContentType("text/html");
		
		HTML html = new HTML ("Aufgabe 7","");
		html.append("<h2>IM2 - Aufgabe 7: Header des Request </h>");
		
		
		Enumeration headers=req.getHeaderNames();
		html.table();
		while (headers.hasMoreElements()){
			String name=(String)headers.nextElement();
			html.tr(name+": ",(String)req.getHeader(name));
		}
		html.tableEnd();
		html.end();
		res.getWriter().print(html); // print() schreibt das Ergebnis von obj.stoString
									// hier: html.toString ohne Zeilenvorschub in den
									//in den Stream
		
	}
}

Ein Beispielformular dazu mit Get als Methode:

Code:
 <html>
<head><title>Gaestebuch</title></head>
<body>
<h2 style="color:red">Header</h2>




<form  action="servlet/A7" method="get" accept-charset="UTF-8"  style="width:600px;background-color:silver; border:double; border-color:black;">

<table border="0" cellpacing="0" cellpadding="2">
<tr>
	<td>Nachname:</td>
	<td><input type="text" name="nachname" size="20" style="border-width:3px;padding:5px;border-style:inset;"></td>
</tr>
<tr>
	<td>Vorname:</td>
	<td><input type="text" name="vorname" size="20" style="border-width:3px;padding:5px;border-style:inset;"></td>
</tr>
<tr>
	<td>E-Mail:</td>
	<td><input type="text" name="eMail" size="25" style="border-width:3px;padding:5px;border-style:inset;"></td>
</tr>
<tr>
	<td>Dein Kommentar:</td>
	<td><textarea input type="text" name="text" rows="10" cols="50" style="border-width:3px;padding:5px;border-style:inset;"></textarea></td>
	
</tr>
  <tr>
    <td colspan="2"><input type="submit" name="action" value="Eintrag speichern"  style="width:130px;color:red;"></input>
    <input type="reset" value="Formular zurücksetzen" style="color:red;width:140px">
    </td>
  </tr>

</table>
</form>
</body>
</html>



Wie kann ich den Request Header später im Programmcode des Servlets auf Get oder Post umstellen?
 
eine Methode req.getMethod() gibt es zwar aber so etwas wie req.setHeader() oder dergleichen gibt es nicht... zumindest habe ich es nicht gefunden bis jetzt
 
Zuletzt bearbeitet:
So endlich hats geklappt:)

Es war gar nicht notwendig gewesen den Header zu manipulieren.Wie du es vorhin sagtest, Redirect ruft bereits doGet auf. Somit ist das double submit Problem zunächst mal gelöst.



Dir ein großes Dankeschön nochmals :)

Gruß
 
Zurück