那是我的过滤器:
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
throws java.io.IOException, javax.servlet.ServletException
{
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
String currentURL = request.getRequestURI();
MaintenanceService maintenanceMode = new MaintenanceService();
if (maintenanceMode.getMaintenanceMode())
{
String urlNew = currentURL.concat("maintenance.jsp");
response.sendRedirect(urlNew);
}
filterChain.doFilter(servletRequest, servletResponse);
}
“在”maintenanceMode.getMaintenanceMode() 下,我有变量 getter:
boolean maintenanceMode = Boolean.getBoolean("maintenance");
使用转发(服务器端重定向)它可以正常工作,当我尝试客户端重定向时:
response.sendRedirect(urlNew);
我得到了一个无限出现的maintenance.jsp连接:
http://localhost:8080/maintenance.jspmaintenance.jspmaintenance.jspmaintenance.jspmaintenance.jsp
为什么它没有重定向到一个事件,例如服务器端重定向:
http://localhost:8080/maintenance.jsp
Web.xml 过滤器映射:
<filter-mapping>
<filter-name>maintenanceFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>