English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

إعادة توجيه صفحة Servlet

عندما ينتقل المستند إلى موقع جديد، ونحتاج إلى إرسال هذا الموقع الجديد إلى العميل، نحتاج إلى استخدام تحويل الصفحة. بالطبع، قد تكون هناك أسباب أخرى مثل تحسين تحميل النظام أو فقط لأغراض عشوائية، وفي جميع هذه الحالات يمكن استخدام تحويل الصفحة.

أبسط طريقة لإعادة توجيه الطلب إلى صفحة أخرى هي استخدام طريقة sendRedirect() الخاصة بمجسم الاستجابة. إليك تعريف هذه الطريقة:

public void HttpServletResponse.sendRedirect(String location)
يندفعُ استثنائي IOException

يقوم هذا الطريقة بإرسال الاستجابة مع الرقم التعريفي للوضع الجديد و موقع الصفحة الجديدة إلى المتصفح. يمكنك أيضًا الوصول إلى نفس التأثير عن طريق استخدام طرق setStatus() و setHeader() معًا:

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

مثال عبر الإنترنت

هذا المثال يوضح كيفية قيام Servlet بتحويل الصفحة إلى موقع آخر:

package com.w3codebox.test;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * فئة تنفيذ Servlet PageRedirect
 */
@WebServlet("/PageRedirect")
public class PageRedirect extends HttpServlet{
    
  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            يندفعُ استثنائي ServletException، استثنائي IOException
  {
      // تعيين نوع محتوى الإجابة
      response.setContentType("text/html;charset=UTF-8");
      // الموقع الجديد الذي سيتم إعادة توجيهه إليه
      String site = new String("http://ar.oldtoolbag.com");
      response.setStatus(response.SC_MOVED_TEMPORARILY);
      response.setHeader("Location", site);    
    }
}

الآن دعونا نكتب Servlet أعلاه ونخلق المدخل التالي في ملف web.xml:

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

الآن يمكنك طلب هذا Servlet من خلال زيارة URL http://localhost:8080/PageRedirect. سيقوم هذا بتوجيهك إلى URL المحدد http://ar.oldtoolbag.com.