Amar
Amar

Reputation: 121

response.sendRedirect not working

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?

Upvotes: 6

Views: 47659

Answers (4)

Hardik Mishra
Hardik Mishra

Reputation: 14877

You should return after redirecting.

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

It does not return automatically after calling sendRedirect().

Upvotes: 18

subodh
subodh

Reputation: 6158

Try this

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

Upvotes: 1

Ramesh PVK
Ramesh PVK

Reputation: 15446

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;

Upvotes: 5

Ravindra Gullapalli
Ravindra Gullapalli

Reputation: 9158

Try providing the protocol.

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

Upvotes: 0

Related Questions