# Cookies mit Servlets



## mdoemli (19. Jul 2005)

Hallo zusammen,

ich habe noch nie was mit Cookies gemacht deshalb hab ich mir ein Standard Beispiel rausgesucht und ein bißchen modifiziert. Wenn ich dieses Servlet ausgeführt habe müsste doch eigentlich im Cookie-Ordner dieses Cookie unter dem Namen "testcookie" abgespeichert sein, aber dort liegt es niergens.

Was mache ich falsch?


```
public class SetCookie extends HttpServlet{
	static int count = 0;
	public void doGet(HttpServletRequest request, HttpServletResponse response)throws SecurityException,IOException{
		
		response.setContentType("text/vnd.wap.wml");
		
		PrintWriter toClient = response.getWriter();
		
		toClient.println("<?xml version='1.0'?><!DOCTYPE wml PUBLIC '-//WAPFORUM//DTD WML 1.1//EN' 'http://www.wapforum.org/DTD/wml_1.1.xml'><wml>");
		toClient.println("<card>");
		toClient.println("<anchor>Cookie setzten");
		toClient.println("<go href='http://miramonte.homelinux.net/portal/SetCookie' method='post'>");
		toClient.println("<postfield name='cookiename' value='TestCookie'/>");
		toClient.println("</go></anchor>
");
				
		Cookie[] cookies = request.getCookies();
		if(cookies != null){
			toClient.println("Es befinden sich zur Zeit "+cookies.length+"auf der Festplatte");
			for(int i = 0; i < cookies.length; i++){
				toClient.println("Cookie = "+cookies[i].getValue());
			}
		}else{
			toClient.println("Es befinden sich zur Zeit noch keine Cookies auf der Festplatte");
		}
		toClient.println("</card></wml>");
	}
	public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{
		
		response.setContentType("text/vnd.wap.wml");
		
		PrintWriter toClient = response.getWriter();
		System.out.println("Bin in Post ");
		String name = request.getParameter("cookiename");

		System.out.println("Werte = "+name);
		
		toClient.println("<?xml version='1.0'?><!DOCTYPE wml PUBLIC '-//WAPFORUM//DTD WML 1.1//EN' 'http://www.wapforum.org/DTD/wml_1.1.xml'><wml>");
		toClient.println("<card>");
		toClient.println("Sie haben folgenden Cookie gesetzt "+name);
		toClient.println("</card></wml>");
		
		Cookie c = new Cookie("testcookie", new java.util.Date().toString());
		c.setMaxAge(3000);
		c.setComment("Ein Test Cookie");
		response.addCookie(c);
	}

}
```


----------



## mdoemli (19. Jul 2005)

Mhh,

hat keiner eine Idee?


----------



## perdian (19. Jul 2005)

mdoemli hat gesagt.:
			
		

> hat keiner eine Idee?


Mal nicht ungeduldig werden 

Probier mal den Cockie *vor* dem eigentlichen Content zu setzen, dann sollte es auch funktionieren.


----------



## mdoemli (19. Jul 2005)

Hallo perdian,

erstmal Danke.

Also so:


```
String name = request.getParameter("cookiename");
		
		Cookie c = new Cookie("testcookie", new java.util.Date().toString());
		c.setMaxAge(3000);
		c.setComment("Ein Test Cookie");	
		response.addCookie(c);
		
		PrintWriter toClient = response.getWriter();

		response.setContentType("text/vnd.wap.wml");
		toClient.println("<?xml version='1.0'?><!DOCTYPE wml PUBLIC '-//WAPFORUM//DTD WML 1.1//EN' 'http://www.wapforum.org/DTD/wml_1.1.xml'><wml>");
		toClient.println("<card>");
		toClient.println("Sie haben folgenden Cookie gesetzt "+name);
		toClient.println("</card></wml>");
		
		
		toClient.close();
```

Aber das funktioniert auch leider nicht.

Gruß,

mdoemli


----------



## mdoemli (19. Jul 2005)

Hallo nochmal,

hab mir jetzt ein Beispiel aus dem Netz besorgt.


```
public class SetCookie extends HttpServlet{
	static int count = 0;
	public void doGet(HttpServletRequest request, HttpServletResponse response)throws SecurityException,IOException{
		
		response.setContentType("text/html");
		
		PrintWriter toClient = response.getWriter();
		
		toClient.println("<html><body>");
		toClient.println("<form method=post action='http://miramonte.homelinux.net/portal/SetCookie'>");
		toClient.println("<input type=text name='comments'"+"size=50"+"MAXLENGTH='300'>");
		toClient.println("<input type=submit value='cookie setzten'></form></body></html>");
		Cookie[] cookies = request.getCookies();
		if(cookies != null){
			toClient.println("Es befinden sich zur Zeit "+cookies.length+"auf der Festplatte");
			for(int i = 0; i < cookies.length; i++){
				toClient.println("Cookie = "+cookies[i].getValue() + " | "+cookies[i].getComment());
			}
		}else{
			toClient.println("Es befinden sich zur Zeit noch keine Cookies auf der Festplatte");
		}
		
	}
	public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{
		
		response.setContentType("text/html");
		
		PrintWriter toClient = response.getWriter();
		System.out.println("Bin in Post ");
		
		Enumeration values = request.getParameterNames();
		String n = new String("");
		while(values.hasMoreElements()){
			String name = (String)values.nextElement();
			String value = request.getParameterValues(name)[0];
			if(name.compareTo("submit") != 0){
				n = value;
			}
		}
		toClient.println("Sie haben folgenden Cookie gesetzt: "+n);
		
		Cookie c = new Cookie("testcookie", n);
		c.setMaxAge(3000);
		c.setComment("Ein Test Cookie");
		response.addCookie(c);
	}
}
```

So wenn ich es ausprobiere funktioniert das auch bzw. die Meldung kommt das es funktioniert, aber ich kann es niergens auf meiner Festplatte finden.
Normalerweise müsste es doch im Ordner: C:\Documents and Settings\Administrator\Cookies liegen, oder?

Gruß, 

mdoemli


----------



## Bleiglanz (20. Jul 2005)

no

hab jetzt grad kein windows da

is doch in Temporary Internet Files im Benutzerordner?

unter XP gibts glaub ich auch einen eignene Ordner Cookies irgendwo...

(schau halt die Cookie-Verwaltung im Browser an...


----------



## mdoemli (25. Jul 2005)

Super Danke.

Lag in C:\Documents and Settings\Administrator\Local Settings\Temporary Internet Files


----------

