在我的应用程序中,用户可以订阅不同的俱乐部,例如儿童俱乐部,青少年俱乐部,成人俱乐部和老年人俱乐部。现在,假设用户已经在2012年10月7日订阅了Kid Club,如果他在2012年11月2日再次尝试订阅同一俱乐部"Kid Club“,那么我们将尝试将该用户重定向到另一个俱乐部,如青年俱乐部、成人俱乐部或老年俱乐部。每个俱乐部都有自己的域名,比如(例如)
Kid club = kidclub.google.mobi
Youth Club = youthclub.yahoo.mobi
Adult Club=adult.godaddy.mobi
Elderly Club = elderly.google.mobi以下是重定向的示例代码,但这不是重定向到不同的域URL。是因为sendRedirect ()方法吗?此应用程序中未使用Servlet。在Apache Tomcat Server中只有JSP与MySQL数据库一起使用,请尽快建议。
void doRedirect(HttpServletResponse response, String url)
{
try
{
response.sendRedirect(url);
}
catch (Exception e)
{
e.printStackTrace()
}
}
void redirectReturningUser( HttpServletRequest request, HttpServletResponse
response, ClubDomain currentDomain )
{
String redirectToUrl = currentDomain.getDefaultUrl();
if( "kidclub.google.mobi".equals( currentDomain.getDefaultUrl() ) )
redirectToUrl = "youthclub.yahoo.mobi";
else if( "adult.godaddy.mobi".equals( currentDomain.getDefaultUrl() ) )
redirectToUrl = "kidclub.google.mobi";
else if( "youthclub.yahoo.mobi".equals( currentDomain.getDefaultUrl() ) )
redirectToUrl = "adult.godaddy.mobi";
else if( "adult.godaddy.mobi".equals( currentDomain.getDefaultUrl() ) )
redirectToUrl = "elderly.google.mobi";
else if( "elderly.google.mobi".equals( currentDomain.getDefaultUrl() ) )
redirectToUrl = "adult.godaddy.mobi";
doRedirect(response, "http://"+redirectToUrl );
}提前感谢
发布于 2012-11-09 23:17:35
response.sendRedirect(url);可以使用相对URL(没有http:)和绝对URL,所以问题一定出在其他地方。
最常见的问题原因是,其他一些代码已经开始使用getOutputStream()或getWriter()将输出写入响应:一旦以这种方式写入第一个字节,就会生成HTTP头(其中包含重定向信息)并将其发送到浏览器。
因此,您应该查看catalina.out,因为e.printStackTrace()可能已被调用。
您可能还想检查currentDomain.getDefaultUrl()返回了什么;也许上面的if根本不匹配。
https://stackoverflow.com/questions/13310593
复制相似问题