无限重定向

今天写了一个很神奇的代码(Bug),我很菜,恩.

大体是这样的

过滤器监听A(Servlet),B(.jsp)两个页面,如果满足条件就重定向到B页面

B页面是为A页面准备数据,所以B页面要转发到A页面.

然后在满足条件的情况下,浏览器告诉我说无线重定向.......

过滤器代码:

public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {
		
		//强制转化一下类型
		HttpServletRequest request = (HttpServletRequest) req;	
		HttpServletResponse response = (HttpServletResponse) resp;
		//对HttpSession进行判断
		HttpSession session = request.getSession(false);	//获取HttpSession对象
		if(session != null) {
			if(session.getAttribute("user")!=null) {
				System.out.println("SessionLiginFilter过滤器:放行-"+session.getAttribute("user"));
//				chain.doFilter(request, response);	//不放行,这几个页面放行会出问题的
				response.sendRedirect(request.getContextPath()+"/ControlText");
				return;
			}
		}
		System.out.println("SessionLiginFilter过滤器:没有放行");
		response.sendRedirect(request.getContextPath()+"/index.jsp");
	}

B页面代码:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//设置所有文本到request中
		TextService service_text = new TextServiceImpl();
		List<Text> listText = new ArrayList<Text>();
		listText = service_text.findAll();
		request.setAttribute("listText", listText);
		
		//转发
		request.getRequestDispatcher("/UserFilter/controlText.jsp").forward(request, response);
	}

A页面代码不贴了,那么怎么解决这个问题?额,小白表示不会......


猜你喜欢

转载自blog.csdn.net/qq_40451749/article/details/80846192
今日推荐