Pengalihan halaman web Servlet


Apabila dokumen dialihkan ke lokasi baharu dan kami perlu menghantar lokasi baharu ini kepada pelanggan, kami perlu menggunakan pengalihan halaman web. Sudah tentu, ia juga mungkin untuk mengimbangi beban, atau hanya untuk rawak mudah Dalam kes ini, pengalihan halaman web boleh digunakan.

Cara paling mudah untuk mengubah hala permintaan ke halaman web lain ialah menggunakan kaedah sendRedirect() objek respons. Berikut ialah definisi kaedah ini: Cara paling mudah untuk mengubah hala permintaan ke halaman lain ialah menggunakan kaedah sendRedirect() bagi objek respons. Berikut ialah definisi kaedah ini:

public void HttpServletResponse.sendRedirect(String location)
throws IOException

Kaedah ini menghantar semula respons kepada penyemak imbas bersama-sama dengan kod status dan lokasi halaman baharu. Anda juga boleh mencapai kesan yang sama dengan menggunakan kaedah setStatus() dan setHeader() bersama-sama:

....
String site = "http://www.newpage.com" ;
response.setStatus(response.SC_MOVED_TEMPORARILY);
response.setHeader("Location", site); 
....

Contoh

Contoh ini menunjukkan cara Servlet mengubah hala halaman ke lokasi A yang lain :

import java.io.*;
import java.sql.Date;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class PageRedirect extends HttpServlet{
    
  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            throws ServletException, IOException
  {
      // 设置响应内容类型
      response.setContentType("text/html");

      // 要重定向的新位置
      String site = new String("http://www.w3cschool.cc");

      response.setStatus(response.SC_MOVED_TEMPORARILY);
      response.setHeader("Location", site);    
    }
}

Sekarang mari kita susun Servlet di atas dan buat entri berikut dalam fail web.xml:

....
 <servlet>
     <servlet-name>PageRedirect</servlet-name>
     <servlet-class>PageRedirect</servlet-class>
 </servlet>

 <servlet-mapping>
     <servlet-name>PageRedirect</servlet-name>
     <url-pattern>/PageRedirect</url-pattern>
 </servlet-mapping>
....

Sekarang dengan mengakses URL http://localhost:8080/PageRedirect untuk memanggil Servlet ini. Ini akan membawa anda ke URL yang diberikan http://www.w3cschool.cc.