2012-04-05 66 views
4

方法response.sendRedirect()在我的程序中不起作用。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); 
} 

任何結果?

+0

你肯定被執行的代碼?它的執行情況爲 – 2012-04-05 04:31:35

+0

。 – Amar 2012-04-05 04:35:03

+0

您是否收到任何錯誤? – 2012-04-05 04:41:18

回答

11

重定向後您應該return

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

它在調用sendRedirect()後不會自動返回。

+0

它也沒有工作。 – Amar 2012-04-05 04:40:03

+1

我知道這是一年後,但是,這對我有效。我也在if語句中使用它,但沒有意識到其餘代碼仍然被執行。在一個嘗試的catch-clause中,它仍然沒有返回。謝謝! – DerpyNerd 2013-04-18 19:21:54

+0

@RobbieVercammen:你來了。很高興聽到。 :) – 2013-04-19 03:20:14

-2

嘗試提供協議。

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

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; 
+0

謝謝!它幫助到我 – swemon 2013-06-25 09:09:42

1

試試這個

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