import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class CookieExample extends HttpServlet
{
    public static Cookie findCookie( Cookie[] cookies, String val )
    {
        for( int i = 0; i < cookies.length; i++ )
        {
            Cookie thisCookie = cookies[ i ];
            if( thisCookie.getName( ).equals( val ) )
                return thisCookie;
        }
        return null;
    }
    
    public void doPost( HttpServletRequest req, HttpServletResponse res )
    {
        doGet( req, res );
    }
    
    public void doGet( HttpServletRequest req, HttpServletResponse res )
    {
        String name;
        
        PrintWriter out = null;
        
        try
        {
            name = req.getParameter( "user" );
            Cookie[]  cookies = req.getCookies( );
            Cookie autoLogCookie = findCookie( cookies, "RememberName" );
            
            if( name == null || name.equals( "" ) )
            {               
                if( autoLogCookie != null )
                    name = autoLogCookie.getValue( );
            }
            else
            {
                if( "on".equals( req.getParameter( "autolog" ) ) )
                {
                    if( autoLogCookie != null )
                        autoLogCookie.setValue( name );
                    else
                    {
                        autoLogCookie = new Cookie( "RememberName", name );
                        autoLogCookie.setMaxAge( 60 * 60 * 24 * 30 ); // 30 days
                    }
                }
                else
                    if( autoLogCookie != null )
                        autoLogCookie.setMaxAge( 0 ); // delete autoLogCookie.setMaxAge( 0 ); // delete
                
                if( autoLogCookie != null ) 
                    res.addCookie( autoLogCookie );
            }
            
            if( name == null || name.equals( "" ) )
            {
                   res.sendRedirect( "http://localhost:8080/login.html" );
                   return;
            }
                    
            res.setContentType( "text/html" );
            out = res.getWriter( );
            
            out.println( "Welcome " + name );
            out.close( );
        }
        catch( IOException e )
        {
            // not much to do! Can't write back.
        }
    }
}
