Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

response.sendRedirect not working

Tags:

jsp

jdbc

response

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?

like image 962
Amar Avatar asked Apr 05 '12 04:04

Amar


2 Answers

You should return after redirecting.

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

It does not return automatically after calling sendRedirect().

like image 133
Hardik Mishra Avatar answered Sep 29 '22 05:09

Hardik Mishra


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;
like image 28
Ramesh PVK Avatar answered Sep 29 '22 04:09

Ramesh PVK