【发布时间】:2023-03-11 10:12:02
【问题描述】:
我正在使用 Guice 设置过滤器来处理 AppEngine 上的所有请求。 Guice 设置如下:
public void configureServlets() {
filter("*").through(RedirectFilter.class);
}
过滤器:
@Singleton
public class RedirectFilter implements Filter {
private static final Logger logger = Logger.getLogger(RedirectFilter.class.getName());
@Override
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
URL url = new URL(request.getRequestURL().toString());
String domain = url.getHost();
logger.info("host: " + domain + " path: " + url.getPath());
if (!domain.startsWith("www")) {
if (domain.startsWith("en")) {
response.sendRedirect("http://www.mysite.com/en" + url.getPath());
}
}
chain.doFilter(req, res);
}
...
}
但是,没有针对任何请求调用过滤器。
关于为什么它可能不被调用的任何想法?
更新:过滤器似乎是用http://en.mysite.com/xxx等URL调用的,但不是http://en.mysite.com
【问题讨论】:
标签: java google-app-engine guice servlet-filters