1

I was writing a interceptor for login help.

public class LoginInterceptor extends HandlerInterceptorAdapter {

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

    HttpSession session = request.getSession();
    System.out.println("GreetingInterceptor: REQUEST Intercepted for URI: " + request.getRequestURI());
    System.out.println(session.getAttribute("userName"));

    /*if(request.getRequestURI().equalsIgnoreCase("/studentenrollmentsystem/login")){
        return true;
    }
    if(request.getRequestURI().equalsIgnoreCase("/studentenrollmentsystem/loginaction")){
        return true;
    }*/

    if(session.getAttribute("userName") != null){
        if(request.getRequestURI().equalsIgnoreCase("/studentenrollmentsystem/login")){
            response.sendRedirect("loginaction");
            return true;
        }
        else{
            return true;
        }
        /*if(request.getRequestURI().equalsIgnoreCase("/studentenrollmentsystem/loginaction")){
            return true;
        }
        return true;*/
    }
    else{
        if(request.getRequestURI().equalsIgnoreCase("/studentenrollmentsystem/login")
                || request.getRequestURI().equalsIgnoreCase("/studentenrollmentsystem/loginaction")){
            return true;
        }
        else{
            response.sendRedirect("login");
            return false;
        }
    }

}

}

When i first go to /login it work fine, but when after login i go back to /login it gives me exception "Cannot call sendRedirect() after the response has been committed". Can you please help. Also is there a better way to maintain login.

nikhilgupta86
  • 472
  • 3
  • 15
  • First of all, if you're going to send a redirect, you can't return `true`. Sending the redirect already provides an HTTP response. Google the exception's message, you will find out why it happens. You can fix it accordingly. – Sotirios Delimanolis Jan 09 '14 at 19:55
  • Look at http://docs.spring.io/spring/docs/2.5.6/api/org/springframework/web/servlet/handler/HandlerInterceptorAdapter.html#preHandle(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.Object) – ug_ Jan 09 '14 at 20:02

0 Answers0