被如此迷恋我。
所以,我使用JSP和有这些方法(简单的例子)我实现过滤器内,我伸出了HttpServlet,分别为:
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
((HttpServletResponse) response).sendRedirect(((HttpServletRequest) request).getContextPath() + "/foo");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
response.sendRedirect(request.getContextPath() + "/foo");
}
在localhost:8080/app
,无论是筛选和正确的HttpServlet我重定向到localhost:8080/app/foo
。
但在www.mysite.com/app
,其中隐藏了一个tomcatserver:8080/app
在Apache的代理如下,
RedirectPermanent /app /app/
ProxyPass /app/ http://tomcatserver:8080/app/
ProxyPassReverse /app/ http://tomcatserver:8080/app/
过滤器重定向我确定www.mysite.com/app/foo
,而HttpServlet的两种:
- (来自同一个域)揭示了Tomcat的服务器地址,重定向我
tomcatserver:8080/app/foo
或 - (来自外域)刚刚卡住加载。
那么......是什么造成的?
PS:我知道,去掉request.getContextPath()
和"/"
部分从HttpServlet的解决了这个问题,我不要求这一点。