웹 개발 기초/Jsp, Servlet
Jsp redirect
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 값은 유지되지 않습니다.