Rediriger une demande à l'aide de servlets et de la “setHeader” méthode ne fonctionne pas

Je suis nouveau sur le servlet de développement, et j'ai été la lecture d'un ebook, et a constaté que je peux rediriger vers une autre page web à l'aide

setHeader("Location", "http://www.google.com")

Mais cela ne fonctionne pas, comme je l'ai écrit ce code:

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class ModHelloWorld extends HttpServlet{
        public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException{
//             response.addHeader("Location", "http://www.google.com");
                response.setHeader("Location", "http://www.google.com");
                response.setContentType("text/html");
                PrintWriter pw = response.getWriter();
                pw.println("<html><head><title>Modified Hello World</title></head><body>");
                pw.println("<h1>");
                //getInitParameter function reads the contents ot init-param elements.
                pw.println(getInitParameter("message"));
                pw.println("</h1>");
                pw.println("</body></html>");
                pw.close();
        }
}

j'ai vérifié les en-têtes à l'aide de mon programme pour obtenir les en-têtes de la page web qui est la suivante:

import java.net.*;
import java.io.*;
class getHeaders{
    public static void main(String args[]){
        URL url = null;
        URLConnection urc = null;
        try {
            url = new URL(args[0]);
            urc = url.openConnection();
            for(int i=0 ; ; i++) {
                String name = urc.getHeaderFieldKey(i);
                String value = urc.getHeaderField(i);
                if(name == null && value == null)//both null so end of header
                    break;
                else if(name == null){//first line of header{
                    System.out.println("Server HTTP version, Response code: ");
                    System.out.println(value);
                    System.out.println("ENd of first header field");
                } else {
                    System.out.println("name of header is: " + name + " and its value is : " + value);
                }
            }
        } catch(MalformedURLException e){
            System.out.println("Malformed URL " + e.getMessage());
        } catch(IOException e){
            e.printStackTrace();
        }
    }
}

Et j'en suis sortie comme:

Server HTTP version, Response code: 
HTTP/1.1 200 OK
ENd of first header field
name of header is: Server and its value is : Apache-Coyote/1.1
name of header is: Location and its value is : http://www.google.com
name of header is: Content-Type and its value is : text/html
name of header is: Content-Length and its value is : 101
name of header is: Date and its value is : Sat, 05 Mar 2011 15:27:29 GMT

Mais je n'ai pas été redirigé vers la page de google à partir de mon navigateur.

Merci d'avance:)

  • Cette queztion est pour le cas de la méthode GET. Pour le cas d'un POST, et pour quelques subtilités sur l'Emplacement de l'en-tête, reportez-vous à la question stackoverflow.com/questions/5043902/...
InformationsquelleAutor codeomnitrix | 2011-03-05