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.