alle post/get daten auslesen HEADER also

boelkstoff

Erfahrenes Mitglied
Hallo!

Kann mir einer sagen wie ich mit java(jsp) eine kompletten header auslese
Interesaant sind die post bzw- get daten.
Wie stelle ich es an das alle angezeigt werden, mit/ohne das ihr deren namen kenne?

vielen dank
 

Thomas Darimont

Erfahrenes Mitglied
Servus!

meinst du das hier:

Code:
HttpServletRequest:

java.util.Enumeration getHeaderNames() 
          Returns an enumeration of all the header names this request contains. 

 java.lang.String getQueryString() 
          Returns the query string that is contained in the request URL after the path. 

java.util.Enumeration getHeaders(java.lang.String name) 
          Returns all the values of the specified request header as an Enumeration of String objects.

?

Code:
Enumeration e = request.getHeaders();

while (e.hasNext()){
            System.out.println((String)e.next());
}
mit getQuerryString kannst du deine GET-Daten bekommen...

Gruß Tom
 

boelkstoff

Erfahrenes Mitglied
Hallo Tom.

erstmal danke für Deine Antwort.

Das habe ich auch schon in einem JSP Buch gefunden führt mich aber nicht zum gewünschten ERgebniss.

Wenn die Daten per POst Methode übermittelt werden stehen diese doch im Header drinne, oder täusche ich mich!

Somit müßte doch wenn ich diese Seite von einem Formular(post methode) aufrufe der header entsprechend länger sein. Dies ist aber nicht der Fall.
 

Thomas Darimont

Erfahrenes Mitglied
Servus!

Du hast recht, wenn die Daten per POST weggeschickt werden stehen sie im Header.

Somit müßte doch wenn ich diese Seite von einem Formular(post methode) aufrufe der header entsprechend länger sein. Dies ist aber nicht der Fall.

Nicht, wenn die Variablen, die per POST gesendet wurden NULL sind ... schau mal danach ...

Gruß Tom
 

boelkstoff

Erfahrenes Mitglied
Hallo Tom & alle anderen

komme leider nicht wirklich weiter!

http://www.mycgiserver.com/~boelkstoff/header.jsp

dort kannst Du es ja mal teste.
hier der Quellcode:


Enumeration e;
Enumeration ee = request.getHeaderNames();
while (ee.hasMoreElements()){
String temp = (String)ee.nextElement();
e = request.getHeaders(temp);
while (e.hasMoreElements() ){
out.println(temp+":"+(String)e.nextElement()+"<br>");
}
}//while
out.println("<br>GET:"+request.getQueryString());

Wie bekomme ich es hin, das ich die Postdaten sehe. Z.B: wenn ich deren Namen nicht kenne.

mfg
Phil
 

Thomas Darimont

Erfahrenes Mitglied
Servus!

Funktionierendes Beispiel:

Code:
//Servlet

import java.io.IOException;
import javax.servlet.ServletException;

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

/**
 * @version 	1.0
 * @author
 */
public class myActionServlet extends HttpServlet {

	/**
	* @see javax.servlet.http.HttpServlet#void (javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
	*/
	public void doGet(HttpServletRequest req, HttpServletResponse resp)
		throws ServletException, IOException {
		
		java.util.Enumeration e = req.getParameterNames();
		java.io.PrintWriter pw = resp.getWriter(); 
		String attrib;
		
		while (e.hasMoreElements()) {
			pw.print(
				(attrib = (String) e.nextElement())
					+ " : "
					+ req.getParameter((String) attrib)
					+ "<br>"
					);
		}

		pw.print("<br>Fertig!");
		

	}

	/**
	* @see javax.servlet.http.HttpServlet#void (javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
	*/
	public void doPost(HttpServletRequest req, HttpServletResponse resp)
		throws ServletException, IOException {
		
		doGet(req,resp);
		
	}

}
-------------------------------

HTML Form:

<HTML>
<BODY><FORM action="/JSPandServletExample/servlet/myActionServlet" method="POST">
<TABLE border="1">
	<TBODY>
		<TR>
			<TD>Name</TD>
			<TD><INPUT type="text" name="name" size="20"></TD>
		</TR>
		<TR>
			<TD>Vorname</TD>
			<TD><INPUT type="text" name="vorname" size="20"></TD>
		</TR>
		<TR>
			<TD>Alter</TD>
			<TD><INPUT type="text" name="alter" size="20"></TD>
		</TR>
	</TBODY>
</TABLE>
<BR>
<INPUT type="submit" value="Absenden">
</FORM>
</BODY>
</HTML>

Gruß Tom
 

boelkstoff

Erfahrenes Mitglied
super danke

es geht!

Aber warum nimmst Du servlets und nicht jsp?
jsp ist doch viel einfacher, weil es automatisch ein servlet geniert!

P.S. herzlichen glückwunsch zum 500.sten Post :)
 

boelkstoff

Erfahrenes Mitglied
ach das ist mir egal,
mir ging es hauptsächlich um den code.
Vielen dank nochmal.

Das erspart einiges wenn man allgemein daten auslesen will.