6

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

有什么答案吗?

4

4 回答 4

17

你应该return在重定向之后。

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

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

于 2012-04-05T04:31:59.473 回答
4

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

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

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

而是像这样修改您的代码

response.sendRedirect("http://www.google.com");
return;
于 2012-04-05T07:58:12.893 回答
1

尝试这个

<% response.sendRedirect("http://www.google.com/"); %>
于 2012-04-05T09:21:26.900 回答
-1

尝试提供协议。

response.sendRedirect("http://www.google.com");
return;
于 2012-04-05T06:20:42.950 回答