Q:

Problema em requisição via ajax

Tenho uma página JSP para login no meu sistema, porém ao tentar realizar uma requisição via ajax para me autenticar, o formulário parece não estar sendo enviado corretamente, pois é feito o redirecionamento para a própria página de login.
Código Ajax:
$( document ).ready( function()
{
    $( '#submitLogin' ).click( function( e )
    {                        
        e.preventDefault();

        $.ajax
        ({
            type: 'POST',
            url: '/system/users?parameter=login',
            data: $( '#loginForm' ).serialize(),
            success: function( msg ) 
            {
                if ( $.trim( msg ) === "ERROR" )
                {
                    loginErrorAlert();

                    $( '#userLogin' ).val( "" );
                    $( '#userPassword' ).val( "" );

                    $( '#userLogin' ).focus();
                }
            }
        });
    });
});

Método doPost:
protected void doPost( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException
{
    String parameter = request.getParameter( "parameter" );

    if ( parameter.equals( "login" ) ) 
    {   
        try
        {
            if ( LoginController.getInstance().authenticateUser( request, response ) )
            {                   
                response.sendRedirect( "home.jsp" );
            }

            else
            {                    
                response.setContentType( "text/plain" );
                response.setCharacterEncoding( "UTF-8" );

                response.getWriter().println( "ERROR" );
            }
        }

        catch ( Exception e )
        {
            System.out.println( e.toString() );
        }
    }
}

web.xml:
<servlet>
    <servlet-name>Users</servlet-name>
    <servlet-class>servlet.Users</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>Users</servlet-name>
    <url-pattern>/users</url-pattern>
</servlet-mapping>

A:

Tem um if verificando se a mensagem é igual a ERROR, porém não existe nenhuma ação caso ela seja diferente disso. Você pode colocar um  window.location.href='pagina que deseja'. Você não vai conseguir redirecionar com esse código.
 if ( LoginController.getInstance().authenticateUser( request, response ) )
 {                   
    response.sendRedirect( "home.jsp" );
  }

Ao invés disso faça response.getWriter().println( "home.jsp" );
E no javascript:
 if ( $.trim( msg ) === "ERROR" )
 {
     loginErrorAlert();

     $( '#userLogin' ).val( "" );
     $( '#userPassword' ).val( "" );

     $( '#userLogin' ).focus();

 }elseif($.trim( msg ) === "home.jsp")
 {
     window.location.href= $.trim( msg );
 }

Uma solução melhor seria utilizar os códigos de resposta http, e caso desse errado retornasse um 403 por exemplo. E com isso você adicionaria uma função error{ //código }, logo após o success no javascript

