.RequestDispatcher.forward()
إنه يعمل من جانب الخادم عند استخدام الأمام ()، يقوم محرك Servlet بتمرير طلب HTTP من Servlet أو JSP الحالي إلى Servlet أو JSP أو ملف HTML عادي، أي أنه يتم إرسال النموذج الخاص بك إلى a.jsp، في ملف. يستخدم jsp()ward لإعادة التوجيه إلى b.jsp، وفي الوقت الحالي، يمكن الحصول على جميع المعلومات المقدمة بواسطة النموذج في b.jsp، ويتم تمرير المعلمات تلقائيًا.
ومع ذلك، لا يمكن لإعادة التوجيه () إعادة التوجيه إلى ملف jsp بإطار، ويمكنه إعادة التوجيه إلى ملف html بإطار. وفي الوقت نفسه، لا يمكن تمرير الأمام () مع المعلمات في النهاية، مثل servlet?name=frank . إذا لم ينجح هذا، يمكنك تمرير الاستجابة في البرنامج .setAttribute("name",name) لتمريرها إلى الصفحة التالية.
يظل عنوان URL الموجود في شريط عنوان المتصفح بدون تغيير بعد إعادة التوجيه.
مثال: إعادة التوجيه في ملف servlet
الكود
doPost باطلة عامة (طلب HttpServletRequest، استجابة HttpServletResponse)
يلقي ServletException،IOException
{ف>
Response.setContentType("text/html; charset=gb2312");
ServletContext sc = getServletContext();
RequestDispatcher rd = null;
rd = sc.getRequestDispatcher("/index.jsp");
rd.forward(طلب, استجابة);
ف>
2.response.sendRedirect()
وهو يعمل على متصفح المستخدم. ويمكن لـ sendRedirect() تمرير المعلمات، مثل servlet?name=frank إلى الصفحة التالية. وفي الوقت نفسه، يمكنها إعادة التوجيه إلى مضيف مختلف، وستظهر نسخة مكررة في شريط عنوان المتصفح. عنوان URL للصفحة الموجهة.
يمكن لـ sendRedirect() إعادة توجيه ملفات jsp ذات الإطارات.
مثال: إعادة التوجيه في ملف servlet
الكود
doPost باطلة عامة (طلب HttpServletRequest، استجابة HttpServletResponse)
يلقي ServletException،IOException
{ف>
Response.setContentType("text/html; charset=gb2312");
Response.sendRedirect("/index.jsp");
}
ف>