Latest web development tutorials

เปลี่ยนเส้นทางหน้า Servlet

เมื่อเอกสารถูกย้ายไปยังตำแหน่งใหม่ที่เราต้องส่งให้กับลูกค้าในตำแหน่งใหม่นี้เราจำเป็นต้องใช้การเปลี่ยนเส้นทางหน้า แน่นอนมันอาจจะ Load Balancing หรือเพียงแค่การสุ่มอย่างง่ายกรณีเหล่านี้มีแนวโน้มที่จะใช้ในการเปลี่ยนเส้นทางหน้าเว็บ

เปลี่ยนเส้นทางการร้องขอไปยังหน้าอีกวิธีที่ง่ายที่สุดคือการใช้การตอบสนองวัตถุsendRedirect () วิธีการนี่คือความหมายของวิธีการนี้: การร้องขอถูกเปลี่ยนเส้นทางไปยังหน้าอื่นวิธีที่ง่ายที่สุดคือการใช้วิธี sendRedirect () ที่ตอบสนองวัตถุ ต่อไปนี้คือคำนิยามของวิธีการนี้:

โมฆะสาธารณะ HttpServletResponse.sendRedirect (ที่ตั้งของ String)
พ่น IOException 

วิธีนี้ร่วมกับรหัสสถานะการตอบสนองและทำเลหน้าใหม่จะถูกส่งกลับไปยังเบราว์เซอร์ นอกจากนี้คุณยังสามารถใส่ร่วมกันโดยใช้ SetStatus () และ setHeader () วิธีการเพื่อให้บรรลุผลเช่นเดียวกัน:

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

ตัวอย่าง

ตัวอย่างนี้แสดงให้เห็นว่า Servlet สถานที่อื่นถูกเปลี่ยนเส้นทางไปยังหน้า:

package com.w3big.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 implementation class PageRedirect
 */
@WebServlet("/PageRedirect")
public class PageRedirect extends HttpServlet{
    
  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            throws ServletException, IOException
  {
      // 设置响应内容类型
      response.setContentType("text/html;charset=UTF-8");

      // 要重定向的新位置
      String site = new String("http://www.w3big.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>
....

ตอนนี้โดยไปที่ URL http: // localhost: 8080 / PageRedirect จะเรียก Servlet นี้ ซึ่งจะนำคุณไปยัง URL ที่กำหนด http://www.w3cschool.cc