Удаление строки запроса из ServletRequest после того, как она достигает сервлета / фильтра

1

Теперь предположим, что я запускаю некоторый URL-адрес.

http://shoaib:8080/userAuthentication?authenticate=false

Теперь, когда он достигает метода doFilter фильтра

public void doFilter(request,response,filterChain){

   boolean authenticate=request.getParameter("authenticate");
   .
   .   //some logic
   .
   .
   filterChain.doFilter(request,response); //this request should not have query String.

} 

Запрос, который будет filterChain doFilter() не должен иметь queryString. Как я могу это достичь?

Теги:
servlets
filter
query-string

2 ответа

0

Я много пробовал, но, наконец, я изменяю URL-адрес на стороне клиента, используя объект window.location

Предыдущий путь:

http://shoaib:8080/userAuthentication?authenticate=false

Код на стороне клиента

window.location.pathname="userAuthentication";

Это удалило предыдущую строку запроса

Текущий URL

http://shoaib:8080/userAuthentication
0

Я думал об переопределении метода фильтра:

@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) 
    throws ServletException, IOException {
    HttpServletRequest request = (HttpServletRequest) req;
    String requestURI = request.getRequestURI();

    if (requestURI.startsWith(YOUR_CHECK_PATH)) {
       String url = ((HttpServletRequest)request).getRequestURL().toString();
       String queryString = ((HttpServletRequest)request).getQueryString();
        req.getRequestDispatcher(url).forward(req, res);
    } else {
        chain.doFilter(req, res);
    }
}
  • 1
    Но не будет ли в запросе строка запроса?
  • 0
    так что теперь в следующий раз, если вы вызовете request.getQueryString (), он должен быть нулевым. Я думаю, что это не ответ
Показать ещё 1 комментарий

Ещё вопросы

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