现在假设我点了一些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's doFilter()
的请求不应具有queryString。我怎么能做到这一点?
答案 0 :(得分:0)
我在考虑重写Filter方法:
@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)
我尝试了很多,但最后我使用window.location对象
更改了客户端的url上一条道路:
http://shoaib:8080/userAuthentication?authenticate=false
客户端代码
window.location.pathname="userAuthentication";
这删除了以前的查询字符串
当前网址
http://shoaib:8080/userAuthentication