Jsp response.sendRedirect不工作

Jsp response.sendRedirect不工作,jsp,jdbc,response,Jsp,Jdbc,Response,方法response.sendRedirect()在我的程序中不起作用 代码通过并成功打印出out.println(“错误用户”),但重定向到google页面不起作用 String id="java"; try { query = "select Id from Users where Id= ?"; ps =Database.getConnection().prepareStatement(query); ps.setString(1, id); rs

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

代码通过并成功打印出
out.println(“错误用户”),但重定向到google页面不起作用

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);
}   

有任何答案吗?

您应该在重定向后返回

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

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

请尝试提供协议

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

HttpServletResponse.sendRedirect()的工作原理如下:

  • 如果URL是绝对的
    http://www.google.com
    ,它将重定向到
    http://www.google.com
  • 如果URL不是绝对的,它将相对于当前URL重定向。 如果URL以
    /
    开头,它将相对于上下文根重定向, 否则它将重定向到当前url
根据以上规则,在您的情况下,它会重定向到http://currenturl/www.google.com

改为像这样修改代码

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

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


您确定代码已经执行了吗?没有,先生。当我删除out.println(“错误用户”)前面的注释时,它会显示“错误用户”。从同一页开始这段代码写在哪里?在jsp/servlet中?还可以查看:@Amar您的问题是否已解决。如果是的,而不是给出的答案,你能具体说明你自己的答案吗?我知道这是一年后的事,但这对我来说很有效。我也在if语句中使用了它,但没有意识到代码的其余部分仍然在执行。在try的catch子句中,它仍然可以不返回地工作。谢谢@罗比·维卡门:你会来的。很高兴听到这个消息它对我有效。很好,我犯了一个小错误+1,这对我来说也很有用(回复后7年-我正在重写一些遗留代码)。@RafaelSantos:听到这个消息很高兴!!