这是什么问题呢?这个问题已经纠结了我好几天了。。。
原来是在项目中加了个过滤器问题
做登录 session检查时出现的问题
解决方法:
1、要么把过滤器给删了(因为你的过滤器配置有问题)
2、正确拦截页面或请求
package org.booking.filter;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2017/3/17.
*/
public class CheckLogin implements Filter {
private final static String NAME = "adminName";
/*这个集合存放所有想要拦截的请求url*/
private List<String> chainList = new ArrayList<>();
public CheckLogin(){
chainList.add("../maoYan_background/index.jsp");
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
String path = req.getServletPath();
/*只要集合存在这个请求的url路径,就放行*/
if(chainList.indexOf(path) == -1){
chain.doFilter(req,res);
}else {
HttpSession session = req.getSession();
if(session.getAttribute(NAME) == null){
if(req.getHeader("x-requested-with")==null){
res.sendRedirect("../maoYao_Login/login.html");
return;
}else{
res.setContentType("text/html;charset=utf-8");
res.getWriter().print("false");
}
}else {
chain.doFilter(req,res);
}
}
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void destroy() {
}
}