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:
- User submit form (POST)
- Server ประมวลผล (save DB, etc.)
- Server redirect ไปหน้าผลลัพธ์ (GET)
- 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" />