【发布时间】:2012-07-11 07:14:20
【问题描述】:
这是我的过滤器:
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);
}
“under”maintenanceMode.getMaintenanceMode(),我有变量getter:
boolean maintenanceMode = Boolean.getBoolean("maintenance");
使用 forward(服务器端重定向)它可以正常工作,当我尝试客户端重定向时:
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>
【问题讨论】:
-
能否请您在 web.xml 中发布您的过滤器映射
标签: java servlets servlet-filters