Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

JSP Page Redirection คืออะไร?

Page Redirection ใช้เมื่อเอกสารย้ายไปที่ใหม่ ต้องส่ง client ไปที่ใหม่ อาจเพราะ load balancing หรือสุ่มหน้า

วิธีง่ายที่สุด: sendRedirect()

public void response.sendRedirect(String location) throws IOException

ส่ง response กลับพร้อม status code 302 และ Location header

วิธีทางเลือก: setStatus + setHeader

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

ตัวอย่างสมบูรณ์ (PageRedirect.jsp)

<%@ page import="java.io.*,java.util.*" %>
<html>
<head><title>Page Redirection</title></head>
<body>
    <center><h1>Page Redirection</h1></center>
    <%
        String site = "https://www.example.com";
        response.setStatus(response.SC_MOVED_TEMPORARILY);
        response.setHeader("Location", site);
    %>
</body>
</html>

การทดสอบ

วางไฟล์เป็น PageRedirect.jsp เรียก https://localhost:8080/PageRedirect.jsp จะ redirect ไป https://www.example.com

PRG Pattern (Post-Redirect-Get)

แนวทางปฏิบัติมาตรฐานหลัง POST:

  1. User submit form (POST)
  2. Server ประมวลผล (save DB, etc.)
  3. Server redirect ไปหน้าผลลัพธ์ (GET)
  4. Browser request หน้าผลลัพธ์ (GET)

ป้องกัน double submit ตอน user กด F5/Refresh

JSTL Alternative

<%@ taglib prefix="c" uri="https://java.sun.com/jsp/jstl/core" %>
<c:redirect url="https://www.example.com" />