2012-06-21 1 views
1

Я хочу перенаправить на домашнюю страницу, если сеанс недействителен. Моя весна-servlet.xml являетсяSpring 3.0 не может перенаправить запрос от HandlerInterceptorAdapter

<mvc:interceptors> 
    <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" /> 
    <mvc:interceptor> 
     <mvc:mapping path="/**" /> 
     <bean class="com.xxx.MyInterceptor" /> 
    </mvc:interceptor> 
</mvc:interceptors> 

Interceptor:

public boolean preHandle(HttpServletRequest request, 
      HttpServletResponse response, Object handler) throws Exception { 
     if ((null == request.getSession(false)) 
       || (null == request.getSession(false).getAttribute(
         "user"))) { 
      System.out.println("user logged out..."); 
      RequestDispatcher rd = request.getRequestDispatcher("loginForm.htm"); 
      rd.forward(request, response); 
      return false; 
     } 
     return super.preHandle(request, response, handler); 
    } 

Но ее не работает ... Всякий раз, когда приложение начала, сообщение получить печататься несколько раз, и в конце концов он дает стек переполнение ..

спасибо.

ответ

1

Похоже, проблема в вашем пути отображения. Так как его сопоставлено с /**, ваш loginForm.htm также перехватывается. У вас есть два решения для решения этой проблемы.

Либо укажите <mvc:resources location="/resources/" mapping="/resources/**" />, чтобы запросы * .htm не были перехвачены. Замените значения местоположения и отображения в соответствии с вашим путем, где находятся файлы * .htm.

И еще один вариант - изменить ваше сопоставление в intercepter с чем-то вроде /*.do или что-то еще.

Надеюсь, это вам поможет. Приветствия.

+0

thanx для ответа, но требование: i hv перехватывать каждый запрос для проверки того, является ли сеанс действительным или нет .. если нет, то перенаправление на главную страницу ... весь шаблон url заканчивается на .htm –

+0

Вот что Я попытался объяснить, так как все ваши сопоставления запросов заканчиваются на * .htm, вы попадаете в бесконечный цикл. Должно быть какое-то исключение из этого шаблона, иначе ваша проблема будет сохраняться. :-) –

+0

Thankx for the direction ... Решенная проблема, изменяя значение LoginForm.htm на вход в LoginForm.do и сопоставление перехватчиков с "/ **" на "/*.htm" .. –

 Смежные вопросы

  • Нет связанных вопросов^_^