chanwoo23 2025. 4. 8. 16:53

▶ Slide 1: Redirect란?

정의: Servlet에서 클라이언트에게 **"다른 주소로 새로 요청하라"**고 지시하는 방식

사용 예:

response.sendRedirect("main.jsp");

개념:

  • 클라이언트가 서버로 요청
  • 서버는 "이 주소로 다시 요청해"라고 응답
  • 브라우저가 새 URL로 다시 요청

▶ Slide 2: Redirect 전체 흐름

[사용자] → /loginCheck (POST 요청)
   ↓
[서버] → sendRedirect("main.jsp")
   ↓
[사용자] → /main.jsp (새 요청)
   ↓
[서버] → main.jsp 실행 후 응답

📌 요청이 2번 발생함 (loginCheck → main.jsp)


▶ Slide 3: Redirect 특징 정리

항목redirect

URL 변경 ✅ 변경됨 (주소창 바뀜)
request 객체 유지 ❌ 유지 안 됨 (새 요청)
동작 주체 클라이언트가 새 요청 보냄
속도 ❌ 느림 (두 번 요청됨)
데이터 전달 쿼리스트링 또는 세션 사용
경로 기준 클라이언트 기준 (상대/절대 경로)

▶ Slide 4: Redirect 예제 코드

@WebServlet("/loginCheck")
public class LoginServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

        String id = request.getParameter("id");
        String pw = request.getParameter("pw");

        if ("admin".equals(id) && "1234".equals(pw)) {
            response.sendRedirect("main.jsp");  // 성공
        } else {
            response.sendRedirect("login.jsp?error=1");  // 실패
        }
    }
}

▶ Slide 5: Redirect 주의사항

  • request.setAttribute()는 유지되지 않음
  • 데이터를 넘기고 싶다면:
    • session.setAttribute() 사용하거나
    • 쿼리스트링 (URL 뒤에 붙이는 방식) 사용
  • 경로는 브라우저 기준 상대 경로로 작성해야 함

▶ Slide 6: 언제 redirect를 쓰는가?

상황 추천 방식
로그인 후 메인 페이지 이동 ✅ redirect
글 등록 후 목록 이동 ✅ redirect
JSP → JSP 화면 전환 ❌ forward 권장

▶ Slide 7: 한줄 요약

redirect브라우저가 새 요청을 보내도록 유도하는 방식입니다.
→ URL이 바뀌고 request 값은 유지되지 않습니다.