6

The method response.sendRedirect() is not working in my program.

The code go through and sucessfully print out.println("wrong user");, but the redirect to the google paged doesn't work.

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

Any answers?

ForceMagic
  • 6,230
  • 12
  • 66
  • 88
Amar
  • 121
  • 2
  • 4
  • 5

4 Answers4

18

You should return after redirecting.

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

It does not return automatically after calling sendRedirect().

tholu
  • 1,150
  • 2
  • 10
  • 24
Hardik Mishra
  • 14,779
  • 9
  • 61
  • 96
5

HttpServletResponse.sendRedirect() works like this:

  • if the URL is absolute http://www.google.com , it redirects to http://www.google.com.
  • If the URL is not absolute , it redirects relative to the current URL. If the URL starts with / it redirects relative to the context root, Else it redirects to the current url

Based on above rules in your case it redirects to http://currenturl/www.google.com.

Instead modify your code like this

response.sendRedirect("http://www.google.com");
return;
Ramesh PVK
  • 15,200
  • 2
  • 46
  • 50
1

Try this

<% response.sendRedirect("http://www.google.com/"); %>
subodh
  • 6,136
  • 12
  • 51
  • 73
-1

Try providing the protocol.

response.sendRedirect("http://www.google.com");
return;
Ravindra Gullapalli
  • 9,049
  • 3
  • 48
  • 70