package javacodebook.server.cookie; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; /** * Ein dauerhafter Cookie wird gesetzt und ein Benutzer anhand dessen beim * nächsten Besuch wieder identifiziert. */ public class IdentServlet extends HttpServlet { //Einfache Hilfskonstruktion, um Benutzer zu verwalten wiederzuerkennen private static Hashtable users = new Hashtable(); protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, java.io.IOException { res.setContentType("text/html"); java.io.PrintWriter out = res.getWriter(); out.println(""); out.println("
"); //Es können mehrere Cookies vorhanden sein, alle werden überprüft Cookie[] cookies = req.getCookies(); String userName = null; for(int i = 0; i < cookies.length; i++) { if("userID".equals(cookies[i].getName())) userName = cookies[i].getValue(); } //wenn der Cookie nicht gesetzt war und auch gerade keine Anmeldung //stattfindet, wird ein Anmeldeformular gezeigt. if(userName == null && req.getParameter("name") == null) showForm(out); //Bei der Anmeldung wird der Cookie gesetzt, die Lebensdauer wird auf //ein Jahr eingestellt else if(req.getParameter("name") != null) { userName = req.getParameter("name"); Cookie cookie = new Cookie("userID", userName); cookie.setMaxAge(60*60*24*365);//Lebensdauer in sec: 60*60*24*365 = 1 Jahr res.addCookie(cookie); out.println("Willkommen, " + userName + "