我创建了一个过滤器,只要用户没有登陆就不能连接到主界面,但是在doFilter方法中用重定向在前端跳转页面不成功。
原因:由于我的登陆界面是基于ajax请求的,而ajax默认不支持重定向,他只能局部更新,所以我创建的过滤器跳转页面不成功
解决:
方法一
一些请求路径:
1. request.getScheme() 返回当前链接使用的协议;
2. request.getServerName() 获取网站的域名;
3. request.getServerPort() 获取的服务器的请求端口;
4. request.getContextPath()获取当前的系统路径;
第一步、以我创建的LoginFilter为例,将LoginFilter的重定向response.sendRedirect("login.jsp");注释掉,改为一个方法进行判断ajax的跳转,方法如下
private void requestDirect(HttpServletRequest request, HttpServletResponse response) throwsIOException {//获取当前请求的路径
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()+request.getContextPath();//如果request.getHeader("X-Requested-With") 返回的是"XMLHttpRequest"说明就是