6

メソッド response.sendRedirect() がプログラムで機能しません。

コードは通過し、正常に出力されますout.println("wrong user");が、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);
}   

答えはありますか?

4

4 に答える 4

17

returnリダイレクト後に行う必要があります。

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

sendRedirect() を呼び出した後、自動的に戻りません。

于 2012-04-05T04:31:59.473 に答える
4

HttpServletResponse.sendRedirect() は次のように機能します。

  • URL が絶対 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;
于 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 に答える