Как я могу отправить параметр из фильтра в контроллер?

1

Мне нужно передать объект имени пользователя из фильтра в контроллер. Контроллер предназначен для этих двух параметров, но параметры не могут отфильтровывать сообщения.

Метод в фильтре:

public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException e) throws IOException, ServletException {
    /*send object to controller*/
    Username username = value; 
    response.sendRedirect("/create-bank-profile");
}

В контроллере:

@RequestMapping(value = "/create-bank-profile", method = RequestMethod.POST)
public ModelAndView register(
    HttpSession session,
    HttpServletRequest request, 
    @RequestParam(required = false, value = "bank-info-check", defaultValue = "false") Boolean isBankCustomer,
    @RequestParam("accessKey") Long accessKey, 
    @RequestParam("secretKey") Long secretKey
) {
     /* access the username object two fields: aceesskey and secretKey */

}

Я думаю, что я должен задать это значение.

Теги:
servlets
spring
servlet-filters

3 ответа

1
Лучший ответ

Следующий прокомментированный код не работает.

    //RequestDispatcher rd=request.getRequestDispatcher("./test1");
    //rd.forward(request, response);
    //chain.doFilter(request, response);

Затем я попробовал, как показано ниже. Он работает нормально. Попробуйте с этим. Он должен демонстративно работать.

Я проверил приведенный ниже код, используя сервлеты. Я добавляю как "./test1".

В случае вашего сценария вам не нужно указывать "./", вы можете просто сказать "требуемый URL",

        request.setAttribute("anil", "anil123");
        RequestDispatcher rd= ((HttpServletRequest)request).getRequestDispatcher("./test1");
        rd.forward(request, response);
1

Ваш create-bank-profile - это метод POST и невозможно отправить запрос POST с помощью response.sendRedirect().

Вероятно, вы могли бы проверить что-то из этих вариантов:

  • Использование RequestDispatcher

    request.setAttribute("param", "param value");
    RequestDispatcher dispatcher = servletContext().getRequestDispatcher(required_url);
    
  • Задайте требуемые параметры в запросе и используйте:

    response.setStatus(307);
    response.addHeader("Location", "required URL");
    
  • 0
    Моя проблема все еще существует
0

request.getRequestDispatcher("URL"). forward (запрос, ответ);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню