关于Filter中的跳转
各位大哥我遇到一个问题,要求在Filter中做一个跳转不和要求的请求全部跳转到一个提示页面中.我写了一个。但是每次到response.sendRedirectrequest.getContextPath()+ "/jsp/security/notic.jsp ");
就循环了.页面在不停的刷新.请大哥帮一把.
我的代码如下:
public void doFilter(ServletRequest servletrequest, ServletResponse
servletresponse, FilterChain filterchain) throws
IOException,
ServletException { HttpServletRequest request = (HttpServletRequest)
servletrequest; HttpServletResponse response = (HttpServletResponse)
servletresponse; HttpSession session = request.getSession();
try { //
User user = (User) session.getAttribute(Constants.USER_IN_SESSION);
UserManager userManager = ServiceLocator.getUserManager();
if (user != null) {
// 判断是否是超级用户
if (!userManager.ifSuperUser(user)) {
// 如果系统没有启动,跳转到提示页面。提示系统未启动
//isStartUp是一个只有管理员才能设置的标志,如果管理员设了不能用.在这里就跳转到notic.jsp页面
//但是每次到这里就过不去了.页面在不停的刷新,并且也没跳到notic.jsp
if(session.getServletContext().getAttribute( "isStartUp ")!=null) {
response.sendRedirect(request.getContextPath()+ "/jsp/security/notic.jsp ");
}else{
filterchain.doFilter(servletrequest, servletresponse);
}
}else { // 是超级用户就继续执行
filterchain.doFilter(servletrequest, servletresponse);
}
} else{
filterchain.doFilter(servletrequest, servletresponse);
}
} catch(Exception exception) {
exception.printStackTrace();
}
}
请高手帮忙啊.
------解决方案--------------------response.sendRedirect( "/jsp/security/notic.jsp ");
------解决方案--------------------你用服务器端重定向看看,还有,要注意逻辑错误。
------解决方案--------------------嘿嘿,看看你的filter作用范围,是不是把notic.jsp也包括进去了。
------解决方案--------------------把web.xml拉出来亮亮
------解决方案--------------------我也遇见过这个问题,是你的路径出错了