【问题标题】:response.sendRedirect not workingresponse.sendRedirect 不起作用
【发布时间】:2012-04-18 20:16:38
【问题描述】:

方法 response.sendRedirect() 在我的程序中不起作用。

代码通过并成功打印out.println("wrong user");,但重定向到谷歌页面不起作用。

String id="java";

try 
{
    query = "select Id from Users where Id= ?";
    ps  =Database.getConnection().prepareStatement(query);
    ps.setString(1, id);
    rs  =   ps.executeQuery();

    if(rs.next())
    {
        out.println(rs.getString(1));
    }
    else 
    {
        out.println("wrong user");
        response.sendRedirect("www.google.com");
    }
    rs.close();
}
catch(Exception e)
{
    //e.printStackTrace();
    System.out.print(e);
}   

有答案吗?

【问题讨论】:

  • 你确定代码被执行了吗?
  • 不,先生。当我删除out.println(“错误用户”)之前的评论时,它显示“错误用户”。并留在同一页面
  • 这段代码写在哪里?在 jsp/servlet 中?
  • @Amar 您的问题已解决。如果是,并且不在给定的答案中,你能指定你自己的答案吗?

标签: jsp jdbc response


【解决方案1】:

您应该在重定向后return

response.sendRedirect("http://www.google.com");
return;

调用sendRedirect()后不会自动返回。

【讨论】:

  • 我知道已经过了一年,但这对我有用。我也在 if 语句中使用它,但没有意识到其余代码仍在执行。在 try 的 catch 子句中,它仍然可以正常工作而无需返回。谢谢!
  • @RobbieVercammen:欢迎你。很高兴听到。 :)
  • 它对我有用。好,小错误我为此做了+1
  • 也为我工作(在回复 7 年后 - 我正在重写一些遗留代码)。
  • @RafaelSantos:很高兴听到这个消息!
【解决方案2】:

试试这个

<% response.sendRedirect("http://www.google.com/"); %>

【讨论】:

    【解决方案3】:

    HttpServletResponse.sendRedirect() 的工作方式如下:

    • 如果 URL 是绝对的 http://www.google.com ,它会重定向到 http://www.google.com
    • 如果 URL 不是绝对的,它会相对于当前 URL 进行重定向。 如果 URL 以 / 开头,它会相对于上下文根重定向, 否则它会重定向到当前 url

    基于以上规则in your case it redirects to http://currenturl/www.google.com

    改为像这样修改您的代码

    response.sendRedirect("http://www.google.com");
    return;
    

    【讨论】:

      【解决方案4】:

      尝试提供协议。

      response.sendRedirect("http://www.google.com");
      return;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-09
        • 2015-07-15
        • 1970-01-01
        • 2020-09-14
        • 1970-01-01
        相关资源
        最近更新 更多