wordpress网站seo设置,网站开发 模板 c,中国贸易网是什么网站,网站建设审批表1.问题描述#xff1a;最近自己在写demo时遇到一个问题#xff0c;在ajax请求时用Filter做登录拦截#xff0c;结果页面不跳转(Ajax是不能做转发和重定向的)、、、、最终的最终在同事zt的提示下#xff0c;恍然大悟#xff0c;虽然很基本的问题#xff0c;但也纠结了好久…1.问题描述最近自己在写demo时遇到一个问题在ajax请求时用Filter做登录拦截结果页面不跳转(Ajax是不能做转发和重定向的)、、、、最终的最终在同事zt的提示下恍然大悟虽然很基本的问题但也纠结了好久只能说太菜记录下来以免以后再犯。2.解决办法在doFilter方法中判断是否为Ajax请求做进一步处理代码如下/*** see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)*/public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) {HttpServletResponse resp(HttpServletResponse) response;HttpServletRequest req(HttpServletRequest) request;String url req.getRequestURI();System.out.println(url);HttpSession session ((HttpServletRequest) request).getSession();String path req.getContextPath();String basePath req.getScheme()://req.getServerName():req.getServerPort()path/;basePathbasePathrest/userManager/loginOut;try {// 过滤掉登陆和退出请求if ((url.indexOf(/ddoa/rest/userManager/login) 0)|| (url.indexOf(/ddoa/rest/userManager/loginOut) 0)) {chain.doFilter(request, response);} else {if (null ! session) {Map map (Map) session.getAttribute(userMap);if(null!map){chain.doFilter(request, response);}else{//1:判断是否是ajax请求if (req.getHeader(x-requested-with) ! null XMLHttpRequest.equalsIgnoreCase(req.getHeader(x-requested-with))) {//向http头添加 状态 sessionstatusresp.setHeader(sessionstatus,timeout);resp.setStatus(403);//向http头添加登录的urlresp.addHeader(loginPath, basePath);chain.doFilter(request, response);return ;}else{resp.sendRedirect(basePath);}}} else {//1:判断是否是ajax请求if (req.getHeader(x-requested-with) ! null XMLHttpRequest.equalsIgnoreCase(req.getHeader(x-requested-with))) {//向http头添加 状态 sessionstatusresp.setHeader(sessionstatus,timeout);resp.setStatus(403);//向http头添加登录的urlresp.addHeader(loginPath, basePath);chain.doFilter(request, response);return ;}else{resp.sendRedirect(basePath);}}}} catch (IOException | ServletException e) {e.printStackTrace();}}