서블릿에서 다른 페이지로 포워드 할 수 있는 메소드를 제공
클라이언트로부터 최초에 들어온 요청을 JSP/Servlet 내에서 원하는 자원으로 요청을 보내는 역할을 수행하거나, 특정 자원에 처리를 요청하고 처리 결과를 얻어오는 기능을 수행하는 클래스
출처: https://dololak.tistory.com/502
Scope
는 다른 서블릿과 공유해야 할 데이터를 임시적으로 저장할 수 있는 기능을 제공함page
, request
, session
, application
)page
영역
한 번의 클라이언트 요청이 오면, 하나의 JSP 페이지가 응답하고, 이 때 하나의 JSP 페이지 내에서만 객체를 공유하는 영역 (JSP에서만 존재)
<% %>
안에 변수를 사용하면, page
스코프에 정의된 객체이기 때문에 이 변수는 해당 JSP 파일 내에서만 유효
request
영역
요청을 받아서 응답하기까지 객체가 유효한 영역
Servlet에서 forward
또는 include
를 사용하면, request
영역이 됨
ex)
Servlet에서는 reqeust.setAttribute("이름", 객체);
로 전달,
JSP에서는 Obejct ob j = request.getAttribute("이름");
으로 받음
이 request 객체가 request 영역
session
영역
하나의 브라우저 당 1개의 session
객체가 생성, 같은 브라우저 내에서 요청되는 페이지들은 같은 객체를 공유하게 됨, 이를 세션 영역이라고 함
requset.getSession()
메서드를 호출하여 세션 영역의 객체를 얻을 수 있고, 세션이 종료되면 객체는 반환됨
application
영역
하나의 애플리케이션 당 1개의 application 객체가 생성, 같은 애플리케이션 내에서 요청되는 페이지들은 같은 객체를 공유하게 됨, 이를 애플리케이션 영역이라고 함
request.getServletContext()
메서드를 호출하여 애플리케이션 영역의 객체를 얻을 수 있고, 애플리케이션이 종료되면 객체는 반환됨
출처 : https://victorydntmd.tistory.com/155
서블릿
request.setAttribute("userName", userName);
RequestDispatcher dispatcher = request.getRequestDispatcher("success.jsp");
dispatcher.forward(request, response);
JSP
String userName = (String)request.getAttribute("userName");